|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: <20><>ʽת<CABD><D7AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// ת<><D7AA>GeoMap3.2<EFBFBD>ĵķ<EFBFBD><EFBFBD>ſ<EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2009-8-04
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "GeoMapDataType.h"
|
|
|
|
|
|
#include ".\symbolbaselib.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NFormatReader
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
namespace NGeoMapReader
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
//*****************************************
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD>(Geomap 3.2 slf)
|
|
|
|
|
|
//*****************************************
|
|
|
|
|
|
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct GMShapeSymHead
|
|
|
|
|
|
{
|
|
|
|
|
|
int type; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int t2i1; // 0x44000000
|
|
|
|
|
|
int t3i1; // 0x00000000
|
|
|
|
|
|
char codeType[14]; // <20><><EFBFBD>뷽<EFBFBD><EBB7BD>(SY##.#.#.###)
|
|
|
|
|
|
int codeNum; // <20><><EFBFBD>뷽<EFBFBD><EBB7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(5)
|
|
|
|
|
|
int code1; // 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>̶<EFBFBD>ΪSY=ʯ<>͵<EFBFBD><CDB5><EFBFBD>)
|
|
|
|
|
|
int code2; // 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(2)
|
|
|
|
|
|
int code3; // 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(1)
|
|
|
|
|
|
int code4; // 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(1)
|
|
|
|
|
|
int code5; // 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(3)(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
char id[20]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
char name[30]; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Geomap <20><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct GMShapeSymSort
|
|
|
|
|
|
{
|
|
|
|
|
|
int sort; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
int t1i1; // 0x01000000
|
|
|
|
|
|
char code[21]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
char name[31]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//Geomap<61><70><EFBFBD>ſ<EFBFBD><C5BF>е<EFBFBD>0<EFBFBD><30>ͼԪ(<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
struct GMShapeSymText
|
|
|
|
|
|
{
|
|
|
|
|
|
short right; // <20><>
|
|
|
|
|
|
short bottom; // <20><>
|
|
|
|
|
|
short left; // <20><>
|
|
|
|
|
|
short top; // <20><>
|
|
|
|
|
|
::byte t1c1; // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>(<28><>Ч)
|
|
|
|
|
|
::byte selectPen; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD>(1)
|
|
|
|
|
|
GColor penColor; // ǰ<><C7B0><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
::byte penWidth; // <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
::byte selectBrush; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ(0)
|
|
|
|
|
|
GColor brushColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
int t2i1;
|
|
|
|
|
|
::byte colorFlag; // <20><>ɫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>滻(1:ǰ<><C7B0>,2:<3A><><EFBFBD><EFBFBD>,3:ǰ<><C7B0><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>)
|
|
|
|
|
|
::byte shape; // <20>Ƿ<EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
LOGFONT font; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
short len; // <20><><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>
|
|
|
|
|
|
char text[20]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//Geoamp<6D><70><EFBFBD>ſ<EFBFBD><C5BF>е<EFBFBD>1<EFBFBD><31>ͼԪ(ֱ<>ߣ<EFBFBD><DFA3><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>Բ<EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>)...................................
|
|
|
|
|
|
struct GMShapeSymRect
|
|
|
|
|
|
{
|
|
|
|
|
|
short right; // <20><>
|
|
|
|
|
|
short bottom; // <20><>
|
|
|
|
|
|
short left; // <20><>
|
|
|
|
|
|
short top; // <20><>
|
|
|
|
|
|
::byte t1c1; // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>(<28><>Ч)
|
|
|
|
|
|
::byte selectPen; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD>
|
|
|
|
|
|
GColor penColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
::byte penWidth; // <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
::byte selectBrush; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ
|
|
|
|
|
|
GColor brushColor; // <20><>ˢ<EFBFBD><CBA2>ɫ
|
|
|
|
|
|
int t2i1;
|
|
|
|
|
|
::byte colorFlag; // <20><>ɫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>滻(1:<3A><><EFBFBD><EFBFBD>,2:<3A><>ˢ,3:<3A><><EFBFBD>ʺͻ<CABA>ˢ)
|
|
|
|
|
|
::byte shape; // <20><>״<EFBFBD><D7B4><EFBFBD><EFBFBD>(0:<3A>߶<EFBFBD>,1:<3A><>Բ,2:<3A><><EFBFBD><EFBFBD>,3:Բ<>Ǿ<EFBFBD><C7BE><EFBFBD>)
|
|
|
|
|
|
short cornorWidth; // Բ<>Ǿ<EFBFBD><C7BE>ε<EFBFBD>Բ<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>
|
|
|
|
|
|
short cornorHeight; // Բ<>Ǿ<EFBFBD><C7BE>ε<EFBFBD>Բ<EFBFBD>Ǹ߶<C7B8>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//Geomap<61><70><EFBFBD>ſ<EFBFBD><C5BF>е<EFBFBD>2<EFBFBD><32>ͼԪ(<28><><EFBFBD><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
struct GMShapeSymPoly
|
|
|
|
|
|
{
|
|
|
|
|
|
short right; // <20><>
|
|
|
|
|
|
short bottom; // <20><>
|
|
|
|
|
|
short left; // <20><>
|
|
|
|
|
|
short top; // <20><>
|
|
|
|
|
|
::byte t1c1; // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>(<28><>Ч)
|
|
|
|
|
|
::byte selectPen; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD>
|
|
|
|
|
|
GColor penColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
::byte penWidth; // <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
::byte selectBrush; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ
|
|
|
|
|
|
GColor brushColor; // <20><>ˢ<EFBFBD><CBA2>ɫ
|
|
|
|
|
|
int t2i1;
|
|
|
|
|
|
::byte colorFlag; // <20><>ɫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>滻(1:<3A><><EFBFBD><EFBFBD>,2:<3A><>ˢ,3:<3A><><EFBFBD>ʺͻ<CABA>ˢ)
|
|
|
|
|
|
short nPoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//Geomap<61><70><EFBFBD>ſ<EFBFBD><C5BF>е<EFBFBD>3<EFBFBD><33>ͼԪ(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
//(<28><>ֹ<EFBFBD>ǶȰ<C7B6>˳ʱ<CBB3>뷽<EFBFBD><EBB7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
struct GMShapeSymArc
|
|
|
|
|
|
{
|
|
|
|
|
|
short right; // <20><>
|
|
|
|
|
|
short bottom; // <20><>
|
|
|
|
|
|
short left; // <20><>
|
|
|
|
|
|
short top; // <20><>
|
|
|
|
|
|
::byte t1c1; // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>(<28><>Ч)
|
|
|
|
|
|
::byte selectPen; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ѡ<EFBFBD>ʣ<F1BBADB1><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
GColor penColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
::byte penWidth; // <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
::byte selectBrush; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ(<28><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
GColor brushColor; // <20><>ˢ<EFBFBD><CBA2>ɫ
|
|
|
|
|
|
int t2i1;
|
|
|
|
|
|
::byte colorFlag; // <20><>ɫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>滻(1:<3A><><EFBFBD><EFBFBD>,2:<3A><>ˢ,3:<3A><><EFBFBD>ʺͻ<CABA>ˢ)
|
|
|
|
|
|
short cornorWidth; // <20><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>(<28><>λΪ0.1<EFBFBD><EFBFBD>)
|
|
|
|
|
|
short cornorHeight; // <20><>ʼ<EFBFBD>Ƕ<EFBFBD>(<28><>λΪ0.1<EFBFBD><EFBFBD>)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//Geomap<61><70><EFBFBD>ſ<EFBFBD><C5BF>е<EFBFBD>4<EFBFBD><34>ͼԪ(<28><><EFBFBD><EFBFBD>ͼԪ)
|
|
|
|
|
|
struct GMShapeSymGroup
|
|
|
|
|
|
{
|
|
|
|
|
|
short right; // <20><>
|
|
|
|
|
|
short bottom; // <20><>
|
|
|
|
|
|
short left; // <20><>
|
|
|
|
|
|
short top; // <20><>
|
|
|
|
|
|
::byte t1c1; // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>(<28><>Ч)
|
|
|
|
|
|
::byte selectPen; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ѡ<EFBFBD>ʣ<F1BBADB1><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
GColor penColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
::byte penWidth; // <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
::byte selectBrush; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ(<28><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
GColor brushColor; // <20><>ˢ<EFBFBD><CBA2>ɫ
|
|
|
|
|
|
int t2i1;
|
|
|
|
|
|
::byte colorFlag; // <20><>ɫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>滻(1:<3A><><EFBFBD><EFBFBD>,2:<3A><>ˢ,3:<3A><><EFBFBD>ʺͻ<CABA>ˢ)
|
|
|
|
|
|
short nElem; // <20><><EFBFBD><EFBFBD>ͼԪ<CDBC>е<EFBFBD><D0B5><EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD>ݽṹ
|
|
|
|
|
|
struct GMShapeSymElement
|
|
|
|
|
|
{
|
|
|
|
|
|
short left; // <20><>
|
|
|
|
|
|
short top; // <20><>
|
|
|
|
|
|
short right; // <20><>
|
|
|
|
|
|
short bottom; // <20><>
|
|
|
|
|
|
::byte shape; // ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD> (0:<3A><><EFBFBD><EFBFBD>,1:<3A>߶<EFBFBD>,2:<3A><>Բ,3:<3A><><EFBFBD><EFBFBD>,4:Բ<>Ǿ<EFBFBD><C7BE><EFBFBD>,5:<3A><><EFBFBD><EFBFBD>,6:<3A><>)
|
|
|
|
|
|
::byte edge; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ѡ<EFBFBD>ʣ<F1BBADB1><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
::byte fill; // <20>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ(<28><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
::byte cFlag; // <20><>ɫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>滻(1:<3A><><EFBFBD><EFBFBD>,2:<3A><>ˢ,3:<3A><><EFBFBD>ʺͻ<CABA>ˢ)
|
|
|
|
|
|
GColor color; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
GColor bkColor; // <20><>ˢ<EFBFBD><CBA2>ɫ
|
|
|
|
|
|
short penWidth; // <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
short aWidth; // <20><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>(<28><>λΪ0.1<EFBFBD><EFBFBD>)/Բ<>Ǿ<EFBFBD><C7BE>ε<EFBFBD>Բ<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>
|
|
|
|
|
|
short aHeight; // <20><>ʼ<EFBFBD>Ƕ<EFBFBD>(<28><>λΪ0.1<EFBFBD><EFBFBD>)/Բ<>Ǿ<EFBFBD><C7BE>ε<EFBFBD>Բ<EFBFBD>Ǹ߶<C7B8>
|
|
|
|
|
|
short nPoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SPoint *vertex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LOGFONT *font; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
char *text; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BYTE subType; // ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD> -------------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymRect symRect; // <20><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>Ԫ<EFBFBD><D4AA>----------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymPoly symPoly; // <20><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>Ԫ<EFBFBD><D4AA>----------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymArc symArc; // <20><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>Ԫ<EFBFBD><D4AA>----------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymText symText; // <20><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>Ԫ<EFBFBD><D4AA>----------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymGroup symGroup; // <20><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>Ԫ<EFBFBD><D4AA>----------------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ
|
|
|
|
|
|
struct GMShapeSymbol
|
|
|
|
|
|
{
|
|
|
|
|
|
int id; // <20><><EFBFBD><EFBFBD>ID
|
|
|
|
|
|
GColor bkColor; // <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>ɫ
|
|
|
|
|
|
char name[50]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int nSymNameLen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>---------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int nElem; // <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymElement *elems;// <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
BYTE tmpInt1; // <20><>չ1----------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BYTE tmpInt2; // <20><>չ2----------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BYTE tmpInt3; // <20><>չ3----------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ſ<EFBFBD><C5BF>ṹ <20><><EFBFBD><EFBFBD><EFBFBD>ܽṹ
|
|
|
|
|
|
struct GMSymbolLib
|
|
|
|
|
|
{
|
|
|
|
|
|
int nSymbol; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
GMShapeSymbol *shapeSymbol; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ؼ<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CGeoMapSymbolLib : public CSymbolBaseLib
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CGeoMapSymbolLib(void);
|
|
|
|
|
|
virtual ~CGeoMapSymbolLib(void);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|
|
|
|
|
static bool LoadSymbol(CString *fname=NULL);
|
|
|
|
|
|
// <20>ͷŷ<CDB7><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|
|
|
|
|
static void FreeSymbol();
|
|
|
|
|
|
// <20><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void ReadSymbol(CFile &m_File, GMShapeSymbol &symbol);
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼԪ
|
|
|
|
|
|
static void ReadElement(CFile &m_File,GMShapeSymElement *elems, int nElem);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
static GMShapeSymSort *sorts; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static GMShapeSymbol *symbols; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static bool loaded; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static int nSymbol; // <20><><EFBFBD>ſ<EFBFBD><C5BF>еķ<D0B5><C4B7>Ÿ<EFBFBD><C5B8><EFBFBD>
|
|
|
|
|
|
static int nSort; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>GDI<44><49><EFBFBD><EFBFBD>)
|
|
|
|
|
|
bool DrawSymbol( CDC *pDC, int symID, bool useColor, GColor color, int size, CPoint posi);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
void convert(CPoint &pt);
|
|
|
|
|
|
void convert(CPoint *pt, int n);
|
|
|
|
|
|
int symID = 0; // <20><><EFBFBD><EFBFBD>ID
|
|
|
|
|
|
CDC *pDC = nullptr; // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool useColor = false; // <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>
|
|
|
|
|
|
GColor color; // <20>û<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
int size = 0; // <20><><EFBFBD>Ŵ<EFBFBD>С
|
|
|
|
|
|
CPoint position; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|