]> granicus.if.org Git - postgis/commitdiff
Update shapelib references to 1.2.9.
authorPaul Ramsey <pramsey@cleverelephant.ca>
Sat, 4 May 2002 22:44:04 +0000 (22:44 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Sat, 4 May 2002 22:44:04 +0000 (22:44 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@149 b70326c6-7e19-0410-871a-916f4a2858ee

loader/README.pgsql2shp
loader/README.shp2pgsql
loader/dbfopen.c
loader/shapefil.h
loader/shpopen.c

index da33820a899e7a1807cd57e9c7075b7001037926..1c33da8ad398ee3d92d4d5d693d7e5bbafd13988 100644 (file)
@@ -1,7 +1,7 @@
 pgsql2shp - Convert PostGIS Table to Shape
 ~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-VERSION: 0.6 (2001/09/20)
+VERSION: 0.7 (2002/05/04)
 
 MORE INFORMATION: http://postgis.refractions.net
 
@@ -9,7 +9,7 @@ INTRODUCTION:
 This program takes PostGIS spatial tables and outputs ESRI
 shape files.
 
-This application uses functionality from shapelib 1.2.8
+This application uses functionality from shapelib 1.2.9
 by Frank Warmerdam <warmerda@gdal.velocet.ca> to write to ESRI
 Shape files.
 
index b47b30837374e16b84fde493127df9ebc69d631d..ef77ece81c06e60b0135cca078b38778c85b5b2d 100644 (file)
@@ -1,7 +1,7 @@
 shp2pgsql - Convert Shape file to PostGIS
 ~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-VERSION: 0.6 (2001/10/01)
+VERSION: 0.7 (2002/05/04)
 
 MORE INFORMATION: http://postgis.refractions.net
 
@@ -10,7 +10,7 @@ This program takes in ESRI shape files and output formatted text suitable
 for uploading to the PostGIS/PostgreSQL spatial database using the psql
 terminal monitor.
 
-This application uses functionality from shapelib 1.2.8
+This application uses functionality from shapelib 1.2.9
 by Frank Warmerdam <warmerda@gdal.velocet.ca> to read from ESRI
 Shape files.
 
index 488d0d9d76a7ff549dc9b99518f3892a3bf255dd..87665724877c98d926cf31fc2258876d490aa2a4 100644 (file)
@@ -34,8 +34,8 @@
  ******************************************************************************
  *
  * $Log$
- * Revision 1.2  2001/11/01 22:57:11  pramsey
- * Updated shapelib files from latest CVS version.
+ * Revision 1.3  2002/05/04 22:44:04  pramsey
+ * Update shapelib references to 1.2.9.
  *
  * Revision 1.37  2001/07/04 05:18:09  warmerda
  * do last fix properly
index 35a56071d8e664821147b1db168959ff0d894b6e..bca89b3e1cb48a6675ef2c0653e20b2cf1da3cde 100644 (file)
  ******************************************************************************
  *
  * $Log$
- * Revision 1.2  2001/11/01 22:57:11  pramsey
- * Updated shapelib files from latest CVS version.
- *
- * Revision 1.21  2001/11/01 16:29:55  warmerda
- * move pabyRec into SHPInfo for thread safety
+ * Revision 1.3  2002/05/04 22:44:04  pramsey
+ * Update shapelib references to 1.2.9.
  *
  * Revision 1.20  2001/07/20 13:06:02  warmerda
  * fixed SHPAPI attribute for SHPTreeFindLikelyShapes
@@ -156,9 +153,6 @@ typedef     struct
     double     adBoundsMax[4];
 
     int                bUpdated;
-
-    unsigned char *pabyRec;
-    int         nBufSize;
 } SHPInfo;
 
 typedef SHPInfo * SHPHandle;
index f5d1f86c21d1f2a74b54010a9332fac68c411f07..981b56ef2b41f5e2f9cb048e10b43d8d9c12911d 100644 (file)
  ******************************************************************************
  *
  * $Log$
- * Revision 1.2  2001/11/01 22:57:11  pramsey
- * Updated shapelib files from latest CVS version.
- *
- * Revision 1.34  2001/11/01 16:29:55  warmerda
- * move pabyRec into SHPInfo for thread safety
+ * Revision 1.3  2002/05/04 22:44:04  pramsey
+ * Update shapelib references to 1.2.9.
  *
  * Revision 1.33  2001/07/03 12:18:15  warmerda
  * Improved cleanup if SHX not found, provied by Riccardo Cohen.
@@ -177,6 +174,8 @@ typedef int       int32;
 #endif
 
 static int     bBigEndian;
+static uchar   *pabyRec = NULL;
+static int     nBufSize = 0;
 
 
 /************************************************************************/
@@ -359,7 +358,7 @@ SHPOpen( const char * pszLayer, const char * pszAccess )
 /* -------------------------------------------------------------------- */
 /*     Initialize the info structure.                                  */
 /* -------------------------------------------------------------------- */
-    psSHP = (SHPHandle) calloc(sizeof(SHPInfo),1);
+    psSHP = (SHPHandle) malloc(sizeof(SHPInfo));
 
     psSHP->bUpdated = FALSE;
 
@@ -558,12 +557,14 @@ SHPClose(SHPHandle psSHP )
     fclose( psSHP->fpSHX );
     fclose( psSHP->fpSHP );
 
-    if( psSHP->pabyRec != NULL )
+    free( psSHP );
+
+    if( pabyRec != NULL )
     {
-        free( psSHP->pabyRec );
+        free( pabyRec );
+        pabyRec = NULL;
+        nBufSize = 0;
     }
-    
-    free( psSHP );
 }
 
 /************************************************************************/
@@ -1275,17 +1276,17 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
 /*      Ensure our record buffer is large enough.                       */
 /* -------------------------------------------------------------------- */
-    if( psSHP->panRecSize[hEntity]+8 > psSHP->nBufSize )
+    if( psSHP->panRecSize[hEntity]+8 > nBufSize )
     {
-       psSHP->nBufSize = psSHP->panRecSize[hEntity]+8;
-       psSHP->pabyRec = (uchar *) SfRealloc(psSHP->pabyRec,psSHP->nBufSize);
+       nBufSize = psSHP->panRecSize[hEntity]+8;
+       pabyRec = (uchar *) SfRealloc(pabyRec,nBufSize);
     }
 
 /* -------------------------------------------------------------------- */
 /*      Read the record.                                                */
 /* -------------------------------------------------------------------- */
     fseek( psSHP->fpSHP, psSHP->panRecOffset[hEntity], 0 );
-    fread( psSHP->pabyRec, psSHP->panRecSize[hEntity]+8, 1, psSHP->fpSHP );
+    fread( pabyRec, psSHP->panRecSize[hEntity]+8, 1, psSHP->fpSHP );
 
 /* -------------------------------------------------------------------- */
 /*     Allocate and minimally initialize the object.                   */
@@ -1293,7 +1294,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
     psShape = (SHPObject *) calloc(1,sizeof(SHPObject));
     psShape->nShapeId = hEntity;
 
-    memcpy( &psShape->nSHPType, psSHP->pabyRec + 8, 4 );
+    memcpy( &psShape->nSHPType, pabyRec + 8, 4 );
     if( bBigEndian ) SwapWord( 4, &(psShape->nSHPType) );
 
 /* ==================================================================== */
@@ -1312,10 +1313,10 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
 /*     Get the X/Y bounds.                                             */
 /* -------------------------------------------------------------------- */
-        memcpy( &(psShape->dfXMin), psSHP->pabyRec + 8 +  4, 8 );
-        memcpy( &(psShape->dfYMin), psSHP->pabyRec + 8 + 12, 8 );
-        memcpy( &(psShape->dfXMax), psSHP->pabyRec + 8 + 20, 8 );
-        memcpy( &(psShape->dfYMax), psSHP->pabyRec + 8 + 28, 8 );
+        memcpy( &(psShape->dfXMin), pabyRec + 8 +  4, 8 );
+        memcpy( &(psShape->dfYMin), pabyRec + 8 + 12, 8 );
+        memcpy( &(psShape->dfXMax), pabyRec + 8 + 20, 8 );
+        memcpy( &(psShape->dfYMax), pabyRec + 8 + 28, 8 );
 
        if( bBigEndian ) SwapWord( 8, &(psShape->dfXMin) );
        if( bBigEndian ) SwapWord( 8, &(psShape->dfYMin) );
@@ -1326,8 +1327,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /*      Extract part/point count, and build vertex and part arrays      */
 /*      to proper size.                                                 */
 /* -------------------------------------------------------------------- */
-       memcpy( &nPoints, psSHP->pabyRec + 40 + 8, 4 );
-       memcpy( &nParts, psSHP->pabyRec + 36 + 8, 4 );
+       memcpy( &nPoints, pabyRec + 40 + 8, 4 );
+       memcpy( &nParts, pabyRec + 36 + 8, 4 );
 
        if( bBigEndian ) SwapWord( 4, &nPoints );
        if( bBigEndian ) SwapWord( 4, &nParts );
@@ -1348,7 +1349,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
 /*      Copy out the part array from the record.                        */
 /* -------------------------------------------------------------------- */
-       memcpy( psShape->panPartStart, psSHP->pabyRec + 44 + 8, 4 * nParts );
+       memcpy( psShape->panPartStart, pabyRec + 44 + 8, 4 * nParts );
        for( i = 0; i < nParts; i++ )
        {
            if( bBigEndian ) SwapWord( 4, psShape->panPartStart+i );
@@ -1361,7 +1362,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
         if( psShape->nSHPType == SHPT_MULTIPATCH )
         {
-            memcpy( psShape->panPartType, psSHP->pabyRec + nOffset, 4*nParts );
+            memcpy( psShape->panPartType, pabyRec + nOffset, 4*nParts );
             for( i = 0; i < nParts; i++ )
             {
                 if( bBigEndian ) SwapWord( 4, psShape->panPartType+i );
@@ -1376,11 +1377,11 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
        for( i = 0; i < nPoints; i++ )
        {
            memcpy(psShape->padfX + i,
-                  psSHP->pabyRec + nOffset + i * 16,
+                  pabyRec + nOffset + i * 16,
                   8 );
 
            memcpy(psShape->padfY + i,
-                  psSHP->pabyRec + nOffset + i * 16 + 8,
+                  pabyRec + nOffset + i * 16 + 8,
                   8 );
 
            if( bBigEndian ) SwapWord( 8, psShape->padfX + i );
@@ -1396,8 +1397,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
             || psShape->nSHPType == SHPT_ARCZ
             || psShape->nSHPType == SHPT_MULTIPATCH )
         {
-            memcpy( &(psShape->dfZMin), psSHP->pabyRec + nOffset, 8 );
-            memcpy( &(psShape->dfZMax), psSHP->pabyRec + nOffset + 8, 8 );
+            memcpy( &(psShape->dfZMin), pabyRec + nOffset, 8 );
+            memcpy( &(psShape->dfZMax), pabyRec + nOffset + 8, 8 );
             
             if( bBigEndian ) SwapWord( 8, &(psShape->dfZMin) );
             if( bBigEndian ) SwapWord( 8, &(psShape->dfZMax) );
@@ -1405,7 +1406,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
             for( i = 0; i < nPoints; i++ )
             {
                 memcpy( psShape->padfZ + i,
-                        psSHP->pabyRec + nOffset + 16 + i*8, 8 );
+                        pabyRec + nOffset + 16 + i*8, 8 );
                 if( bBigEndian ) SwapWord( 8, psShape->padfZ + i );
             }
 
@@ -1420,8 +1421,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
         if( psSHP->panRecSize[hEntity]+8 >= nOffset + 16 + 8*nPoints )
         {
-            memcpy( &(psShape->dfMMin), psSHP->pabyRec + nOffset, 8 );
-            memcpy( &(psShape->dfMMax), psSHP->pabyRec + nOffset + 8, 8 );
+            memcpy( &(psShape->dfMMin), pabyRec + nOffset, 8 );
+            memcpy( &(psShape->dfMMax), pabyRec + nOffset + 8, 8 );
             
             if( bBigEndian ) SwapWord( 8, &(psShape->dfMMin) );
             if( bBigEndian ) SwapWord( 8, &(psShape->dfMMax) );
@@ -1429,7 +1430,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
             for( i = 0; i < nPoints; i++ )
             {
                 memcpy( psShape->padfM + i,
-                        psSHP->pabyRec + nOffset + 16 + i*8, 8 );
+                        pabyRec + nOffset + 16 + i*8, 8 );
                 if( bBigEndian ) SwapWord( 8, psShape->padfM + i );
             }
         }
@@ -1446,7 +1447,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
        int32           nPoints;
        int             i, nOffset;
 
-       memcpy( &nPoints, psSHP->pabyRec + 44, 4 );
+       memcpy( &nPoints, pabyRec + 44, 4 );
        if( bBigEndian ) SwapWord( 4, &nPoints );
 
        psShape->nVertices = nPoints;
@@ -1457,8 +1458,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 
        for( i = 0; i < nPoints; i++ )
        {
-           memcpy(psShape->padfX+i, psSHP->pabyRec + 48 + 16 * i, 8 );
-           memcpy(psShape->padfY+i, psSHP->pabyRec + 48 + 16 * i + 8, 8 );
+           memcpy(psShape->padfX+i, pabyRec + 48 + 16 * i, 8 );
+           memcpy(psShape->padfY+i, pabyRec + 48 + 16 * i + 8, 8 );
 
            if( bBigEndian ) SwapWord( 8, psShape->padfX + i );
            if( bBigEndian ) SwapWord( 8, psShape->padfY + i );
@@ -1469,10 +1470,10 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
 /*     Get the X/Y bounds.                                             */
 /* -------------------------------------------------------------------- */
-        memcpy( &(psShape->dfXMin), psSHP->pabyRec + 8 +  4, 8 );
-        memcpy( &(psShape->dfYMin), psSHP->pabyRec + 8 + 12, 8 );
-        memcpy( &(psShape->dfXMax), psSHP->pabyRec + 8 + 20, 8 );
-        memcpy( &(psShape->dfYMax), psSHP->pabyRec + 8 + 28, 8 );
+        memcpy( &(psShape->dfXMin), pabyRec + 8 +  4, 8 );
+        memcpy( &(psShape->dfYMin), pabyRec + 8 + 12, 8 );
+        memcpy( &(psShape->dfXMax), pabyRec + 8 + 20, 8 );
+        memcpy( &(psShape->dfYMax), pabyRec + 8 + 28, 8 );
 
        if( bBigEndian ) SwapWord( 8, &(psShape->dfXMin) );
        if( bBigEndian ) SwapWord( 8, &(psShape->dfYMin) );
@@ -1484,8 +1485,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
         if( psShape->nSHPType == SHPT_MULTIPOINTZ )
         {
-            memcpy( &(psShape->dfZMin), psSHP->pabyRec + nOffset, 8 );
-            memcpy( &(psShape->dfZMax), psSHP->pabyRec + nOffset + 8, 8 );
+            memcpy( &(psShape->dfZMin), pabyRec + nOffset, 8 );
+            memcpy( &(psShape->dfZMax), pabyRec + nOffset + 8, 8 );
             
             if( bBigEndian ) SwapWord( 8, &(psShape->dfZMin) );
             if( bBigEndian ) SwapWord( 8, &(psShape->dfZMax) );
@@ -1493,7 +1494,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
             for( i = 0; i < nPoints; i++ )
             {
                 memcpy( psShape->padfZ + i,
-                        psSHP->pabyRec + nOffset + 16 + i*8, 8 );
+                        pabyRec + nOffset + 16 + i*8, 8 );
                 if( bBigEndian ) SwapWord( 8, psShape->padfZ + i );
             }
 
@@ -1508,8 +1509,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
         if( psSHP->panRecSize[hEntity]+8 >= nOffset + 16 + 8*nPoints )
         {
-            memcpy( &(psShape->dfMMin), psSHP->pabyRec + nOffset, 8 );
-            memcpy( &(psShape->dfMMax), psSHP->pabyRec + nOffset + 8, 8 );
+            memcpy( &(psShape->dfMMin), pabyRec + nOffset, 8 );
+            memcpy( &(psShape->dfMMax), pabyRec + nOffset + 8, 8 );
             
             if( bBigEndian ) SwapWord( 8, &(psShape->dfMMin) );
             if( bBigEndian ) SwapWord( 8, &(psShape->dfMMax) );
@@ -1517,7 +1518,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
             for( i = 0; i < nPoints; i++ )
             {
                 memcpy( psShape->padfM + i,
-                        psSHP->pabyRec + nOffset + 16 + i*8, 8 );
+                        pabyRec + nOffset + 16 + i*8, 8 );
                 if( bBigEndian ) SwapWord( 8, psShape->padfM + i );
             }
         }
@@ -1538,8 +1539,8 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
         psShape->padfZ = (double *) calloc(1,sizeof(double));
         psShape->padfM = (double *) calloc(1,sizeof(double));
 
-       memcpy( psShape->padfX, psSHP->pabyRec + 12, 8 );
-       memcpy( psShape->padfY, psSHP->pabyRec + 20, 8 );
+       memcpy( psShape->padfX, pabyRec + 12, 8 );
+       memcpy( psShape->padfY, pabyRec + 20, 8 );
 
        if( bBigEndian ) SwapWord( 8, psShape->padfX );
        if( bBigEndian ) SwapWord( 8, psShape->padfY );
@@ -1551,7 +1552,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
         if( psShape->nSHPType == SHPT_POINTZ )
         {
-            memcpy( psShape->padfZ, psSHP->pabyRec + nOffset, 8 );
+            memcpy( psShape->padfZ, pabyRec + nOffset, 8 );
         
             if( bBigEndian ) SwapWord( 8, psShape->padfZ );
             
@@ -1566,7 +1567,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /* -------------------------------------------------------------------- */
         if( psSHP->panRecSize[hEntity]+8 >= nOffset + 8 )
         {
-            memcpy( psShape->padfM, psSHP->pabyRec + nOffset, 8 );
+            memcpy( psShape->padfM, pabyRec + nOffset, 8 );
         
             if( bBigEndian ) SwapWord( 8, psShape->padfM );
         }