📄 shapefil.h
字号:
/* from the .shp file. *//* -------------------------------------------------------------------- */typedef struct{ int nSHPType; int nShapeId; /* -1 is unknown/unassigned */ int nParts; int *panPartStart; int *panPartType; int nVertices; double *padfX; double *padfY; double *padfZ; double *padfM; double dfXMin; double dfYMin; double dfZMin; double dfMMin; double dfXMax; double dfYMax; double dfZMax; double dfMMax;} SHPObject;/* -------------------------------------------------------------------- *//* SHP API Prototypes *//* -------------------------------------------------------------------- */SHPHandle SHPAPI_CALL SHPOpen( const char * pszShapeFile, const char * pszAccess );SHPHandle SHPAPI_CALL SHPCreate( const char * pszShapeFile, int nShapeType );void SHPAPI_CALL SHPGetInfo( SHPHandle hSHP, int * pnEntities, int * pnShapeType, double * padfMinBound, double * padfMaxBound );SHPObject SHPAPI_CALL1(*) SHPReadObject( SHPHandle hSHP, int iShape );int SHPAPI_CALL SHPWriteObject( SHPHandle hSHP, int iShape, SHPObject * psObject );void SHPAPI_CALL SHPDestroyObject( SHPObject * psObject );void SHPAPI_CALL SHPComputeExtents( SHPObject * psObject );SHPObject SHPAPI_CALL1(*) SHPCreateObject( int nSHPType, int nShapeId, int nParts, int * panPartStart, int * panPartType, int nVertices, double * padfX, double * padfY, double * padfZ, double * padfM );SHPObject SHPAPI_CALL1(*) SHPCreateSimpleObject( int nSHPType, int nVertices, double * padfX, double * padfY, double * padfZ );int SHPAPI_CALL SHPRewindObject( SHPHandle hSHP, SHPObject * psObject );void SHPAPI_CALL SHPClose( SHPHandle hSHP );const char SHPAPI_CALL1(*) SHPTypeName( int nSHPType );const char SHPAPI_CALL1(*) SHPPartTypeName( int nPartType );/* -------------------------------------------------------------------- *//* Shape quadtree indexing API. *//* -------------------------------------------------------------------- *//* this can be two or four for binary or quad tree */#define MAX_SUBNODE 4typedef struct shape_tree_node{ /* region covered by this node */ double adfBoundsMin[4]; double adfBoundsMax[4]; /* list of shapes stored at this node. The papsShapeObj pointers or the whole list can be NULL */ int nShapeCount; int *panShapeIds; SHPObject **papsShapeObj; int nSubNodes; struct shape_tree_node *apsSubNode[MAX_SUBNODE];} SHPTreeNode;typedef struct{ SHPHandle hSHP; int nMaxDepth; int nDimension; SHPTreeNode *psRoot;} SHPTree;SHPTree SHPAPI_CALL1(*) SHPCreateTree( SHPHandle hSHP, int nDimension, int nMaxDepth, double *padfBoundsMin, double *padfBoundsMax );void SHPAPI_CALL SHPDestroyTree( SHPTree * hTree );int SHPAPI_CALL SHPWriteTree( SHPTree *hTree, const char * pszFilename );SHPTree SHPAPI_CALL SHPReadTree( const char * pszFilename );int SHPAPI_CALL SHPTreeAddObject( SHPTree * hTree, SHPObject * psObject );int SHPAPI_CALL SHPTreeAddShapeId( SHPTree * hTree, SHPObject * psObject );int SHPAPI_CALL SHPTreeRemoveShapeId( SHPTree * hTree, int nShapeId );void SHPAPI_CALL SHPTreeTrimExtraNodes( SHPTree * hTree );int SHPAPI_CALL1(*) SHPTreeFindLikelyShapes( SHPTree * hTree, double * padfBoundsMin, double * padfBoundsMax, int * );int SHPAPI_CALL SHPCheckBoundsOverlap( double *, double *, double *, double *, int );/************************************************************************//* DBF Support. *//************************************************************************/typedef struct{ FILE *fp; int nRecords; int nRecordLength; int nHeaderLength; int nFields; int *panFieldOffset; int *panFieldSize; int *panFieldDecimals; char *pachFieldType; char *pszHeader; int nCurrentRecord; int bCurrentRecordModified; char *pszCurrentRecord; int bNoHeader; int bUpdated;} DBFInfo;typedef DBFInfo * DBFHandle;typedef enum { FTString, FTInteger, FTDouble, FTLogical, FTInvalid, FTDate} DBFFieldType;#define XBASE_FLDHDR_SZ 32DBFHandle SHPAPI_CALL DBFOpen( const char * pszDBFFile, const char * pszAccess );DBFHandle SHPAPI_CALL DBFCreate( const char * pszDBFFile );int SHPAPI_CALL DBFGetFieldCount( DBFHandle psDBF );int SHPAPI_CALL DBFGetRecordCount( DBFHandle psDBF );int SHPAPI_CALL DBFAddField( DBFHandle hDBF, const char * pszFieldName, DBFFieldType eType, int nWidth, int nDecimals );DBFFieldType SHPAPI_CALL DBFGetFieldInfo( DBFHandle psDBF, int iField, char * pszFieldName, int * pnWidth, int * pnDecimals );int SHPAPI_CALL DBFGetFieldIndex(DBFHandle psDBF, const char *pszFieldName);int SHPAPI_CALL DBFReadIntegerAttribute( DBFHandle hDBF, int iShape, int iField );int SHPAPI_CALL DBFReadDateAttribute( DBFHandle hDBF, int iShape, int iField );double SHPAPI_CALL DBFReadDoubleAttribute( DBFHandle hDBF, int iShape, int iField );const char SHPAPI_CALL1(*) DBFReadStringAttribute( DBFHandle hDBF, int iShape, int iField );const char SHPAPI_CALL1(*) DBFReadLogicalAttribute( DBFHandle hDBF, int iShape, int iField );int SHPAPI_CALL DBFIsAttributeNULL( DBFHandle hDBF, int iShape, int iField );int SHPAPI_CALL DBFWriteIntegerAttribute( DBFHandle hDBF, int iShape, int iField, int nFieldValue );int SHPAPI_CALL DBFWriteDateAttribute( DBFHandle hDBF, int iShape, int iField, int nFieldValue );int SHPAPI_CALL DBFWriteDoubleAttribute( DBFHandle hDBF, int iShape, int iField, double dFieldValue );int SHPAPI_CALL DBFWriteStringAttribute( DBFHandle hDBF, int iShape, int iField, const char * pszFieldValue );int SHPAPI_CALL DBFWriteNULLAttribute( DBFHandle hDBF, int iShape, int iField );int SHPAPI_CALL DBFWriteLogicalAttribute( DBFHandle hDBF, int iShape, int iField, const char lFieldValue);int SHPAPI_CALL DBFWriteAttributeDirectly(DBFHandle psDBF, int hEntity, int iField, void * pValue );const char SHPAPI_CALL1(*) DBFReadTuple(DBFHandle psDBF, int hEntity );int SHPAPI_CALL DBFWriteTuple(DBFHandle psDBF, int hEntity, void * pRawTuple );DBFHandle SHPAPI_CALL DBFCloneEmpty(DBFHandle psDBF, const char * pszFilename );void SHPAPI_CALL DBFClose( DBFHandle hDBF );char SHPAPI_CALL DBFGetNativeFieldType( DBFHandle hDBF, int iField );#ifdef __cplusplus}#endif#endif /* ndef _SHAPEFILE_H_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -