📄 miffile.h
字号:
// miffile.h: interface for the MIFFile class.////////////////////////////////////////////////////////////////////////#ifndef MIFFile_H#define MIFFile_H#include "mapinfofile.h"#include "middatafile.h"class MIFFile : public MapInfoFile { private: char *m_pszFname; TABAccess m_eAccessMode; char *m_pszVersion; char *m_pszCharset; char *m_pszDelimiter; char *m_pszUnique; char *m_pszIndex; char *m_pszCoordSys; TABFieldType *m_paeFieldType; UGKBool *m_pabFieldIndexed; UGKBool *m_pabFieldUnique; double m_dfXMultiplier; double m_dfYMultiplier; double m_dfXDisplacement; double m_dfYDisplacement; /* these are the projection bounds, possibly much broader than extents */ double m_dXMin; double m_dYMin; double m_dXMax; double m_dYMax; /* extents, as cached by MIFFile::PreParseFile() */ int m_bExtentsSet; UGKEnvelope m_sExtents; int m_nPoints; int m_nLines; int m_nRegions; int m_nTexts; int m_nPreloadedId; // preloaded mif line is for this feature id MIDDATAFile *m_poMIDFile; // Mid file MIDDATAFile *m_poMIFFile; // Mif File UGKFeatureDefn *m_poDefn; //UGKSpatialReference *m_poSpatialRef; int m_nFeatureCount; int m_nWriteFeatureId; int m_nAttribut; /////////////// // Private Read access specific stuff // int ReadFeatureDefn(); int ParseMIFHeader(); void PreParseFile(); int AddFields(const char *pszLine); int GotoFeature(int nFeatureId); int NextFeature(); /////////////// // Private Write access specific stuff // UGKBool m_bPreParsed; UGKBool m_bHeaderWrote; int WriteMIFHeader(); void UpdateExtents(double dfX,double dfY);public: MIFFile(); virtual ~MIFFile(); virtual TABFileClass GetFileClass() {return TABFC_MIFFile;} virtual int Open(const char *pszFname, const char *pszAccess, UGKBool bTestOpenNoError = FALSE ); virtual int Close(); virtual const char *GetTableName() {return m_poDefn?m_poDefn->GetName():"";}; virtual int TestCapability( const char * pszCap ) ; virtual int GetFeatureCount (int bForce); virtual void ResetReading(); virtual int GetExtent(UGKEnvelope *psExtent, int bForce); /////////////// // Read access specific stuff // virtual int GetNextFeatureId(int nPrevId); virtual TABFeature *GetFeatureRef(int nFeatureId); virtual UGKFeatureDefn *GetLayerDefn(); virtual TABFieldType GetNativeFieldType(int nFieldId); virtual int GetBounds(double &dXMin, double &dYMin, double &dXMax, double &dYMax, UGKBool bForce = TRUE ); //virtual USKSpatialReference *GetSpatialRef(); virtual int GetFeatureCountByType(int &numPoints, int &numLines, int &numRegions, int &numTexts, UGKBool bForce = TRUE); virtual UGKBool IsFieldIndexed(int nFieldId); virtual UGKBool IsFieldUnique(int nFieldId); /////////////// // Write access specific stuff // virtual int SetBounds(double dXMin, double dYMin, double dXMax, double dYMax); virtual int SetFeatureDefn(UGKFeatureDefn *poFeatureDefn, TABFieldType *paeMapInfoNativeFieldTypes = NULL); virtual int AddFieldNative(const char *pszName, TABFieldType eMapInfoType, int nWidth=0, int nPrecision=0, UGKBool bIndexed=FALSE, UGKBool bUnique=FALSE); /* TODO */ //virtual int SetSpatialRef(UGKSpatialReference *poSpatialRef); virtual int SetFeature(TABFeature *poFeature, int nFeatureId = -1); virtual int SetFieldIndexed(int nFieldId); /////////////// // semi-private. virtual int GetProjInfo(TABProjInfo * /*poPI*/){return -1;} /* { return m_poMAPFile->GetHeaderBlock()->GetProjInfo( poPI ); }*/ virtual int SetProjInfo(TABProjInfo * /*poPI*/){return -1;} /* { return m_poMAPFile->GetHeaderBlock()->SetProjInfo( poPI ); }*/ virtual int SetMIFCoordSys(const char * pszMIFCoordSys); virtual void Dump(FILE * /*fpOut*/ = NULL) {};};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -