37 |
****************************************************************************** |
****************************************************************************** |
38 |
* |
* |
39 |
* $Log$ |
* $Log$ |
40 |
* Revision 1.2 2003/10/02 15:15:16 bh |
* Revision 1.3 2004/05/17 15:47:57 bh |
41 |
* Update to shapelib 1.2.10 |
* Update to newest shapelib and get rid of Thuban specific extensions, |
42 |
|
* i.e. use the new DBFUpdateHeader instead of our DBFCommit kludge |
43 |
|
* |
44 |
|
* * libraries/shapelib/shpopen.c: Update to version from current |
45 |
|
* shapelib CVS. |
46 |
|
* |
47 |
|
* * libraries/shapelib/shapefil.h: Update to version from current |
48 |
|
* shapelib CVS. |
49 |
|
* |
50 |
|
* * libraries/shapelib/dbfopen.c: Update to version from current |
51 |
|
* shapelib CVS. |
52 |
|
* (DBFCommit): Effectively removed since shapelib itself has |
53 |
|
* DBFUpdateHeader now which is better for what DBFCommit wanted to |
54 |
|
* achieve. |
55 |
|
* We're now using an unmodified version of dbfopen. |
56 |
|
* |
57 |
|
* * libraries/pyshapelib/dbflib_wrap.c, libraries/pyshapelib/dbflib.py: |
58 |
|
* Update from dbflib.i |
59 |
|
* |
60 |
|
* * libraries/pyshapelib/dbflib.i (DBFInfo_commit): New. Implementation of |
61 |
|
* the commit method. This new indirection is necessary because we use the |
62 |
|
* DBFUpdateHeader function now which is not available in shapelib <= |
63 |
|
* 1.2.10 |
64 |
|
* (DBFFile::commit): Use DBFInfo_commit as implementation |
65 |
|
* (pragma __class__): New. Kludge to remove the commit method when |
66 |
|
* the DBFUpdateHeader function isn't available |
67 |
|
* (_have_commit): New. Helper for the pragma kludge. |
68 |
|
* |
69 |
|
* * libraries/pyshapelib/setup.py (dbf_macros): New. Return the |
70 |
|
* preprocessor macros needed to compile the dbflib wrapper. Determine |
71 |
|
* whether DBFUpdateHeader is available and define the right value of |
72 |
|
* HAVE_UPDATE_HEADER |
73 |
|
* (extensions): Use dbf_macros for the dbflibc extension |
74 |
|
* |
75 |
|
* * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with |
76 |
|
* value '1' to the Lib.dbflibc extension. This simply reflects the |
77 |
|
* shapelib and pyshapelib updates |
78 |
|
* |
79 |
|
* Revision 1.28 2003/12/29 06:02:18 fwarmerdam |
80 |
|
* added cpl_error.h option |
81 |
|
* |
82 |
|
* Revision 1.27 2003/04/21 18:30:37 warmerda |
83 |
|
* added header write/update public methods |
84 |
* |
* |
85 |
* Revision 1.26 2002/09/29 00:00:08 warmerda |
* Revision 1.26 2002/09/29 00:00:08 warmerda |
86 |
* added FTLogical and logical attribute read/write calls |
* added FTLogical and logical attribute read/write calls |
165 |
#include <dbmalloc.h> |
#include <dbmalloc.h> |
166 |
#endif |
#endif |
167 |
|
|
168 |
|
#ifdef USE_CPL |
169 |
|
#include "cpl_error.h" |
170 |
|
#endif |
171 |
|
|
172 |
#ifdef __cplusplus |
#ifdef __cplusplus |
173 |
extern "C" { |
extern "C" { |
174 |
#endif |
#endif |
175 |
|
|
176 |
|
#if defined(_WIN32) || defined(_WIN64) |
177 |
|
#define SHPAPI_HAS_WIDE |
178 |
|
#endif |
179 |
|
|
180 |
/************************************************************************/ |
/************************************************************************/ |
181 |
/* Configuration options. */ |
/* Configuration options. */ |
182 |
/************************************************************************/ |
/************************************************************************/ |
333 |
SHPOpen( const char * pszShapeFile, const char * pszAccess ); |
SHPOpen( const char * pszShapeFile, const char * pszAccess ); |
334 |
SHPHandle SHPAPI_CALL |
SHPHandle SHPAPI_CALL |
335 |
SHPCreate( const char * pszShapeFile, int nShapeType ); |
SHPCreate( const char * pszShapeFile, int nShapeType ); |
336 |
|
#ifdef SHPAPI_HAS_WIDE |
337 |
|
SHPHandle SHPAPI_CALL |
338 |
|
SHPOpenW( const wchar_t * pszShapeFile, const wchar_t * pszAccess ); |
339 |
|
SHPHandle SHPAPI_CALL |
340 |
|
SHPCreateW( const wchar_t * pszShapeFile, int nShapeType ); |
341 |
|
#endif |
342 |
|
SHPHandle SHPAPI_CALL |
343 |
|
SHPOpenEx( FILE * pfSHP, FILE * pfSHX ); |
344 |
|
void SHPAPI_CALL |
345 |
|
SHPCreateEx( FILE * pfSHP, FILE * pfSHX, int nShapeType ); |
346 |
|
|
347 |
void SHPAPI_CALL |
void SHPAPI_CALL |
348 |
SHPGetInfo( SHPHandle hSHP, int * pnEntities, int * pnShapeType, |
SHPGetInfo( SHPHandle hSHP, int * pnEntities, int * pnShapeType, |
349 |
double * padfMinBound, double * padfMaxBound ); |
double * padfMinBound, double * padfMaxBound ); |
369 |
int SHPAPI_CALL |
int SHPAPI_CALL |
370 |
SHPRewindObject( SHPHandle hSHP, SHPObject * psObject ); |
SHPRewindObject( SHPHandle hSHP, SHPObject * psObject ); |
371 |
|
|
372 |
void SHPAPI_CALL |
void SHPAPI_CALL SHPClose( SHPHandle hSHP ); |
373 |
SHPClose( SHPHandle hSHP ); |
void SHPAPI_CALL SHPWriteHeader( SHPHandle hSHP ); |
374 |
|
|
375 |
const char SHPAPI_CALL1(*) |
const char SHPAPI_CALL1(*) |
376 |
SHPTypeName( int nSHPType ); |
SHPTypeName( int nSHPType ); |
421 |
SHPWriteTree( SHPTree *hTree, const char * pszFilename ); |
SHPWriteTree( SHPTree *hTree, const char * pszFilename ); |
422 |
SHPTree SHPAPI_CALL |
SHPTree SHPAPI_CALL |
423 |
SHPReadTree( const char * pszFilename ); |
SHPReadTree( const char * pszFilename ); |
424 |
|
#ifdef SHPAPI_HAS_WIDE |
425 |
|
int SHPAPI_CALL |
426 |
|
SHPWriteTreeW( SHPTree *hTree, const wchar_t * pszFilename ); |
427 |
|
SHPTree SHPAPI_CALL |
428 |
|
SHPReadTreeW( const wchar_t * pszFilename ); |
429 |
|
#endif |
430 |
|
|
431 |
int SHPAPI_CALL |
int SHPAPI_CALL |
432 |
SHPTreeAddObject( SHPTree * hTree, SHPObject * psObject ); |
SHPTreeAddObject( SHPTree * hTree, SHPObject * psObject ); |
471 |
|
|
472 |
int bNoHeader; |
int bNoHeader; |
473 |
int bUpdated; |
int bUpdated; |
474 |
|
int nLanguageDriver; |
475 |
} DBFInfo; |
} DBFInfo; |
476 |
|
|
477 |
typedef DBFInfo * DBFHandle; |
typedef DBFInfo * DBFHandle; |
486 |
|
|
487 |
#define XBASE_FLDHDR_SZ 32 |
#define XBASE_FLDHDR_SZ 32 |
488 |
|
|
489 |
|
/* to hand over a locale agnostic atof function, if decimal_point != ".\0" */ |
490 |
|
void SHPAPI_CALL |
491 |
|
DBFSetatof_function( double (* new_atof_function)(const char *nptr)); |
492 |
|
|
493 |
DBFHandle SHPAPI_CALL |
DBFHandle SHPAPI_CALL |
494 |
DBFOpen( const char * pszDBFFile, const char * pszAccess ); |
DBFOpen( const char * pszDBFFile, const char * pszAccess ); |
495 |
DBFHandle SHPAPI_CALL |
DBFHandle SHPAPI_CALL |
496 |
DBFCreate( const char * pszDBFFile ); |
DBFCreate( const char * pszDBFFile ); |
497 |
|
#ifdef SHPAPI_HAS_WIDE |
498 |
|
DBFHandle SHPAPI_CALL |
499 |
|
DBFOpenW( const wchar_t * pszDBFFile, const wchar_t * pszAccess ); |
500 |
|
DBFHandle SHPAPI_CALL |
501 |
|
DBFCreateW( const wchar_t * pszDBFFile ); |
502 |
|
#endif |
503 |
|
DBFHandle SHPAPI_CALL |
504 |
|
DBFOpenEx( FILE* pf ); |
505 |
|
DBFHandle SHPAPI_CALL |
506 |
|
DBFCreateEx( FILE* pf ); |
507 |
|
|
508 |
int SHPAPI_CALL |
int SHPAPI_CALL |
509 |
DBFGetFieldCount( DBFHandle psDBF ); |
DBFGetFieldCount( DBFHandle psDBF ); |
556 |
|
|
557 |
DBFHandle SHPAPI_CALL |
DBFHandle SHPAPI_CALL |
558 |
DBFCloneEmpty(DBFHandle psDBF, const char * pszFilename ); |
DBFCloneEmpty(DBFHandle psDBF, const char * pszFilename ); |
559 |
|
#ifdef DBFAPI_HAS_WIDE |
560 |
|
DBFHandle SHPAPI_CALL |
561 |
|
DBFCloneEmptyW(DBFHandle psDBF, const wchar_t * pszFilename ); |
562 |
|
#endif |
563 |
|
void SHPAPI_CALL |
564 |
|
DBFCloneEmptyEx(DBFHandle psDBF, DBFHandle newDBF ); |
565 |
|
|
566 |
void SHPAPI_CALL |
void SHPAPI_CALL |
567 |
DBFClose( DBFHandle hDBF ); |
DBFClose( DBFHandle hDBF ); |
568 |
|
void SHPAPI_CALL |
569 |
|
DBFUpdateHeader( DBFHandle hDBF ); |
570 |
char SHPAPI_CALL |
char SHPAPI_CALL |
571 |
DBFGetNativeFieldType( DBFHandle hDBF, int iField ); |
DBFGetNativeFieldType( DBFHandle hDBF, int iField ); |
572 |
|
|
|
int SHPAPI_CALL |
|
|
DBFCommit( DBFHandle hDBF ); |
|
|
|
|
573 |
#ifdef __cplusplus |
#ifdef __cplusplus |
574 |
} |
} |
575 |
#endif |
#endif |