📄 ugkglobal.h
字号:
double adProjParams[6]; // params in same order as in .MIF COORDSYS double dDatumShiftX; double dDatumShiftY; double dDatumShiftZ; double adDatumParams[5]; // Affine parameters only in .map version 500 and up UGKByte nAffineFlag; // 0=No affine param, 1=Affine params UGKByte nAffineUnits; double dAffineParamA; // Affine params double dAffineParamB; double dAffineParamC; double dAffineParamD; double dAffineParamE; double dAffineParamF;} TABProjInfo;/*--------------------------------------------------------------------- * TABMAPCoordSecHdr * struct used in the TABMAPCoordBlock to store info about the coordinates * for a section of a PLINE MULTIPLE or a REGION. * 结构体,在TABMAPCoordBlock类中用来保存一个PLINE MULTIPLE或REGION * 的坐标信息 *--------------------------------------------------------------------*/typedef struct TABMAPCoordSecHdr_t{ UGKInt32 numVertices; //顶点数 UGKInt16 numHoles; //孔的个数 UGKInt32 nXMin; //****** UGKInt32 nYMin; // 边界 UGKInt32 nXMax; UGKInt32 nYMax; //******** UGKInt32 nDataOffset; //? int nVertexOffset; //?} TABMAPCoordSecHdr;/*--------------------------------------------------------------------- * struct TABMAPIndexEntry - Entries found in type 1 blocks of .MAP files * * We will use this struct to rebuild the geographic index in memory *--------------------------------------------------------------------*/typedef struct TABMAPIndexEntry_t{ // These members refer to the info we find in the file UGKInt32 XMin; UGKInt32 YMin; UGKInt32 XMax; UGKInt32 YMax; UGKInt32 nBlockPtr;}TABMAPIndexEntry;#define TAB_MAX_ENTRIES_INDEX_BLOCK ((512-4)/20)/*--------------------------------------------------------------------- * TABVertex *--------------------------------------------------------------------*/typedef struct TABVertex_t{ double x; double y;} TABVertex;/*--------------------------------------------------------------------- * TABFontDef - Font Name information *--------------------------------------------------------------------*/typedef struct TABFontDef_t{ UGKInt32 nRefCount; char szFontName[33];} TABFontDef;#define MITAB_FONT_DEFAULT {0, "Arial"}/*--------------------------------------------------------------------- * TABPenDef - Pen definition information *--------------------------------------------------------------------*/typedef struct TABPenDef_t{ UGKInt32 nRefCount; UGKByte nPixelWidth; UGKByte nLinePattern; int nPointWidth; UGKInt32 rgbColor;} TABPenDef;#define MITAB_PEN_DEFAULT {0, 1, 2, 0, 0x000000}/*--------------------------------------------------------------------- * TABBrushDef - Brush definition information *--------------------------------------------------------------------*/typedef struct TABBrushDef_t{ UGKInt32 nRefCount; UGKByte nFillPattern; UGKByte bTransparentFill; // 1 = Transparent UGKInt32 rgbFGColor; UGKInt32 rgbBGColor;} TABBrushDef;#define MITAB_BRUSH_DEFAULT {0, 1, 0, 0, 0xffffff}typedef struct TABSymbolDef_t{ UGKInt32 nRefCount; UGKInt16 nSymbolNo; UGKInt16 nPointSize; UGKByte _nUnknownValue_;// Style??? UGKInt32 rgbColor;} TABSymbolDef;#define MITAB_SYMBOL_DEFAULT {0, 35, 12, 0, 0x000000}typedef enum TABFontStyle_t // Can be OR'ed{ // except box and halo are mutually exclusive TABFSNone = 0, TABFSBold = 0x0001, TABFSItalic = 0x0002, TABFSUnderline = 0x0004, TABFSStrikeout = 0x0008, TABFSOutline = 0x0010, TABFSShadow = 0x0020, TABFSInverse = 0x0040, TABFSBlink = 0x0080, TABFSBox = 0x0100, // See note about box vs halo below. TABFSHalo = 0x0200, // MIF uses 256, see MIF docs, App.A TABFSAllCaps = 0x0400, // MIF uses 512 TABFSExpanded = 0x0800 // MIF uses 1024} TABFontStyle;/*--------------------------------------------------------------------- * Codes for the feature classes *--------------------------------------------------------------------*/typedef enum{ TABFCNoGeomFeature = 0, TABFCPoint = 1, TABFCFontPoint = 2, TABFCCustomPoint = 3, TABFCText = 4, TABFCPolyline = 5, TABFCArc = 6, TABFCRegion = 7, TABFCRectangle = 8, TABFCEllipse = 9, TABFCMultiPoint = 10, TABFCCollection = 11, TABFCDebugFeature} TABFeatureClass;typedef enum{ TABFUnknown = 0, TABFChar, TABFInteger, TABFSmallInt, TABFDecimal, TABFFloat, TABFDate, TABFLogical} TABFieldType; /*--------------------------------------------------------------------- * TABTableType - Attribute table format *--------------------------------------------------------------------*/typedef enum{ TABTableNative, // The default TABTableDBF, TABTableAccess} TABTableType;/*--------------------------------------------------------------------- * TABDATFieldDef *--------------------------------------------------------------------*/typedef struct TABDATFieldDef_t{ char szName[11]; char cType; UGKByte byLength; UGKByte byDecimals; TABFieldType eTABType; // 字段类型 $zgq} TABDATFieldDef;/*--------------------------------------------------------------------- * Definitions for text attributes *--------------------------------------------------------------------*/typedef enum TABTextJust_t{ TABTJLeft = 0, // Default: Left Justification TABTJCenter, TABTJRight} TABTextJust;typedef enum TABTextSpacing_t{ TABTSSingle = 0, // Default: Single spacing TABTS1_5, // 1.5 TABTSDouble} TABTextSpacing;typedef enum TABTextLineType_t{ TABTLNoLine = 0, // Default: No line TABTLSimple, TABTLArrow} TABTextLineType;typedef enum TABCustSymbStyle_t // Can be OR'ed{ TABCSNone = 0, // Transparent BG, use default colors TABCSBGOpaque = 0x01, // White pixels are opaque TABCSApplyColor = 0x02 // non-white pixels drawn using symbol color} TABCustSymbStyle;#define TABFIELDTYPE_2_STRING(type) \ (type == TABFChar ? "Char" : \ type == TABFInteger ? "Integer" : \ type == TABFSmallInt ? "SmallInt" : \ type == TABFDecimal ? "Decimal" : \ type == TABFFloat ? "Float" : \ type == TABFDate ? "Date" : \ type == TABFLogical ? "Logical" : \ "Unknown field type" )/*--------------------------------------------------------------------- * The following are used for coordsys bounds lookup *--------------------------------------------------------------------*/typedef struct{ TABProjInfo sProj; /* Projection/datum definition */ double dXMin; /* Default bounds for that coordsys */ double dYMin; double dXMax; double dYMax;} MapInfoBoundsInfo; /* 坐标系的边界 $zgq */ #define COLOR_R(color) ((color&0xff0000)/0x10000)#define COLOR_G(color) ((color&0xff00)/0x100)#define COLOR_B(color) (color&0xff)/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */#define OLCRandomRead "RandomRead"#define OLCSequentialWrite "SequentialWrite"#define OLCRandomWrite "RandomWrite"#define OLCFastSpatialFilter "FastSpatialFilter"#define OLCFastFeatureCount "FastFeatureCount"#define OLCFastGetExtent "FastGetExtent"#define OLCCreateField "CreateField"#define OLCTransactions "Transactions"#define OLCDeleteFeature "DeleteFeature"#define OLCFastSetNextByIndex "FastSetNextByIndex"#define ODsCCreateLayer "CreateLayer"#define ODsCDeleteLayer "DeleteLayer"#define ODrCCreateDataSource "CreateDataSource"#define ODrCDeleteDataSource "DeleteDataSource"/*********************************************************/// 全局函数UGKBool TABAdjustFilenameExtension(char *pszFname);char *TABGetBasename(const char *pszFname);char *TABCleanFieldName(const char *pszSrcName);char *TABEscapeString(char *pszString);char *TABUnEscapeString(char *pszString, UGKBool bSrcIsConst);UGKBool MITABLookupCoordSysBounds(TABProjInfo *psCS, double &dXMin, double &dYMin, double &dXMax, double &dYMax);void SwapHighLow4Byte(double &val);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -