⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mitab.h

📁 GIS系统支持库Geospatial Data Abstraction Library代码.GDAL is a translator library for raster geospatial dat
💻 H
📖 第 1 页 / 共 5 页
字号:
    virtual int         TestCapability( const char * pszCap );    virtual int         GetFeatureCount (int bForce);    virtual int         GetExtent(OGREnvelope *psExtent, int bForce);    ///////////////    // Read access specific stuff    //    int         GetNextFeatureId_Spatial( int nPrevId );    virtual int GetNextFeatureId(int nPrevId);    virtual TABFeature *GetFeatureRef(int nFeatureId);    virtual OGRFeatureDefn *GetLayerDefn();    virtual TABFieldType GetNativeFieldType(int nFieldId);    virtual int GetBounds(double &dXMin, double &dYMin,                           double &dXMax, double &dYMax,                          GBool bForce = TRUE );        virtual OGRSpatialReference *GetSpatialRef();    virtual int GetFeatureCountByType(int &numPoints, int &numLines,                                      int &numRegions, int &numTexts,                                      GBool bForce = TRUE);    virtual GBool IsFieldIndexed(int nFieldId);    virtual GBool IsFieldUnique(int /*nFieldId*/)   {return FALSE;};    ///////////////    // Write access specific stuff    //    virtual int SetBounds(double dXMin, double dYMin,                           double dXMax, double dYMax);    virtual int SetFeatureDefn(OGRFeatureDefn *poFeatureDefn,                            TABFieldType *paeMapInfoNativeFieldTypes = NULL);    virtual int AddFieldNative(const char *pszName, TABFieldType eMapInfoType,                               int nWidth=0, int nPrecision=0,                               GBool bIndexed=FALSE, GBool bUnique=FALSE);    virtual int SetSpatialRef(OGRSpatialReference *poSpatialRef);    virtual int SetFeature(TABFeature *poFeature, int nFeatureId = -1);    virtual int SetFieldIndexed(int nFieldId);    ///////////////    // semi-private.    virtual int  GetProjInfo(TABProjInfo *poPI)            { return m_poMAPFile->GetHeaderBlock()->GetProjInfo( poPI ); }    virtual int  SetProjInfo(TABProjInfo *poPI);    virtual int  SetMIFCoordSys(const char *pszMIFCoordSys);    int         GetFieldIndexNumber(int nFieldId);    TABINDFile  *GetINDFileRef();    TABMAPFile  *GetMAPFileRef() { return m_poMAPFile; }#ifdef DEBUG    virtual void Dump(FILE *fpOut = NULL);#endif};/*--------------------------------------------------------------------- *                      class TABView * * TABView is used to handle special type of .TAB files that are * composed of a number of .TAB datasets linked through some indexed  * fields. * * NOTE: The current implementation supports only TABViews composed *       of 2 TABFiles linked through an indexed field of integer type. *       It is unclear if any other type of views could exist anyways. *--------------------------------------------------------------------*/class TABView: public IMapInfoFile{  private:    char        *m_pszFname;    TABAccess   m_eAccessMode;    char        **m_papszTABFile;    char        *m_pszVersion;    char        *m_pszCharset;        char        **m_papszTABFnames;    TABFile     **m_papoTABFiles;    int         m_numTABFiles;    int         m_nMainTableIndex; // The main table is the one that also                                    // contains the geometries    char        **m_papszFieldNames;    char        **m_papszWhereClause;    TABRelation *m_poRelation;    GBool       m_bRelFieldsCreated;    ///////////////    // Private Read access specific stuff    //    int         ParseTABFile(const char *pszDatasetPath,                              GBool bTestOpenNoError = FALSE);    int         OpenForRead(const char *pszFname,                             GBool bTestOpenNoError = FALSE );    ///////////////    // Private Write access specific stuff    //    int         OpenForWrite(const char *pszFname );    int         WriteTABFile();  public:    TABView();    virtual ~TABView();    virtual TABFileClass GetFileClass() {return TABFC_TABView;}    virtual int Open(const char *pszFname, const char *pszAccess,                     GBool bTestOpenNoError = FALSE );    virtual int Close();    virtual const char *GetTableName()           {return m_poRelation?m_poRelation->GetFeatureDefn()->GetName():"";};    virtual void        ResetReading();    virtual int         TestCapability( const char * pszCap );    virtual int         GetFeatureCount (int bForce);    virtual int         GetExtent(OGREnvelope *psExtent, int bForce);        ///////////////    // Read access specific stuff    //    virtual int GetNextFeatureId(int nPrevId);    virtual TABFeature *GetFeatureRef(int nFeatureId);    virtual OGRFeatureDefn *GetLayerDefn();    virtual TABFieldType GetNativeFieldType(int nFieldId);    virtual int GetBounds(double &dXMin, double &dYMin,                           double &dXMax, double &dYMax,                          GBool bForce = TRUE );        virtual OGRSpatialReference *GetSpatialRef();    virtual int GetFeatureCountByType(int &numPoints, int &numLines,                                      int &numRegions, int &numTexts,                                      GBool bForce = TRUE);    virtual GBool IsFieldIndexed(int nFieldId);    virtual GBool IsFieldUnique(int nFieldId);    ///////////////    // Write access specific stuff    //    virtual int SetBounds(double dXMin, double dYMin,                           double dXMax, double dYMax);    virtual int SetFeatureDefn(OGRFeatureDefn *poFeatureDefn,                           TABFieldType *paeMapInfoNativeFieldTypes=NULL);    virtual int AddFieldNative(const char *pszName,                               TABFieldType eMapInfoType,                               int nWidth=0, int nPrecision=0,                               GBool bIndexed=FALSE, GBool bUnique=FALSE);    virtual int SetSpatialRef(OGRSpatialReference *poSpatialRef);    virtual int SetFeature(TABFeature *poFeature, int nFeatureId = -1);    virtual int SetFieldIndexed(int nFieldId);    ///////////////    // semi-private.    virtual int  GetProjInfo(TABProjInfo *poPI)            { return m_nMainTableIndex!=-1?                     m_papoTABFiles[m_nMainTableIndex]->GetProjInfo(poPI):-1; }    virtual int  SetProjInfo(TABProjInfo *poPI)            { return m_nMainTableIndex!=-1?                     m_papoTABFiles[m_nMainTableIndex]->SetProjInfo(poPI):-1; }    virtual int  SetMIFCoordSys(const char * /*pszMIFCoordSys*/) {return -1;};#ifdef DEBUG    virtual void Dump(FILE *fpOut = NULL);#endif};/*--------------------------------------------------------------------- *                      class TABSeamless * * TABSeamless is used to handle seamless .TAB files that are * composed of a main .TAB file in which each feature is the MBR of * a base table. * * TABSeamless are supported for read access only. *--------------------------------------------------------------------*/class TABSeamless: public IMapInfoFile{  private:    char        *m_pszFname;    char        *m_pszPath;    TABAccess   m_eAccessMode;    OGRFeatureDefn *m_poFeatureDefnRef;    TABFile     *m_poIndexTable;    int         m_nTableNameField;    int         m_nCurBaseTableId;    TABFile     *m_poCurBaseTable;    GBool       m_bEOF;    ///////////////    // Private Read access specific stuff    //    int         OpenForRead(const char *pszFname,                             GBool bTestOpenNoError = FALSE );    int         OpenBaseTable(TABFeature *poIndexFeature,                              GBool bTestOpenNoError = FALSE);    int         OpenBaseTable(int nTableId, GBool bTestOpenNoError = FALSE);    int         OpenNextBaseTable(GBool bTestOpenNoError =FALSE);    int         EncodeFeatureId(int nTableId, int nBaseFeatureId);    int         ExtractBaseTableId(int nEncodedFeatureId);    int         ExtractBaseFeatureId(int nEncodedFeatureId);  public:    TABSeamless();    virtual ~TABSeamless();    virtual TABFileClass GetFileClass() {return TABFC_TABSeamless;}    virtual int Open(const char *pszFname, const char *pszAccess,                     GBool bTestOpenNoError = FALSE );    virtual int Close();    virtual const char *GetTableName()           {return m_poFeatureDefnRef?m_poFeatureDefnRef->GetName():"";};    virtual void        SetSpatialFilter( OGRGeometry * );    virtual void        ResetReading();    virtual int         TestCapability( const char * pszCap );    virtual int         GetFeatureCount (int bForce);    virtual int         GetExtent(OGREnvelope *psExtent, int bForce);        ///////////////    // Read access specific stuff    //    virtual int GetNextFeatureId(int nPrevId);    virtual TABFeature *GetFeatureRef(int nFeatureId);    virtual OGRFeatureDefn *GetLayerDefn();    virtual TABFieldType GetNativeFieldType(int nFieldId);    virtual int GetBounds(double &dXMin, double &dYMin,                           double &dXMax, double &dYMax,                          GBool bForce = TRUE );        virtual OGRSpatialReference *GetSpatialRef();    virtual int GetFeatureCountByType(int &numPoints, int &numLines,                                      int &numRegions, int &numTexts,                                      GBool bForce = TRUE);    virtual GBool IsFieldIndexed(int nFieldId);    virtual GBool IsFieldUnique(int nFieldId);    ///////////////    // Write access specific stuff    //    virtual int SetBounds(double dXMin, double dYMin,                           double dXMax, double dYMax)   {return -1;}    virtual int SetFeatureDefn(OGRFeatureDefn *poFeatureDefn,                               TABFieldType *paeMapInfoNativeFieldTypes=NULL)                                                        {return -1;}    virtual int AddFieldNative(const char *pszName,                               TABFieldType eMapInfoType,                               int nWidth=0, int nPrecision=0,                               GBool bIndexed=FALSE,                                GBool bUnique=FALSE)     {return -1;}    virtual int SetSpatialRef(OGRSpatialReference *poSpatialRef) {return -1;}    virtual int SetFeature(TABFeature *poFeature,                            int nFeatureId = -1) {return -1;}    virtual int SetFieldIndexed(int nFieldId)   {return -1;}    ///////////////    // semi-private.    virtual int  GetProjInfo(TABProjInfo *poPI)            { return m_poIndexTable?m_poIndexTable->GetProjInfo(poPI):-1; }    virtual int  SetProjInfo(TABProjInfo *poPI)         { return -1; }    virtual int  SetMIFCoordSys(const char * /*pszMIFCoordSys*/) {return -1;};#ifdef DEBUG    virtual void Dump(FILE *fpOut = NULL);#endif};/*--------------------------------------------------------------------- *                      class MIFFile * * The main class for (MID/MIF) datasets.  External programs should use this * class to open a (MID/MIF) dataset and read/write features from/to it. * *--------------------------------------------------------------------*/class MIFFile: public IMapInfoFile{  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;    GBool       *m_pabFieldIndexed;    GBool       *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;    OGREnvelope 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    OGRFeatureDefn *m_poDefn;    OGRSpatialReference *m_poSpatialRef;    int         m_nFeatureCount;    int         m_nWriteFeatureId;    int         m_nAttribut;    ///////////////    // Private Read access specific stuff    //    int         ReadFeatureDefn();    int         ParseMIFHeader();    void        PreParseFile();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -