From b7432a67cd2ce40cc5a8142e28135c9566a3ea47 Mon Sep 17 00:00:00 2001 From: Mohan Yelugoti Date: Tue, 29 Oct 2024 19:36:03 -0400 Subject: [PATCH] dbfopen: fix possible memory leaks when using realloc Fixes #165 Signed-off-by: Mohan Yelugoti --- dbfopen.c | 150 +++++- s1.out | 1465 +++++++++++++++++++++++++++++++++++++++++++++++++++++ s2.out | 530 +++++++++++++++++++ s3.out | 37 ++ 4 files changed, 2158 insertions(+), 24 deletions(-) create mode 100644 s1.out create mode 100644 s2.out create mode 100644 s3.out diff --git a/dbfopen.c b/dbfopen.c index 90ed7ea..bc96862 100644 --- a/dbfopen.c +++ b/dbfopen.c @@ -459,9 +459,19 @@ DBFHandle SHPAPI_CALL DBFOpenLL(const char *pszFilename, const char *pszAccess, /* -------------------------------------------------------------------- */ /* Read in Field Definitions */ /* -------------------------------------------------------------------- */ - pabyBuf = STATIC_CAST(unsigned char *, realloc(pabyBuf, nHeadLen)); - psDBF->pszHeader = REINTERPRET_CAST(char *, pabyBuf); + unsigned char *pabyBuf_realloc_ptr = + STATIC_CAST(unsigned char *, realloc(pabyBuf, nHeadLen)); + if (!pabyBuf_realloc_ptr) + { + psDBF->nFields--; + return SHPLIB_NULLPTR; + } + else + { + pabyBuf = pabyBuf_realloc_ptr; + } + psDBF->pszHeader = REINTERPRET_CAST(char *, pabyBuf); psDBF->sHooks.FSeek(psDBF->fp, XBASE_FILEHDR_SZ, 0); if (psDBF->sHooks.FRead(pabyBuf, nHeadLen - XBASE_FILEHDR_SZ, 1, psDBF->fp) != 1) @@ -799,6 +809,8 @@ int SHPAPI_CALL DBFAddNativeFieldType(DBFHandle psDBF, const char *pszFieldName, const int nOldRecordLength = psDBF->nRecordLength; const int nOldHeaderLength = psDBF->nHeaderLength; + int *psDBF_realloc_ptr = NULL; + char *psDBF_char_realloc_ptr = NULL; /* -------------------------------------------------------------------- */ /* realloc all the arrays larger to hold the additional field */ @@ -806,18 +818,58 @@ int SHPAPI_CALL DBFAddNativeFieldType(DBFHandle psDBF, const char *pszFieldName, /* -------------------------------------------------------------------- */ psDBF->nFields++; - psDBF->panFieldOffset = STATIC_CAST( + psDBF_realloc_ptr = STATIC_CAST( int *, realloc(psDBF->panFieldOffset, sizeof(int) * psDBF->nFields)); - psDBF->panFieldSize = STATIC_CAST( + if (!psDBF_realloc_ptr) + { + psDBF->nFields--; + return -1; + } + else + { + psDBF->panFieldOffset = psDBF_realloc_ptr; + } + + psDBF_realloc_ptr = STATIC_CAST( int *, realloc(psDBF->panFieldSize, sizeof(int) * psDBF->nFields)); - psDBF->panFieldDecimals = STATIC_CAST( + if (!psDBF_realloc_ptr) + { + psDBF->nFields--; + return -1; + } + else + { + psDBF->panFieldSize = psDBF_realloc_ptr; + } + + psDBF_realloc_ptr = STATIC_CAST( int *, realloc(psDBF->panFieldDecimals, sizeof(int) * psDBF->nFields)); - psDBF->pachFieldType = STATIC_CAST( + if (!psDBF_realloc_ptr) + { + psDBF->nFields--; + return -1; + } + else + { + psDBF->panFieldDecimals = psDBF_realloc_ptr; + } + + psDBF_char_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pachFieldType, sizeof(char) * psDBF->nFields)); + if (!psDBF_char_realloc_ptr) + { + psDBF->nFields--; + return -1; + } + else + { + psDBF->pachFieldType = psDBF_char_realloc_ptr; + } + /* -------------------------------------------------------------------- */ /* Assign the new field information fields. */ /* -------------------------------------------------------------------- */ @@ -833,9 +885,19 @@ int SHPAPI_CALL DBFAddNativeFieldType(DBFHandle psDBF, const char *pszFieldName, psDBF->nHeaderLength += XBASE_FLDHDR_SZ; psDBF->bUpdated = FALSE; - psDBF->pszHeader = STATIC_CAST( + psDBF_char_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pszHeader, psDBF->nFields * XBASE_FLDHDR_SZ)); + if (!psDBF_char_realloc_ptr) + { + psDBF->nFields--; + return -1; + } + else + { + psDBF->pszHeader = psDBF_char_realloc_ptr; + } + char *pszFInfo = psDBF->pszHeader + XBASE_FLDHDR_SZ * (psDBF->nFields - 1); for (int i = 0; i < XBASE_FLDHDR_SZ; i++) @@ -859,9 +921,19 @@ int SHPAPI_CALL DBFAddNativeFieldType(DBFHandle psDBF, const char *pszFieldName, /* -------------------------------------------------------------------- */ /* Make the current record buffer appropriately larger. */ /* -------------------------------------------------------------------- */ - psDBF->pszCurrentRecord = STATIC_CAST( + psDBF_char_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pszCurrentRecord, psDBF->nRecordLength)); + if (!psDBF_char_realloc_ptr) + { + psDBF->nFields--; + return -1; + } + else + { + psDBF->pszCurrentRecord = psDBF_char_realloc_ptr; + } + /* we're done if dealing with new .dbf */ if (psDBF->bNoHeader) return (psDBF->nFields - 1); @@ -964,8 +1036,20 @@ static void *DBFReadAttribute(DBFHandle psDBF, int hEntity, int iField, psDBF->pszWorkField = STATIC_CAST(char *, malloc(psDBF->nWorkFieldLength)); else - psDBF->pszWorkField = STATIC_CAST( + { + char *psDBF_char_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pszWorkField, psDBF->nWorkFieldLength)); + + if (!psDBF_char_realloc_ptr) + { + psDBF->nFields--; + return SHPLIB_NULLPTR; + } + else + { + psDBF->pszWorkField = psDBF_char_realloc_ptr; + } + } } /* -------------------------------------------------------------------- */ @@ -1828,6 +1912,8 @@ int SHPAPI_CALL DBFDeleteField(DBFHandle psDBF, int iField) int nOldHeaderLength = psDBF->nHeaderLength; int nDeletedFieldOffset = psDBF->panFieldOffset[iField]; int nDeletedFieldSize = psDBF->panFieldSize[iField]; + int *psDBF_realloc_ptr = NULL; + char *psDBF_char_realloc_ptr = NULL; /* update fields info */ for (int i = iField + 1; i < psDBF->nFields; i++) @@ -1842,18 +1928,6 @@ int SHPAPI_CALL DBFDeleteField(DBFHandle psDBF, int iField) /* resize fields arrays */ psDBF->nFields--; - psDBF->panFieldOffset = STATIC_CAST( - int *, realloc(psDBF->panFieldOffset, sizeof(int) * psDBF->nFields)); - - psDBF->panFieldSize = STATIC_CAST( - int *, realloc(psDBF->panFieldSize, sizeof(int) * psDBF->nFields)); - - psDBF->panFieldDecimals = STATIC_CAST( - int *, realloc(psDBF->panFieldDecimals, sizeof(int) * psDBF->nFields)); - - psDBF->pachFieldType = STATIC_CAST( - char *, realloc(psDBF->pachFieldType, sizeof(char) * psDBF->nFields)); - /* update header information */ psDBF->nHeaderLength -= XBASE_FLDHDR_SZ; psDBF->nRecordLength -= nDeletedFieldSize; @@ -1863,13 +1937,31 @@ int SHPAPI_CALL DBFDeleteField(DBFHandle psDBF, int iField) psDBF->pszHeader + (iField + 1) * XBASE_FLDHDR_SZ, sizeof(char) * (psDBF->nFields - iField) * XBASE_FLDHDR_SZ); - psDBF->pszHeader = STATIC_CAST( + psDBF_char_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pszHeader, psDBF->nFields * XBASE_FLDHDR_SZ)); + if (!psDBF_char_realloc_ptr) + { + return FALSE; + } + else + { + psDBF->pszHeader = psDBF_char_realloc_ptr; + } + /* update size of current record appropriately */ - psDBF->pszCurrentRecord = STATIC_CAST( + psDBF_char_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pszCurrentRecord, psDBF->nRecordLength)); + if (!psDBF_char_realloc_ptr) + { + return FALSE; + } + else + { + psDBF->pszCurrentRecord = psDBF_char_realloc_ptr; + } + /* we're done if we're dealing with not yet created .dbf */ if (psDBF->bNoHeader && psDBF->nRecords == 0) return TRUE; @@ -2135,8 +2227,18 @@ int SHPAPI_CALL DBFAlterFieldDefn(DBFHandle psDBF, int iField, psDBF->panFieldOffset[i] += nWidth - nOldWidth; psDBF->nRecordLength += nWidth - nOldWidth; - psDBF->pszCurrentRecord = STATIC_CAST( + char *psDBF_realloc_ptr = STATIC_CAST( char *, realloc(psDBF->pszCurrentRecord, psDBF->nRecordLength)); + + if (!psDBF_realloc_ptr) + { + psDBF->nFields--; + return FALSE; + } + else + { + psDBF->pszCurrentRecord = psDBF_realloc_ptr; + } } /* we're done if we're dealing with not yet created .dbf */ diff --git a/s1.out b/s1.out new file mode 100644 index 0000000..6753178 --- /dev/null +++ b/s1.out @@ -0,0 +1,1465 @@ +------------------------------------------------------------------------- +Test 1: dump anno.shp +------------------------------------------------------------------------- +Shapefile Type: Polygon # of Shapes: 201 + +File Bounds: (471276.28125,4751595.5,0,0) + to (492683.536178589,4765390.41258159,0,0) + +Shape:0 (Polygon) nVertices=5, nParts=1 + Bounds:(486019.129526088,4764549.5, 0) + to (486356.183408453,4765212.74353282, 0) + (486089.53125,4764549.5, 0) Ring + (486019.129526088,4764579.12801761, 0) + (486285.781684541,4765212.74353282, 0) + (486356.183408453,4765183.11551521, 0) + (486089.53125,4764549.5, 0) + +Shape:1 (Polygon) nVertices=5, nParts=1 + Bounds:(484948.275379082,4763866.5, 0) + to (485333.012285093,4764070.37556161, 0) + (484974.71875,4763866.5, 0) Ring + (484948.275379082,4763938.15870702, 0) + (485306.568914175,4764070.37556161, 0) + (485333.012285093,4763998.71685459, 0) + (484974.71875,4763866.5, 0) + +Shape:2 (Polygon) nVertices=5, nParts=1 + Bounds:(485577.021014671,4764106.5, 0) + to (485818.355013877,4764259.30529395, 0) + (485604.15625,4764106.5, 0) Ring + (485577.021014671,4764177.89958796, 0) + (485791.219778548,4764259.30529395, 0) + (485818.355013877,4764187.90570599, 0) + (485604.15625,4764106.5, 0) + +Shape:3 (Polygon) nVertices=5, nParts=1 + Bounds:(484861.499856912,4762570.51334615, 0) + to (485092.0625,4763026.85631982, 0) + (485092.0625,4762597, 0) Ring + (485020.41978003,4762570.51334615, 0) + (484861.499856912,4763000.36966597, 0) + (484933.142576882,4763026.85631982, 0) + (485092.0625,4762597, 0) + +Shape:4 (Polygon) nVertices=5, nParts=1 + Bounds:(484452.623790727,4763792.61358018, 0) + to (484628.03125,4764105.94712004, 0) + (484628.03125,4763818.5, 0) Ring + (484556.16946999,4763792.61358018, 0) + (484452.623790727,4764080.06070022, 0) + (484524.485570736,4764105.94712004, 0) + (484628.03125,4763818.5, 0) + +Shape:5 (Polygon) nVertices=5, nParts=1 + Bounds:(484355.352307164,4764139.43528715, 0) + to (484505.34375,4764380.89191282, 0) + (484505.34375,4764165.5, 0) Ring + (484433.546445727,4764139.43528715, 0) + (484355.352307164,4764354.82719996, 0) + (484427.149611437,4764380.89191282, 0) + (484505.34375,4764165.5, 0) + +Shape:6 (Polygon) nVertices=9, nParts=1 + Bounds:(484548.866401084,4763118.53096087, 0) + to (484772.0625,4763742.25772229, 0) + (484772.0625,4763152, 0) Ring + (484703.403592518,4763118.53096087, 0) + (484605.763230804,4763318.83191767, 0) + (484548.866401084,4763471.14947223, 0) + (484603.088051098,4763742.25772229, 0) + (484677.986842791,4763727.27796396, 0) + (484628.03125,4763477.5, 0) + (484676.03125,4763349, 0) + (484772.0625,4763152, 0) + +Shape:7 (Polygon) nVertices=5, nParts=1 + Bounds:(484671.738991661,4763562.5, 0) + to (484911.415125081,4763682.33806671, 0) + (484686.71875,4763562.5, 0) Ring + (484671.738991661,4763637.39879169, 0) + (484896.435366742,4763682.33806671, 0) + (484911.415125081,4763607.43927502, 0) + (484686.71875,4763562.5, 0) + +Shape:8 (Polygon) nVertices=5, nParts=1 + Bounds:(484930.171804625,4763125.5, 0) + to (485596.341537714,4763453.26948479, 0) + (484958.71875,4763125.5, 0) Ring + (484930.171804625,4763196.34697641, 0) + (485567.794592339,4763453.26948479, 0) + (485596.341537714,4763382.42250838, 0) + (484958.71875,4763125.5, 0) + +Shape:9 (Polygon) nVertices=5, nParts=1 + Bounds:(485102.757495073,4763082.5, 0) + to (485344.153995416,4763234.02884659, 0) + (485129.40625,4763082.5, 0) Ring + (485102.757495073,4763154.08258181, 0) + (485317.505240489,4763234.02884659, 0) + (485344.153995416,4763162.44626478, 0) + (485129.40625,4763082.5, 0) + +Shape:10 (Polygon) nVertices=5, nParts=1 + Bounds:(485368.786394222,4762538.5, 0) + to (485824.016125969,4762774.02911399, 0) + (485396.15625,4762538.5, 0) Ring + (485368.786394222,4762609.80997933, 0) + (485796.646270191,4762774.02911399, 0) + (485824.016125969,4762702.71913467, 0) + (485396.15625,4762538.5, 0) + +Shape:11 (Polygon) nVertices=5, nParts=1 + Bounds:(487002.483900892,4763184, 0) + to (487243.96024663,4763333.36837953, 0) + (487028.3125,4763184, 0) Ring + (487002.483900892,4763255.88258221, 0) + (487218.131647522,4763333.36837953, 0) + (487243.96024663,4763261.48579732, 0) + (487028.3125,4763184, 0) + +Shape:12 (Polygon) nVertices=5, nParts=1 + Bounds:(486733.537144613,4762455.41284243, 0) + to (487076.3125,4763275.4828437, 0) + (487076.3125,4762480, 0) Ring + (487003.995877845,4762455.41284243, 0) + (486733.537144613,4763250.89568613, 0) + (486805.853766768,4763275.4828437, 0) + (487076.3125,4762480, 0) + +Shape:13 (Polygon) nVertices=5, nParts=1 + Bounds:(486440.735318563,4762331.0285149, 0) + to (486772.28125,4763075.31080452, 0) + (486772.28125,4762357, 0) Ring + (486700.450169548,4762331.0285149, 0) + (486440.735318563,4763049.33931942, 0) + (486512.566399014,4763075.31080452, 0) + (486772.28125,4762357, 0) + +Shape:14 (Polygon) nVertices=5, nParts=1 + Bounds:(486383.881873761,4762986.53024239, 0) + to (486521.59375,4763227.9078102, 0) + (486521.59375,4763008, 0) Ring + (486448.291146601,4762986.53024239, 0) + (486383.881873761,4763206.43805258, 0) + (486457.18447716,4763227.9078102, 0) + (486521.59375,4763008, 0) + +Shape:15 (Polygon) nVertices=9, nParts=1 + Bounds:(486360.416053039,4762774.30991957, 0) + to (486800.882010234,4763656.20814147, 0) + (486489.59375,4763600, 0) Ring + (486541.312866292,4763656.20814147, 0) + (486762.056519499,4763453.09403071, 0) + (486800.882010234,4763266.65884894, 0) + (486420.882916339,4762774.30991957, 0) + (486360.416053039,4762820.97875928, 0) + (486718.9375,4763285.5, 0) + (486692.28125,4763413.5, 0) + (486489.59375,4763600, 0) + +Shape:16 (Polygon) nVertices=5, nParts=1 + Bounds:(486682.872244167,4762181, 0) + to (487292.496159935,4762415.4629729, 0) + (486702.96875,4762181, 0) Ring + (486682.872244167,4762254.69092624, 0) + (487272.399654102,4762415.4629729, 0) + (487292.496159935,4762341.77204666, 0) + (486702.96875,4762181, 0) + +Shape:17 (Polygon) nVertices=5, nParts=1 + Bounds:(487480.713174766,4762283.32041063, 0) + to (487732.40625,4762812.55164729, 0) + (487732.40625,4762309, 0) Ring + (487660.470300388,4762283.32041063, 0) + (487480.713174766,4762786.87205791, 0) + (487552.649124378,4762812.55164729, 0) + (487732.40625,4762309, 0) + +Shape:18 (Polygon) nVertices=5, nParts=1 + Bounds:(487069.756603548,4763685.70922948, 0) + to (487220.34375,4763927.14450465, 0) + (487220.34375,4763712, 0) Ring + (487148.628915116,4763685.70922948, 0) + (487069.756603548,4763900.85373413, 0) + (487141.471438432,4763927.14450465, 0) + (487220.34375,4763712, 0) + +Shape:19 (Polygon) nVertices=9, nParts=1 + Bounds:(487854.71875,4758279, 0) + to (488518.084513461,4758475.00313544, 0) + (487854.71875,4758404, 0) Ring + (487882.875044414,4758475.00313544, 0) + (488183.362239097,4758355.84493392, 0) + (488341.272726333,4758360.83994574, 0) + (488515.419883674,4758366.91886277, 0) + (488518.084513461,4758290.58327536, 0) + (488343.8125,4758284.5, 0) + (488169.9375,4758279, 0) + (487854.71875,4758404, 0) + +Shape:20 (Polygon) nVertices=5, nParts=1 + Bounds:(486300.557314823,4758366, 0) + to (486613.244508877,4758546.26155543, 0) + (486327.78125,4758366, 0) Ring + (486300.557314823,4758437.36581472, 0) + (486586.0205737,4758546.26155543, 0) + (486613.244508877,4758474.89574071, 0) + (486327.78125,4758366, 0) + +Shape:21 (Polygon) nVertices=5, nParts=1 + Bounds:(486709.618088707,4758518, 0) + to (486949.999220564,4758681.14547407, 0) + (486740.75,4758518, 0) Ring + (486709.618088707,4758587.74974019, 0) + (486918.86730927,4758681.14547407, 0) + (486949.999220564,4758611.39573388, 0) + (486740.75,4758518, 0) + +Shape:22 (Polygon) nVertices=5, nParts=1 + Bounds:(487325.398146116,4757807.03413294, 0) + to (487555.84375,4758263.40240911, 0) + (487555.84375,4757833.5, 0) Ring + (487484.193348481,4757807.03413294, 0) + (487325.398146116,4758236.93654205, 0) + (487397.048547634,4758263.40240911, 0) + (487555.84375,4757833.5, 0) + +Shape:23 (Polygon) nVertices=5, nParts=1 + Bounds:(487255.255955622,4758215.57334913, 0) + to (487387.40625,4758456.61102531, 0) + (487387.40625,4758235, 0) Ring + (487313.535908231,4758215.57334913, 0) + (487255.255955622,4758437.18437444, 0) + (487329.126297391,4758456.61102531, 0) + (487387.40625,4758235, 0) + +Shape:24 (Polygon) nVertices=5, nParts=1 + Bounds:(487248.713963615,4758360.5, 0) + to (487559.686647128,4758550.76111982, 0) + (487278.71875,4758360.5, 0) Ring + (487248.713963615,4758430.74197428, 0) + (487529.681860742,4758550.76111982, 0) + (487559.686647128,4758480.51914554, 0) + (487278.71875,4758360.5, 0) + +Shape:25 (Polygon) nVertices=5, nParts=1 + Bounds:(487573.993669832,4758496.5, 0) + to (487815.501933589,4758644.60296837, 0) + (487599.34375,4758496.5, 0) Ring + (487573.993669832,4758568.55272786, 0) + (487790.151853421,4758644.60296837, 0) + (487815.501933589,4758572.55024051, 0) + (487599.34375,4758496.5, 0) +------------------------------------------------------------------------- +Test 2: dump brklinz.shp +------------------------------------------------------------------------- +Shapefile Type: ArcZ # of Shapes: 122 + +File Bounds: (6294338.26,1978444.01,0,0) + to (6296321.86,1979694.45,0,0) + +Shape:0 (ArcZ) nVertices=92, nParts=1 + Bounds:(6294700.21,1978579.39, 818.640015) + to (6295395.93,1979050.33, 917.859985) + (6295372.75,1978755.83, 823.059998) Ring + (6295366.17,1978739.19, 826.580017) + (6295360.4,1978718.54, 829.200012) + (6295352.62,1978697, 832.219971) + (6295345.96,1978677.04, 834.640015) + (6295339.69,1978656.81, 838.51001) + (6295335.04,1978637.6, 840.940002) + (6295331.08,1978621.45, 844.47998) + (6295324.35,1978607.94, 847.039978) + (6295313.37,1978598.45, 850.380005) + (6295296.78,1978594.95, 853.27002) + (6295273.8,1978594.99, 858.059998) + (6295251.75,1978595.38, 861.530029) + (6295232.34,1978598.4, 864.219971) + (6295206.74,1978606.39, 866.380005) + (6295180.61,1978616.97, 868.150024) + (6295156.35,1978630.54, 870.650024) + (6295132.27,1978645.21, 872.02002) + (6295111.07,1978659.74, 875.169983) + (6295090.03,1978674.92, 878.840027) + (6295071.06,1978689.34, 882.059998) + (6295051.9,1978705.08, 886.97998) + (6295036.46,1978719.26, 889.659973) + (6295023.62,1978732.91, 893.530029) + (6295010.45,1978750.38, 895.23999) + (6294999.91,1978767.85, 897.469971) + (6294989.81,1978783.86, 900.289978) + (6294975.04,1978795.57, 902.450012) + (6294956.3,1978806.83, 906.320007) + (6294937.26,1978814.62, 909.210022) + (6294919.24,1978821.96, 912.880005) + (6294897.04,1978832.21, 915.039978) + (6294878.07,1978844.07, 916.48999) + (6294865.01,1978855.82, 917.340027) + (6294859.56,1978870.15, 916.809998) + (6294861.52,1978882.92, 916.619995) + (6294874.64,1978906.22, 917.859985) + (6294886.98,1978926.88, 917.599976) + (6294889.63,1978953.27, 917.539978) + (6294888.52,1978978.28, 916.880005) + (6294880.35,1978998.39, 915.960022) + (6294866.54,1979018.92, 915.570007) + (6294843.27,1979039.14, 915.570007) + (6294812.25,1979049.04, 915.960022) + (6294777.64,1979050.33, 916.75) + (6294752.06,1979040.52, 916.679993) + (6294730.99,1979028.85, 916.619995) + (6294716.69,1979008.42, 916.619995) + (6294706.05,1978987.49, 916.950012) + (6294700.21,1978965.39, 916.950012) + (6294700.52,1978937.67, 917.01001) + (6294712.06,1978911.34, 916.950012) + (6294724.82,1978893.56, 916.619995) + (6294741.63,1978878.01, 916.359985) + (6294759.36,1978865.09, 916.359985) + (6294777.65,1978855.37, 916.219971) + (6294807.57,1978846.97, 916.359985) + (6294837.64,1978836.59, 916.549988) + (6294858.65,1978831.39, 916.289978) + (6294878.86,1978825.84, 915.369995) + (6294897.63,1978817.86, 913.669983) + (6294914.55,1978809.52, 910.780029) + (6294932.38,1978798.58, 907.169983) + (6294947.36,1978788.37, 904.419983) + (6294960.5,1978778.12, 901.859985) + (6294974.78,1978761.9, 898.780029) + (6294988.51,1978747.61, 895.700012) + (6295005.23,1978730.22, 892.809998) + (6295023.56,1978713.47, 889.340027) + (6295043.31,1978696.32, 885.070007) + (6295061.83,1978680.81, 881.469971) + (6295080.97,1978664.55, 877.789978) + (6295104.57,1978648.19, 874.580017) + (6295126.31,1978633.89, 872.090027) + (6295149.84,1978618.72, 869.599976) + (6295173.84,1978605.03, 867.369995) + (6295198.11,1978594.15, 866.119995) + (6295222.83,1978586.99, 865.200012) + (6295243.03,1978583.81, 863.5) + (6295268.11,1978581.29, 860.349976) + (6295291.53,1978579.39, 856.47998) + (6295313.2,1978582.04, 852.419983) + (6295329.17,1978591.41, 848.809998) + (6295339.78,1978603.88, 845.070007) + (6295345.64,1978621.11, 842.119995) + (6295351.07,1978642.97, 838.320007) + (6295357.25,1978666.56, 834.77002) + (6295367.29,1978691, 831.890015) + (6295376.03,1978718.47, 828.090027) + (6295383.93,1978744.86, 824.349976) + (6295389.99,1978768.72, 821.330017) + (6295395.93,1978790.09, 818.640015) + +Shape:1 (ArcZ) nVertices=9, nParts=1 + Bounds:(6295218.47,1978444.01, 864.549988) + to (6295330.76,1978581.88, 882.450012) + (6295330.76,1978444.01, 882.450012) Ring + (6295306.05,1978461.19, 880.940002) + (6295280.21,1978482.71, 878.52002) + (6295258.18,1978504.05, 875.890015) + (6295239.91,1978524.67, 871.890015) + (6295225.65,1978546.54, 869.530029) + (6295218.47,1978565.55, 866.969971) + (6295223.96,1978575.51, 865.27002) + (6295230.58,1978581.88, 864.549988) + +Shape:2 (ArcZ) nVertices=10, nParts=1 + Bounds:(6295199.22,1978444.01, 866.320007) + to (6295309.04,1978588.8, 882.080017) + (6295200.07,1978588.8, 866.320007) Ring + (6295199.22,1978571.84, 867.23999) + (6295200.77,1978555.74, 868.880005) + (6295207.89,1978538.04, 869.859985) + (6295223.02,1978520.53, 870.840027) + (6295239.45,1978502.44, 874.059998) + (6295258.05,1978483.44, 876.47998) + (6295268.99,1978473.76, 879.169983) + (6295285.71,1978461.56, 880.549988) + (6295309.04,1978444.01, 882.080017) + +Shape:3 (ArcZ) nVertices=5, nParts=1 + Bounds:(6294340.89,1979449.28, 1031.780029) + to (6294394.08,1979522.03, 1039.780029) + (6294394.08,1979449.28, 1039.780029) Ring + (6294378.8,1979469.23, 1038.72998) + (6294364.98,1979486.74, 1037.280029) + (6294350.8,1979504.98, 1035.119995) + (6294340.89,1979522.03, 1031.780029) + +Shape:4 (ArcZ) nVertices=6, nParts=1 + Bounds:(6294344.38,1979583.45, 1008.039978) + to (6294354.67,1979678.07, 1023.450012) + (6294344.38,1979583.45, 1023.450012) Ring + (6294348.05,1979601.58, 1019.179993) + (6294349.57,1979621.2, 1016.5) + (6294351.99,1979637.89, 1012.950012) + (6294353.09,1979657.14, 1011.51001) + (6294354.67,1979678.07, 1008.039978) + +Shape:5 (ArcZ) nVertices=3, nParts=1 + Bounds:(6294338.26,1979628.6, 1008.630005) + to (6294341.08,1979674.1, 1015.710022) + (6294341.08,1979674.1, 1008.630005) Ring + (6294339.46,1979649.88, 1011.710022) + (6294338.26,1979628.6, 1015.710022) + +Shape:6 (ArcZ) nVertices=3, nParts=1 + Bounds:(6294350.16,1979437.98, 1038.599976) + to (6294379.98,1979476.72, 1040.099976) + (6294350.16,1979476.72, 1038.599976) Ring + (6294368.1,1979454.86, 1040.099976) + (6294379.98,1979437.98, 1039.319946) + +Shape:7 (ArcZ) nVertices=39, nParts=1 + Bounds:(6295371.53,1978758.16, 754.109985) + to (6295534.56,1979677.75, 823.299988) + (6295534.56,1979677.75, 779.950012) Ring + (6295534.38,1979648.15, 778.570007) + (6295534.48,1979605.99, 775.159973) + (6295533.97,1979577.58, 772.210022) + (6295532.31,1979547.26, 768.409973) + (6295532.97,1979521.29, 763.820007) + (6295532.39,1979496.89, 759.099976) + (6295532.94,1979474.01, 755.48999) + (6295533.68,1979452.18, 754.109985) + (6295533.85,1979434.64, 754.109985) + (6295532.17,1979409.18, 755.75) + (6295531.58,1979384.45, 758.700012) + (6295531.59,1979356.09, 760.280029) + (6295530.19,1979325.69, 761.130005) + (6295530.02,1979291.09, 761.659973) + (6295529.21,1979259.42, 762.700012) + (6295526.25,1979221.61, 762.77002) + (6295524.26,1979187.5, 763.75) + (6295522.64,1979155.35, 764.609985) + (6295521.54,1979123.23, 765.330017) + (6295518.46,1979096, 765.919983) + (6295511.67,1979081.11, 767.159973) + (6295500.7,1979064.06, 768.409973) + (6295489.33,1979049.6, 770.109985) + (6295475.5,1979033.1, 773.070007) + (6295462.53,1979018.19, 775.159973) + (6295447.76,1979001.4, 779.48999) + (6295433.38,1978984.53, 782.900024) + (6295419.04,1978965.82, 785.919983) + (6295409.02,1978946.82, 790.580017) + (6295399.86,1978923.91, 795.099976) + (6295391.01,1978894.41, 800.940002) + (6295387.44,1978875.55, 805.530029) + (6295382.03,1978849.03, 809.789978) + (6295382.19,1978828.93, 813.330017) + (6295383.57,1978809.29, 817.400024) + (6295380.88,1978789.86, 819.690002) + (6295375.63,1978771.81, 822.580017) + (6295371.53,1978758.16, 823.299988) + +Shape:8 (ArcZ) nVertices=35, nParts=1 + Bounds:(6295396.48,1978794.78, 753.97998) + to (6295549.01,1979670.06, 818.580017) + (6295396.62,1978794.78, 818.580017) Ring + (6295397.33,1978816.67, 815.76001) + (6295396.48,1978836.15, 812.219971) + (6295397.67,1978857.11, 807.950012) + (6295401.18,1978874.72, 804.609985) + (6295406.26,1978897.32, 799.950012) + (6295413.58,1978919.93, 794.77002) + (6295421.33,1978938.19, 790.309998) + (6295431.45,1978956.59, 786.51001) + (6295444.95,1978974.36, 782.380005) + (6295461.42,1978993.62, 777.659973) + (6295479.76,1979013.51, 773.26001) + (6295494.63,1979032.33, 771.099976) + (6295510.99,1979052.12, 767.690002) + (6295524.17,1979071.09, 766.840027) + (6295532.18,1979091.89, 765.330017) + (6295536.53,1979120.83, 764.799988) + (6295537.48,1979150.2, 764.080017) + (6295539.47,1979189.49, 763.429993) + (6295541.67,1979230.49, 762.640015) + (6295541.76,1979271.33, 761.789978) + (6295543.65,1979306.3, 761.460022) + (6295544.47,1979335.54, 760.469971) + (6295544.96,1979363.49, 759.22998) + (6295545.62,1979392.02, 757.130005) + (6295546.34,1979419.43, 754.900024) + (6295547.12,1979439.94, 753.97998) + (6295546.51,1979459.15, 754.380005) + (6295545.46,1979482.71, 757.659973) + (6295545.53,1979507.33, 761.130005) + (6295545.61,1979532.47, 765.590027) + (6295546.49,1979565.52, 770.440002) + (6295547.96,1979597.1, 775.030029) + (6295548.99,1979628.04, 777.26001) + (6295549.01,1979670.06, 780.150024) + +Shape:9 (ArcZ) nVertices=45, nParts=1 + Bounds:(6295694.04,1978444.01, 696.950012) + to (6296208.79,1979687.08, 787.429993) + (6295698.4,1979687.08, 787.429993) Ring + (6295694.04,1979670.95, 786.309998) + (6295696.41,1979650.28, 785.130005) + (6295700.08,1979634.53, 784.799988) + (6295704.08,1979620.01, 784.150024) + (6295708.42,1979601.93, 782.440002) + (6295711.23,1979584.79, 781.98999) + (6295712.06,1979564.78, 780.799988) + (6295710.55,1979537.48, 779.690002) + (6295711.29,1979508.02, 777.590027) + (6295710.01,1979477.42, 776.080017) + (6295709.3,1979442.53, 773.590027) + (6295709.16,1979413.64, 772.210022) + (6295707.09,1979372.57, 769.460022) + (6295708.14,1979336.21, 767.48999) + (6295709.71,1979297.13, 764.669983) + (6295710.96,1979272.31, 763.289978) + (6295714.64,1979241.2, 761.200012) + (6295719.05,1979211.56, 759.820007) + (6295724.28,1979179.84, 758.309998) + (6295729.46,1979152.46, 756.73999) + (6295735.77,1979126.53, 754.440002) + (6295744.97,1979095.4, 752.869995) + (6295755.82,1979063.14, 750.309998) + (6295767.59,1979028.33, 747.619995) + (6295782.24,1978993.45, 744.210022) + (6295801.58,1978952.42, 741.26001) + (6295825.73,1978905.37, 736.869995) + (6295842.33,1978877.81, 734.700012) + (6295859.11,1978851.15, 731.549988) + (6295875.62,1978827.01, 729.52002) + (6295899.08,1978794.83, 727.419983) + (6295923.64,1978763.72, 724.340027) + (6295949.34,1978734.18, 721.390015) + (6295975.02,1978704.32, 718.570007) + (6296000.32,1978677.44, 716.01001) + (6296026.94,1978648.12, 713.450012) + (6296053.5,1978617.5, 709.780029) + (6296078.62,1978589.63, 706.900024) + (6296098.88,1978566.88, 704.469971) + (6296126.05,1978537.93, 702.369995) + (6296150.67,1978507.99, 700.140015) + (6296179.28,1978476.28, 698.700012) + (6296208.03,1978444.88, 696.98999) + (6296208.79,1978444.01, 696.950012) + +Shape:10 (ArcZ) nVertices=10, nParts=1 + Bounds:(6296270.06,1979014.97, 712.539978) + to (6296315.99,1979152.31, 725.130005) + (6296306.11,1979152.31, 725.130005) Ring + (6296288.27,1979139.69, 723.419983) + (6296276.63,1979122.41, 721.97998) + (6296270.06,1979101.47, 719.950012) + (6296270.39,1979084.58, 719.359985) + (6296275.11,1979068.97, 717.26001) + (6296284.28,1979052.82, 716.409973) + (6296294.68,1979040.41, 715.48999) + (6296305.72,1979027.37, 713.590027) + (6296315.99,1979014.97, 712.539978) + +Shape:11 (ArcZ) nVertices=18, nParts=1 + Bounds:(6296044.93,1978451.12, 690.109985) + to (6296312.92,1978679.19, 713.719971) + (6296312.92,1978493.56, 690.109985) Ring + (6296301.16,1978479.05, 690.900024) + (6296287.84,1978464.95, 692.400024) + (6296276.43,1978454.89, 693.580017) + (6296262.58,1978451.12, 694.440002) + (6296249.65,1978452.5, 694.900024) + (6296237.11,1978461.67, 696.080017) + (6296223.6,1978477.65, 697.780029) + (6296209.32,1978493.93, 698.700012) + (6296193.64,1978511.14, 699.159973) + (6296176.98,1978529.71, 700.599976) + (6296157.7,1978550.97, 701.97998) + (6296136.72,1978574.95, 703.48999) + (6296121.4,1978591.55, 705.390015) + (6296102.29,1978613.59, 707.359985) + (6296084.44,1978634.58, 709.130005) + (6296065.89,1978654.76, 711.289978) + (6296044.93,1978679.19, 713.719971) + +Shape:12 (ArcZ) nVertices=71, nParts=1 + Bounds:(6295741.07,1978679.19, 713.719971) + to (6296321.86,1979680.37, 813.789978) + (6296044.93,1978679.19, 713.719971) Ring + (6296025.66,1978700.78, 716.599976) + (6296006.48,1978721.51, 718.369995) + (6295987.07,1978742.72, 721) + (6295970.41,1978761.42, 722.440002) + (6295953.49,1978780.07, 724.280029) + (6295932.47,1978805.82, 726.440002) + (6295913.49,1978830.55, 728.669983) + (6295896.49,1978855.31, 731.159973) + (6295881.22,1978878.07, 733.390015) + (6295867.71,1978899.18, 734.700012) + (6295853.95,1978923.31, 737) + (6295839.81,1978950.03, 739.559998) + (6295825.27,1978979.39, 742.109985) + (6295809.1,1979015.6, 745.460022) + (6295796.94,1979045.17, 748.02002) + (6295785.77,1979078.9, 750.969971) + (6295777.08,1979104.55, 752.539978) + (6295768.95,1979133.46, 754.840027) + (6295762.17,1979163.09, 756.869995) + (6295755.64,1979194.93, 758.900024) + (6295750.61,1979225.39, 760.47998) + (6295746.3,1979259.75, 762.640015) + (6295743.32,1979291.75, 764.539978) + (6295741.65,1979321.06, 766.640015) + (6295741.07,1979353.79, 768.539978) + (6295741.17,1979384.45, 770.710022) + (6295742.01,1979419.21, 772.47998) + (6295743.01,1979454.74, 774.440002) + (6295743.91,1979493.31, 776.940002) + (6295744.99,1979530.29, 778.969971) + (6295745.9,1979569.12, 781.460022) + (6295745.94,1979603.91, 783.299988) + (6295747.6,1979636.66, 785.849976) + (6295751.85,1979653.26, 787.48999) + (6295760.49,1979665.82, 788.869995) + (6295773.51,1979673.83, 790.179993) + (6295788.46,1979676.1, 791.950012) + (6295823.99,1979674.96, 793.460022) + (6295871.62,1979674.07, 796.940002) + (6295918.98,1979673.12, 798.969971) + (6295971.2,1979672.13, 802.25) + (6296019.37,1979671.6, 803.950012) + (6296054.35,1979670.03, 805.919983) + (6296074.58,1979662.25, 806.580017) + (6296085.66,1979647.7, 806.969971) + (6296089.37,1979635.3, 807.690002) + (6296086.38,1979620.16, 808.609985) + (6296080.06,1979601.69, 810.320007) + (6296074.44,1979583.99, 811.169983) + (6296070.25,1979568.77, 812.219971) + (6296072.47,1979552.83, 812.940002) + (6296083.22,1979536.79, 813.460022) + (6296102.65,1979531.41, 813.789978) + (6296121.29,1979536.45, 813.72998) + (6296133.19,1979548.52, 813.200012) + (6296138.01,1979563.38, 812.609985) + (6296135.46,1979580.58, 811.369995) + (6296129.95,1979598.85, 810.179993) + (6296124.49,1979618.17, 809.460022) + (6296122.1,1979635.88, 808.349976) + (6296126.82,1979651.41, 807.359985) + (6296136.39,1979661.36, 806.51001) + (6296149.63,1979666.08, 806.049988) + (6296163.38,1979667.88, 805.72998) + (6296186.08,1979667.46, 805.140015) + (6296215.19,1979666.58, 805) + (6296247.69,1979667.83, 803.5) + (6296273.58,1979670.85, 802.320007) + (6296295.41,1979674.09, 800.679993) + (6296321.86,1979680.37, 799.22998) + +Shape:13 (ArcZ) nVertices=6, nParts=1 + Bounds:(6295372.65,1979608.7, 773.190002) + to (6295470.33,1979679.55, 780.150024) + (6295372.65,1979679.55, 780.150024) Ring + (6295387.14,1979664.77, 777.849976) + (6295406.65,1979645.4, 776.210022) + (6295422.76,1979631.58, 775.289978) + (6295442.8,1979612.19, 773.650024) + (6295470.33,1979608.7, 773.190002) + +Shape:14 (ArcZ) nVertices=7, nParts=1 + Bounds:(6295415.71,1979491.54, 772.080017) + to (6295453.55,1979590.19, 773.849976) + (6295453.55,1979590.11, 772.090027) Ring + (6295453.11,1979590.19, 772.080017) + (6295439.43,1979579.26, 772.73999) + (6295430.87,1979552.77, 772.929993) + (6295420.94,1979527.86, 773.190002) + (6295415.71,1979510.07, 773.789978) + (6295421.08,1979491.54, 773.849976) + +Shape:15 (ArcZ) nVertices=9, nParts=1 + Bounds:(6295351.24,1979521.41, 773) + to (6295430.33,1979692.52, 782.109985) + (6295395.27,1979521.41, 774.51001) Ring + (6295415.88,1979549.79, 773.849976) + (6295426.03,1979579.22, 773) + (6295430.33,1979604.61, 773.059998) + (6295418.61,1979622.14, 774.309998) + (6295398.97,1979639.02, 776.340027) + (6295382.22,1979655.69, 778.309998) + (6295365.04,1979674.42, 780.150024) + (6295351.24,1979692.52, 782.109985) + +Shape:16 (ArcZ) nVertices=28, nParts=1 + Bounds:(6294520.27,1979256.99, 932.359985) + to (6294743.29,1979675.03, 1016.690002) + (6294531.94,1979675.03, 932.359985) Ring + (6294523.87,1979650.55, 933.539978) + (6294520.27,1979620.92, 936.75) + (6294525.03,1979592.84, 940.289978) + (6294533.88,1979567.77, 942.97998) + (6294546.04,1979543.32, 949.280029) + (6294564.14,1979524.75, 951.640015) + (6294585.59,1979515.13, 956.359985) + (6294611.81,1979503.89, 959.380005) + (6294635.13,1979494.9, 966.200012) + (6294662.59,1979487.47, 969.409973) + (6294687.54,1979482.07, 971.77002) + (6294710.18,1979470.16, 976.75) + (6294732.15,1979450.14, 978.530029) + (6294743.29,1979431.46, 981.940002) + (6294738.7,1979402.93, 984.690002) + (6294731.29,1979380.98, 986.789978) + (6294717.67,1979358.29, 988.299988) + (6294706.34,1979342.05, 991.380005) + (6294697.14,1979315.92, 996.76001) + (6294696.36,1979292.58, 1000.169983) + (6294691.93,1979275.01, 1002.400024) + (6294681.97,1979259.95, 1004.76001) + (6294665.15,1979256.99, 1006.530029) + (6294638.58,1979258.93, 1010.330017) + (6294617.35,1979259.73, 1012.76001) + (6294592,1979262.26, 1015.320007) + (6294572.55,1979262, 1016.690002) + +Shape:17 (ArcZ) nVertices=43, nParts=1 + Bounds:(6294466.1,1979253.61, 930.97998) + to (6294720.52,1979678.41, 1018.460022) + (6294572.55,1979262, 1016.690002) Ring + (6294549.64,1979260.72, 1017.47998) + (6294522.44,1979260.52, 1017.47998) + (6294472.06,1979253.61, 1016.630005) + (6294469.53,1979302.33, 1017.150024) + (6294466.1,1979341.24, 1016.630005) + (6294469.48,1979374.29, 1016.5) + (6294506.64,1979382.01, 1016.960022) + (6294538.32,1979377.39, 1016.890015) + (6294581.4,1979377.51, 1017.73999) + (6294603.05,1979366.77, 1017.73999) + (6294597.82,1979338.47, 1018) + (6294587.06,1979307.49, 1018.460022) + (6294579.28,1979283.46, 1017.869995) + (6294593.32,1979278.02, 1016.359985) + (6294613.16,1979275.64, 1013.150024) + (6294634.39,1979274.63, 1009.539978) + (6294650.59,1979272.96, 1006.400024) + (6294666.97,1979274.83, 1003.77002) + (6294675.71,1979289.29, 1001.809998) + (6294681.31,1979309.23, 998.130005) + (6294686.19,1979327.9, 995.640015) + (6294692.28,1979346.96, 991.640015) + (6294699.73,1979367.2, 989.080017) + (6294709.53,1979384.31, 985.73999) + (6294716.16,1979401.37, 983.25) + (6294720.52,1979414.81, 980.099976) + (6294718.98,1979441.48, 978) +------------------------------------------------------------------------- +Test 3: dump polygon.shp +------------------------------------------------------------------------- +Shapefile Type: Polygon # of Shapes: 474 + +File Bounds: (471127.1875,4751545,0,0) + to (489292.3125,4765610.5,0,0) + +Shape:0 (Polygon) nVertices=20, nParts=1 + Bounds:(479647,4764856.5, 0) + to (480389.6875,4765610.5, 0) + (479819.84375,4765180.5, 0) Ring + (479690.1875,4765259.5, 0) + (479647,4765369.5, 0) + (479730.375,4765400.5, 0) + (480039.03125,4765539.5, 0) + (480035.34375,4765558.5, 0) + (480159.78125,4765610.5, 0) + (480202.28125,4765482, 0) + (480365,4765015.5, 0) + (480389.6875,4764950, 0) + (480133.96875,4764856.5, 0) + (480080.28125,4764979.5, 0) + (480082.96875,4765049.5, 0) + (480088.8125,4765139.5, 0) + (480059.90625,4765239.5, 0) + (480019.71875,4765319.5, 0) + (479980.21875,4765409.5, 0) + (479909.875,4765370, 0) + (479859.875,4765270, 0) + (479819.84375,4765180.5, 0) + +Shape:1 (Polygon) nVertices=20, nParts=1 + Bounds:(479014.9375,4764879, 0) + to (480039.03125,4765558.5, 0) + (480035.34375,4765558.5, 0) Ring + (480039.03125,4765539.5, 0) + (479730.375,4765400.5, 0) + (479647,4765369.5, 0) + (479690.1875,4765259.5, 0) + (479819.84375,4765180.5, 0) + (479779.84375,4765109.5, 0) + (479681.78125,4764940, 0) + (479468,4764942.5, 0) + (479411.4375,4764940.5, 0) + (479353,4764939.5, 0) + (479208.65625,4764882.5, 0) + (479196.8125,4764879, 0) + (479123.28125,4765015, 0) + (479046.53125,4765117, 0) + (479029.71875,4765110.5, 0) + (479014.9375,4765147.5, 0) + (479149.9375,4765200.5, 0) + (479639.625,4765399.5, 0) + (480035.34375,4765558.5, 0) + +Shape:2 (Polygon) nVertices=54, nParts=1 + Bounds:(480882.6875,4763472.5, 0) + to (484519.96875,4765410, 0) + (481575,4764999.5, 0) Ring + (481542.3125,4765097.5, 0) + (481443.6875,4765387.5, 0) + (481499.65625,4765410, 0) + (481631,4765031, 0) + (481693.3125,4764853, 0) + (481759.28125,4764889.5, 0) + (481860.03125,4764920, 0) + (482002.96875,4764910, 0) + (482180.09375,4764909.5, 0) + (482359.8125,4764960, 0) + (482510.5,4765065, 0) + (482619.90625,4765080.5, 0) + (482809.5,4765090, 0) + (483189.8125,4765084.5, 0) + (483330.3125,4765105.5, 0) + (483591.09375,4765260, 0) + (483700.5,4765280, 0) + (483799.9375,4765270, 0) + (484039.84375,4765280.5, 0) + (484115.6875,4765300, 0) + (484120.625,4765280, 0) + (484131.125,4765260, 0) + (484167.84375,4765271, 0) + (484277.875,4765015.5, 0) + (484455.0625,4764500, 0) + (484519.96875,4764345, 0) + (484482.03125,4764332, 0) + (483904.71875,4764113.5, 0) + (483334.84375,4763905, 0) + (482941.03125,4763760.5, 0) + (482590.71875,4763624.5, 0) + (482185.65625,4763472.5, 0) + (482009.84375,4763980.5, 0) + (481960.4375,4764099.5, 0) + (481767.5,4764014.5, 0) + (480955.5,4763700, 0) + (480882.6875,4763670, 0) + (481039.9375,4763889.5, 0) + (481130.3125,4763979.5, 0) + (481143.4375,4764010.5, 0) + (481199.84375,4764180, 0) + (481141.625,4764480.5, 0) + (481140.46875,4764510.5, 0) + (481159.9375,4764580, 0) + (481185.5,4764607, 0) + (481199.21875,4764623.5, 0) + (481209.8125,4764633.5, 0) + (481235.3125,4764650, 0) + (481635.96875,4764795.5, 0) + (481645.3125,4764797.5, 0) + (481629.84375,4764829.5, 0) + (481602.125,4764915.5, 0) + (481575,4764999.5, 0) + +Shape:3 (Polygon) nVertices=29, nParts=1 + Bounds:(479117.8125,4764505, 0) + to (480088.8125,4765409.5, 0) + (479819.84375,4765180.5, 0) Ring + (479859.875,4765270, 0) + (479909.875,4765370, 0) + (479980.21875,4765409.5, 0) + (480019.71875,4765319.5, 0) + (480059.90625,4765239.5, 0) + (480088.8125,4765139.5, 0) + (480082.96875,4765049.5, 0) + (480000.28125,4765043, 0) + (479934.96875,4765020, 0) + (479895.125,4765000, 0) + (479734.375,4764865, 0) + (479680.28125,4764852, 0) + (479644.78125,4764827.5, 0) + (479637.875,4764803, 0) + (479617.21875,4764760, 0) + (479587.28125,4764718, 0) + (479548.03125,4764693.5, 0) + (479504.90625,4764609.5, 0) + (479239.8125,4764505, 0) + (479117.8125,4764847, 0) + (479196.8125,4764879, 0) + (479208.65625,4764882.5, 0) + (479353,4764939.5, 0) + (479411.4375,4764940.5, 0) + (479468,4764942.5, 0) + (479681.78125,4764940, 0) + (479779.84375,4765109.5, 0) + (479819.84375,4765180.5, 0) + +Shape:4 (Polygon) nVertices=22, nParts=1 + Bounds:(480537.15625,4764738, 0) + to (481575,4765387.5, 0) + (480537.15625,4765014, 0) Ring + (481090.28125,4765242, 0) + (481443.6875,4765387.5, 0) + (481542.3125,4765097.5, 0) + (481575,4764999.5, 0) + (481538.90625,4764982.5, 0) + (481509.65625,4764967, 0) + (481457.375,4764937, 0) + (481465.90625,4764872.5, 0) + (481291.09375,4764810, 0) + (481281.3125,4764876.5, 0) + (481136.84375,4764994.5, 0) + (481088.1875,4764936, 0) + (480984.25,4764875, 0) + (480930.71875,4764852, 0) + (480922.03125,4764850.5, 0) + (480824.96875,4764820, 0) + (480761.46875,4764778, 0) + (480701.0625,4764738, 0) + (480605,4764835, 0) + (480567.96875,4764918, 0) + (480537.15625,4765014, 0) + +Shape:5 (Polygon) nVertices=60, nParts=1 + Bounds:(484482.03125,4760649.5, 0) + to (488408.28125,4765179, 0) + (484482.03125,4764332, 0) Ring + (484519.96875,4764345, 0) + (484817.9375,4764465.5, 0) + (485615.40625,4764770, 0) + (486269.6875,4765010, 0) + (486320.0625,4765024, 0) + (486340.59375,4765040, 0) + (486369.84375,4765050, 0) + (486719.96875,4765170, 0) + (486738.625,4765179, 0) + (486987.78125,4764497.5, 0) + (487019.875,4764384.5, 0) + (487077.375,4764226.5, 0) + (487120.03125,4764100, 0) + (487160.25,4763998, 0) + (487186.8125,4763922.5, 0) + (487408.25,4763315.5, 0) + (487608.0625,4762780, 0) + (487659.40625,4762650, 0) + (487719.40625,4762480, 0) + (487741.0625,4762419.5, 0) + (487747.875,4762395.5, 0) + (487880.875,4762032, 0) + (487899.4375,4761975.5, 0) + (488082,4761480, 0) + (488408.28125,4760649.5, 0) + (488050.375,4760824.5, 0) + (487690.90625,4760802, 0) + (487640.0625,4760879.5, 0) + (487594.9375,4761023, 0) + (487341.375,4761776.5, 0) + (487037.125,4761672.5, 0) + (487005.375,4761662.5, 0) + (486788.21875,4761579.5, 0) + (486822.25,4761492, 0) + (486838.3125,4761437.5, 0) + (486841.3125,4761381, 0) + (486850.5625,4761340, 0) + (486810.75,4761335.5, 0) + (486775.4375,4761400, 0) + (486710.09375,4761368, 0) + (486606.1875,4761330, 0) + (486548.65625,4761488, 0) + (486380.65625,4761428.5, 0) + (486152.90625,4761348, 0) + (485900.25,4761250.5, 0) + (485666.875,4761156.5, 0) + (485585.875,4761374.5, 0) + (485564.875,4761444.5, 0) + (485496.21875,4761614.5, 0) + (485438.6875,4761760.5, 0) + (485264.96875,4762222.5, 0) + (485192.6875,4762439, 0) + (485175.40625,4762493.5, 0) + (484947.34375,4763100.5, 0) + (484888,4763260.5, 0) + (484785.46875,4763560.5, 0) + (484760.21875,4763659.5, 0) + (484696.96875,4763734, 0) + (484482.03125,4764332, 0) + +Shape:6 (Polygon) nVertices=26, nParts=1 + Bounds:(478315.53125,4764174, 0) + to (479305.875,4765147.5, 0) + (479014.9375,4765147.5, 0) Ring + (479029.71875,4765110.5, 0) + (479117.8125,4764847, 0) + (479239.8125,4764505, 0) + (479305.875,4764361, 0) + (479256.03125,4764314.5, 0) + (479220.90625,4764212.5, 0) + (479114.5,4764174, 0) + (479018.28125,4764418.5, 0) + (478896.9375,4764371, 0) + (478748.8125,4764308.5, 0) + (478503.03125,4764218, 0) + (478461.75,4764337.5, 0) + (478443.9375,4764400.5, 0) + (478447.8125,4764454, 0) + (478448.6875,4764531.5, 0) + (478502.1875,4764541.5, 0) + (478683,4764730.5, 0) + (478621.03125,4764788.5, 0) + (478597.34375,4764766.5, 0) + (478532.5,4764695.5, 0) + (478460.125,4764615, 0) + (478408.0625,4764654, 0) + (478315.53125,4764876, 0) + (478889.25,4765100, 0) + (479014.9375,4765147.5, 0) + +Shape:7 (Polygon) nVertices=6, nParts=1 + Bounds:(479029.71875,4764847, 0) + to (479196.8125,4765117, 0) + (479029.71875,4765110.5, 0) Ring + (479046.53125,4765117, 0) + (479123.28125,4765015, 0) + (479196.8125,4764879, 0) + (479117.8125,4764847, 0) + (479029.71875,4765110.5, 0) + +Shape:8 (Polygon) nVertices=20, nParts=1 + Bounds:(479504.90625,4764609.5, 0) + to (480133.96875,4765049.5, 0) + (480082.96875,4765049.5, 0) Ring + (480080.28125,4764979.5, 0) + (480133.96875,4764856.5, 0) + (479968.46875,4764788, 0) + (479750.6875,4764702, 0) + (479735.90625,4764752, 0) + (479640.09375,4764721, 0) + (479658.59375,4764670, 0) + (479504.90625,4764609.5, 0) + (479548.03125,4764693.5, 0) + (479587.28125,4764718, 0) + (479617.21875,4764760, 0) + (479637.875,4764803, 0) + (479644.78125,4764827.5, 0) + (479680.28125,4764852, 0) + (479734.375,4764865, 0) + (479895.125,4765000, 0) + (479934.96875,4765020, 0) + (480000.28125,4765043, 0) + (480082.96875,4765049.5, 0) + +Shape:9 (Polygon) nVertices=31, nParts=1 + Bounds:(479968.46875,4764183, 0) + to (480731.65625,4765014, 0) + (480389.6875,4764950, 0) Ring + (480537.15625,4765014, 0) + (480567.96875,4764918, 0) + (480605,4764835, 0) + (480701.0625,4764738, 0) + (480710.25,4764690.5, 0) + (480588.59375,4764740.5, 0) + (480540.71875,4764741, 0) + (480515.125,4764695, 0) + (480731.65625,4764561.5, 0) + (480692.1875,4764453.5, 0) + (480677.84375,4764439, 0) + (480655.34375,4764397.5, 0) + (480584.375,4764353, 0) + (480500.40625,4764326.5, 0) + (480358.53125,4764277, 0) + (480192.3125,4764183, 0) + (480157.125,4764266.5, 0) + (480234.3125,4764304, 0) + (480289.125,4764348.5, 0) + (480316,4764395, 0) + (480343.5625,4764477, 0) + (480343.71875,4764532.5, 0) + (480258.03125,4764767, 0) + (480177.15625,4764742, 0) + (480093.75,4764703, 0) + (480011,4764674.5, 0) + (479985.0625,4764732, 0) + (479968.46875,4764788, 0) + (480133.96875,4764856.5, 0) + (480389.6875,4764950, 0) + +Shape:10 (Polygon) nVertices=61, nParts=1 + Bounds:(479492.6875,4762880.5, 0) + to (481645.3125,4764999.5, 0) + (480701.0625,4764738, 0) Ring + (480761.46875,4764778, 0) + (480824.96875,4764820, 0) + (480922.03125,4764850.5, 0) + (480930.71875,4764852, 0) + (480984.25,4764875, 0) + (481088.1875,4764936, 0) + (481136.84375,4764994.5, 0) + (481281.3125,4764876.5, 0) + (481291.09375,4764810, 0) + (481465.90625,4764872.5, 0) + (481457.375,4764937, 0) + (481509.65625,4764967, 0) + (481538.90625,4764982.5, 0) + (481575,4764999.5, 0) + (481602.125,4764915.5, 0) + (481629.84375,4764829.5, 0) + (481645.3125,4764797.5, 0) + (481635.96875,4764795.5, 0) + (481235.3125,4764650, 0) + (481209.8125,4764633.5, 0) + (481199.21875,4764623.5, 0) + (481185.5,4764607, 0) + (481159.9375,4764580, 0) + (481140.46875,4764510.5, 0) + (481141.625,4764480.5, 0) + (481199.84375,4764180, 0) + (481143.4375,4764010.5, 0) + (481130.3125,4763979.5, 0) + (481039.9375,4763889.5, 0) + (480882.6875,4763670, 0) + (480826.0625,4763650.5, 0) + (480745.1875,4763628.5, 0) + (480654.4375,4763627.5, 0) + (480599.8125,4763660, 0) + (480281.9375,4763576.5, 0) + (480221.5,4763533.5, 0) + (480199.6875,4763509, 0) + (480195.09375,4763430, 0) + (480273.6875,4763305.5, 0) + (480309.6875,4763063.5, 0) + (480201.84375,4762962.5, 0) + (479855.3125,4762880.5, 0) + (479848.53125,4762897, 0) + (479728.875,4763217.5, 0) + (479492.6875,4763850, 0) + (479550.0625,4763919.5, 0) + (480120.21875,4764188.5, 0) + (480192.3125,4764183, 0) + (480358.53125,4764277, 0) + (480500.40625,4764326.5, 0) + (480584.375,4764353, 0) + (480655.34375,4764397.5, 0) + (480677.84375,4764439, 0) + (480692.1875,4764453.5, 0) + (480731.65625,4764561.5, 0) + (480515.125,4764695, 0) + (480540.71875,4764741, 0) + (480588.59375,4764740.5, 0) + (480710.25,4764690.5, 0) + (480701.0625,4764738, 0) + +Shape:11 (Polygon) nVertices=21, nParts=1 + Bounds:(476732.90625,4763624.5, 0) + to (478408.0625,4764876, 0) + (478315.53125,4764876, 0) Ring + (478408.0625,4764654, 0) + (478325.25,4764606.5, 0) + (478220.09375,4764574.5, 0) + (478140.34375,4764511, 0) + (478065.0625,4764487.5, 0) + (478080.9375,4764401.5, 0) + (478110.5,4764308.5, 0) + (478149.96875,4764212.5, 0) + (478180.21875,4764150, 0) + (478192.5,4764099.5, 0) + (477893.125,4763984.5, 0) + (477417.03125,4763800.5, 0) + (477005.59375,4763640, 0) + (476958.3125,4763624.5, 0) + (476947.25,4763664.5, 0) + (476732.90625,4764243, 0) + (477322.375,4764502, 0) + (477599.90625,4764600, 0) + (477949.65625,4764745, 0) + (478315.53125,4764876, 0) + +Shape:12 (Polygon) nVertices=22, nParts=1 + Bounds:(478065.0625,4764099.5, 0) + to (478683,4764788.5, 0) + (478408.0625,4764654, 0) Ring + (478460.125,4764615, 0) + (478532.5,4764695.5, 0) + (478597.34375,4764766.5, 0) + (478621.03125,4764788.5, 0) + (478683,4764730.5, 0) + (478502.1875,4764541.5, 0) + (478448.6875,4764531.5, 0) + (478447.8125,4764454, 0) + (478443.9375,4764400.5, 0) + (478461.75,4764337.5, 0) + (478503.03125,4764218, 0) + (478192.5,4764099.5, 0) + (478180.21875,4764150, 0) + (478149.96875,4764212.5, 0) + (478110.5,4764308.5, 0) + (478080.9375,4764401.5, 0) + (478065.0625,4764487.5, 0) + (478140.34375,4764511, 0) + (478220.09375,4764574.5, 0) + (478325.25,4764606.5, 0) + (478408.0625,4764654, 0) + +Shape:13 (Polygon) nVertices=27, nParts=1 + Bounds:(479239.8125,4763850, 0) + to (480343.71875,4764788, 0) + (479750.6875,4764702, 0) Ring + (479968.46875,4764788, 0) + (479985.0625,4764732, 0) + (480011,4764674.5, 0) + (480093.75,4764703, 0) + (480177.15625,4764742, 0) + (480258.03125,4764767, 0) + (480343.71875,4764532.5, 0) + (480343.5625,4764477, 0) + (480316,4764395, 0) + (480289.125,4764348.5, 0) + (480234.3125,4764304, 0) + (480157.125,4764266.5, 0) + (480192.3125,4764183, 0) + (480120.21875,4764188.5, 0) + (479550.0625,4763919.5, 0) + (479492.6875,4763850, 0) + (479487.75,4763864.5, 0) + (479442.75,4763990, 0) + (479436,4764023, 0) + (479398.9375,4764100, 0) + (479349.625,4764230, 0) + (479305.875,4764361, 0) + (479239.8125,4764505, 0) + (479504.90625,4764609.5, 0) + (479658.59375,4764670, 0) + (479750.6875,4764702, 0) + +Shape:14 (Polygon) nVertices=5, nParts=1 + Bounds:(479640.09375,4764670, 0) + to (479750.6875,4764752, 0) + (479750.6875,4764702, 0) Ring + (479658.59375,4764670, 0) + (479640.09375,4764721, 0) + (479735.90625,4764752, 0) + (479750.6875,4764702, 0) + +Shape:15 (Polygon) nVertices=28, nParts=1 + Bounds:(478503.03125,4763357.5, 0) + to (479349.625,4764418.5, 0) + (479305.875,4764361, 0) Ring + (479349.625,4764230, 0) + (479218.15625,4764126, 0) + (479128.34375,4764030.5, 0) + (479103.40625,4764000, 0) + (479099.59375,4763977.5, 0) + (479080.8125,4763930, 0) + (478999.8125,4763864.5, 0) +------------------------------------------------------------------------- +Test 4: dump pline.dbf - uses new F field type +------------------------------------------------------------------------- +Field 0: Type=N/Double, Title=`FNODE_', Width=11, Decimals=0 +Field 1: Type=N/Double, Title=`TNODE_', Width=11, Decimals=0 +Field 2: Type=N/Double, Title=`LPOLY_', Width=11, Decimals=0 +Field 3: Type=N/Double, Title=`RPOLY_', Width=11, Decimals=0 +Field 4: Type=F/Double, Title=`LENGTH', Width=13, Decimals=3 +Field 5: Type=N/Double, Title=`PLINE_', Width=11, Decimals=0 +Field 6: Type=N/Double, Title=`PLINE_ID', Width=11, Decimals=0 +Field 7: Type=N/Double, Title=`UID', Width=11, Decimals=0 +Field 8: Type=N/Double, Title=`GISO_TYPE_', Width=11, Decimals=0 +Field 9: Type=N/Integer, Title=`SYMBOL', Width=6, Decimals=0 +Field 10: Type=N/Double, Title=`LOCK__ID', Width=11, Decimals=0 +Field 11: Type=N/Integer, Title=`PHASE__ID', Width=6, Decimals=0 +Field 12: Type=N/Double, Title=`OBJECT__ID', Width=11, Decimals=0 +Field 13: Type=C/String, Title=`TYPE', Width=50, Decimals=0 +Field 14: Type=N/Integer, Title=`SYM_NBR', Width=6, Decimals=0 +Field 15: Type=C/String, Title=`PHASE', Width=4, Decimals=0 +Field 16: Type=C/String, Title=`CKT_NM', Width=30, Decimals=0 +Field 17: Type=C/String, Title=`VOLTAGE', Width=30, Decimals=0 +Field 18: Type=C/String, Title=`CMPN', Width=30, Decimals=0 + +Record: 0 +FNODE_: 351 +TNODE_: 352 +LPOLY_: 0 +RPOLY_: 0 +LENGTH: 139.451 +PLINE_: 1 +PLINE_ID: 8588 +UID: 544484 +GISO_TYPE_: 13 +SYMBOL: 101 +LOCK__ID: 0 +PHASE__ID: 0 +OBJECT__ID: 131978 +TYPE: Overhead Primary +SYM_NBR: 101 +PHASE: ABC +CKT_NM: MED36 +VOLTAGE: (NULL) +CMPN: (NULL) + +Record: 1 +FNODE_: 352 +TNODE_: 362 +LPOLY_: 0 +RPOLY_: 0 +LENGTH: 158.033 +PLINE_: 2 +PLINE_ID: 8695 +UID: 544591 +------------------------------------------------------------------------- +Test 5: NULL Shapes. +------------------------------------------------------------------------- +Shapefile Type: Arc # of Shapes: 124 + +File Bounds: (257104.88,5176098.60598591,0,0) + to (335497.5,5226768.1,0,0) + +Shape:0 (Arc) nVertices=21, nParts=1 + Bounds:(317138.45,5176398.91581796, 0) + to (317325.59,5186063.78, 0) + (317255.906326921,5176398.91581796, 0) Ring + (317188.01,5176506.46, 0) + (317176.92,5176524.51, 0) + (317165.34,5176546.85, 0) + (317157.95,5176566.02, 0) + (317150.02,5176587.65, 0) + (317140.13,5176623.38, 0) + (317138.7,5176637.22, 0) + (317138.45,5176652.79, 0) + (317194.71,5177654.35, 0) + (317208.9,5178001.15, 0) + (317257.24,5178791.4, 0) + (317233.33,5179171.73, 0) + (317178.86,5179593.91, 0) + (317177.43,5180161.33, 0) + (317179.91,5181231.06, 0) + (317191.12,5182009, 0) + (317217.15,5182812.16, 0) + (317251.76,5184426.35, 0) + (317285.55,5185242.72, 0) + (317325.59,5186063.78, 0) + +Shape:1 (Arc) nVertices=14, nParts=1 + Bounds:(327417.339981271,5176119.95957318, 0) + to (327575.15,5179522.55, 0) + (327417.339981271,5176119.95957318, 0) Ring + (327472.25,5177756.61, 0) + (327475.67,5178507.28, 0) + (327487.42,5179001.91, 0) + (327488.76,5179080.09, 0) + (327485.31,5179309.31, 0) + (327487.01,5179328.21, 0) + (327491.8,5179348.86, 0) + (327499.8,5179374.94, 0) + (327512.98,5179413.1, 0) + (327527.29,5179446.96, 0) + (327538.87,5179469.89, 0) + (327552.26,5179491.55, 0) + (327575.15,5179522.55, 0) + +Shape:2 (Arc) nVertices=40, nParts=1 + Bounds:(326935.88,5180924.98, 0) + to (327723.19,5198803.66, 0) + (327370.95,5180924.98, 0) Ring + (327410.07,5181060.54, 0) + (327512.85,5181435.45, 0) + (327518.64,5181464.01, 0) + (327523.7,5181488.92, 0) + (327524.5,5181514.57, 0) + (327468.01,5182633.64, 0) + (327500.04,5183199.84, 0) + (327499.6,5183224.92, 0) + (327484.7,5183355.01, 0) + (327483.69,5183400.9, 0) + (327483.84,5183464.48, 0) + (327486.01,5183494.98, 0) + (327571.28,5184207.82, 0) + (327617.21,5184599.43, 0) + (327620.42,5184623.78, 0) + (327625.53,5184650.53, 0) + (327698.43,5184927.07, 0) + (327702.1,5184946.52, 0) + (327717.94,5185394.82, 0) + (327723.19,5185719.32, 0) + (327719.46,5185737.17, 0) + (327712.09,5185755.74, 0) + (327699.84,5185775.08, 0) + (327683.83,5185791.48, 0) + (327665.38,5185807.95, 0) + (327641.97,5185822.74, 0) + (327622.28,5185829.07, 0) + (327604.95,5185832.94, 0) + (326937.5,5185829.31, 0) + (326935.88,5187515.51, 0) + (326983.05,5189115.23, 0) + (326998.86,5189920.82, 0) + (327060.24,5190715.87, 0) + (327123.23,5192332.22, 0) + (327179.92,5193766.29, 0) + (327185.49,5193921.94, 0) + (327204.12,5195553.58, 0) + (327218.27,5197179.25, 0) + (327251.33,5198803.66, 0) + +Shape:3 (NullShape) nVertices=0, nParts=0 + Bounds:(0,0, 0) + to (0,0, 0) + +Shape:4 (NullShape) nVertices=0, nParts=0 + Bounds:(0,0, 0) + to (0,0, 0) + +Shape:5 (NullShape) nVertices=0, nParts=0 + Bounds:(0,0, 0) + to (0,0, 0) + +Shape:6 (Arc) nVertices=2, nParts=1 + Bounds:(327123.23,5192296.6, 0) + to (328480.85,5192332.22, 0) + (327123.23,5192332.22, 0) Ring + (328480.85,5192296.6, 0) + +Shape:7 (Arc) nVertices=5, nParts=1 + Bounds:(329222.06,5217943.49, 0) + to (335290.68,5218084.78, 0) + (329222.06,5218084.78, 0) Ring + (330442.52,5218057.65, 0) + (332059.96,5218033.81, 0) + (333685.82,5218004.86, 0) + (335290.68,5217943.49, 0) + +Shape:8 (Arc) nVertices=65, nParts=1 + Bounds:(280048.1,5177687.6425329, 0) + to (280439.41,5182567.12, 0) + (280316.840076296,5177687.6425329, 0) Ring + (280325.31,5177968.83, 0) + (280324.63,5178037.94, 0) + (280324.15,5178059.35, 0) + (280320.13,5178084.56, 0) + (280299.86,5178170.25, 0) + (280288.71,5178218.94, 0) + (280274.28,5178283.64, 0) + (280268,5178330.87, 0) + (280267.91,5178346.76, 0) + (280270.51,5178364.58, 0) + (280274.82,5178382.36, 0) + (280278.44,5178397.21, 0) + (280351.4,5178743.8, 0) + (280369.86,5178800.63, 0) + (280378.67,5178826.01, 0) + (280400.35,5178869.89, 0) + (280414.87,5178901.18, 0) + (280427.03,5178934.99, 0) + (280436.25,5178971.97, 0) + (280439.41,5178992.65, 0) + (280439.17,5179001.63, 0) + (280437.01,5179011.69, 0) + (280434.93,5179016.97, 0) + (280431.87,5179022.26, 0) + (280413.61,5179041.85, 0) + (280410.04,5179046.78, 0) + (280406.64,5179052.48, 0) diff --git a/s2.out b/s2.out new file mode 100644 index 0000000..451901a --- /dev/null +++ b/s2.out @@ -0,0 +1,530 @@ +----------------------------------------------------------------------- +Test 2/0 +----------------------------------------------------------------------- +Shapefile Type: NullShape # of Shapes: 2 + +File Bounds: (0,0,0,0) + to (10,20,0,0) + +Shape:0 (NullShape) nVertices=0, nParts=0 + Bounds:(0,0, 0) + to (0,0, 0) + +Shape:1 (NullShape) nVertices=0, nParts=0 + Bounds:(0,0, 0) + to (0,0, 0) +----------------------------------------------------------------------- +Test 2/1 +----------------------------------------------------------------------- +Shapefile Type: Point # of Shapes: 2 + +File Bounds: (1,2,0,0) + to (10,20,0,0) + +Shape:0 (Point) nVertices=1, nParts=0 + Bounds:(1,2, 0) + to (1,2, 0) + (1,2, 0) + +Shape:1 (Point) nVertices=1, nParts=0 + Bounds:(10,20, 0) + to (10,20, 0) + (10,20, 0) +----------------------------------------------------------------------- +Test 2/2 +----------------------------------------------------------------------- +Shapefile Type: PointZ # of Shapes: 2 + +File Bounds: (1,2,3,4) + to (10,20,30,40) + +Shape:0 (PointZ) nVertices=1, nParts=0 + Bounds:(1,2, 3, 4) + to (1,2, 3, 4) + (1,2, 3, 4) + +Shape:1 (PointZ) nVertices=1, nParts=0 + Bounds:(10,20, 30, 40) + to (10,20, 30, 40) + (10,20, 30, 40) +----------------------------------------------------------------------- +Test 2/3 +----------------------------------------------------------------------- +Shapefile Type: PointM # of Shapes: 2 + +File Bounds: (1,2,0,4) + to (10,20,0,40) + +Shape:0 (PointM) nVertices=1, nParts=0 + Bounds:(1,2, 0, 4) + to (1,2, 0, 4) + (1,2, 0, 4) + +Shape:1 (PointM) nVertices=1, nParts=0 + Bounds:(10,20, 0, 40) + to (10,20, 0, 40) + (10,20, 0, 40) +----------------------------------------------------------------------- +Test 2/4 +----------------------------------------------------------------------- +Shapefile Type: MultiPoint # of Shapes: 3 + +File Bounds: (1.15,2.25,0,0) + to (24.15,25.25,0,0) + +Shape:0 (MultiPoint) nVertices=4, nParts=0 + Bounds:(1.15,2.25, 0) + to (4.15,5.25, 0) + (1.15,2.25, 0) + (2.15,3.25, 0) + (3.15,4.25, 0) + (4.15,5.25, 0) + +Shape:1 (MultiPoint) nVertices=4, nParts=0 + Bounds:(11.15,12.25, 0) + to (14.15,15.25, 0) + (11.15,12.25, 0) + (12.15,13.25, 0) + (13.15,14.25, 0) + (14.15,15.25, 0) + +Shape:2 (MultiPoint) nVertices=4, nParts=0 + Bounds:(21.15,22.25, 0) + to (24.15,25.25, 0) + (21.15,22.25, 0) + (22.15,23.25, 0) + (23.15,24.25, 0) + (24.15,25.25, 0) +----------------------------------------------------------------------- +Test 2/5 +----------------------------------------------------------------------- +Shapefile Type: MultiPointZ # of Shapes: 3 + +File Bounds: (1.15,2.25,3.35,4.45) + to (24.15,25.25,26.35,27.45) + +Shape:0 (MultiPointZ) nVertices=4, nParts=0 + Bounds:(1.15,2.25, 3.35, 4.45) + to (4.15,5.25, 6.35, 7.45) + (1.15,2.25, 3.35, 4.45) + (2.15,3.25, 4.35, 5.45) + (3.15,4.25, 5.35, 6.45) + (4.15,5.25, 6.35, 7.45) + +Shape:1 (MultiPointZ) nVertices=4, nParts=0 + Bounds:(11.15,12.25, 13.35, 14.45) + to (14.15,15.25, 16.35, 17.45) + (11.15,12.25, 13.35, 14.45) + (12.15,13.25, 14.35, 15.45) + (13.15,14.25, 15.35, 16.45) + (14.15,15.25, 16.35, 17.45) + +Shape:2 (MultiPointZ) nVertices=4, nParts=0 + Bounds:(21.15,22.25, 23.35, 24.45) + to (24.15,25.25, 26.35, 27.45) + (21.15,22.25, 23.35, 24.45) + (22.15,23.25, 24.35, 25.45) + (23.15,24.25, 25.35, 26.45) + (24.15,25.25, 26.35, 27.45) +----------------------------------------------------------------------- +Test 2/6 +----------------------------------------------------------------------- +Shapefile Type: MultiPointM # of Shapes: 3 + +File Bounds: (1.15,2.25,0,4.45) + to (24.15,25.25,0,27.45) + +Shape:0 (MultiPointM) nVertices=4, nParts=0 + Bounds:(1.15,2.25, 0, 4.45) + to (4.15,5.25, 0, 7.45) + (1.15,2.25, 0, 4.45) + (2.15,3.25, 0, 5.45) + (3.15,4.25, 0, 6.45) + (4.15,5.25, 0, 7.45) + +Shape:1 (MultiPointM) nVertices=4, nParts=0 + Bounds:(11.15,12.25, 0, 14.45) + to (14.15,15.25, 0, 17.45) + (11.15,12.25, 0, 14.45) + (12.15,13.25, 0, 15.45) + (13.15,14.25, 0, 16.45) + (14.15,15.25, 0, 17.45) + +Shape:2 (MultiPointM) nVertices=4, nParts=0 + Bounds:(21.15,22.25, 0, 24.45) + to (24.15,25.25, 0, 27.45) + (21.15,22.25, 0, 24.45) + (22.15,23.25, 0, 25.45) + (23.15,24.25, 0, 26.45) + (24.15,25.25, 0, 27.45) +----------------------------------------------------------------------- +Test 2/7 +----------------------------------------------------------------------- +Shapefile Type: Arc # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,0,0) + +Shape:0 (Arc) nVertices=5, nParts=1 + Bounds:(1,1, 0) + to (2,2, 0) + (1,1, 0) Ring + (1,2, 0) + (2,2, 0) + (2,1, 0) + (1,1, 0) + +Shape:1 (Arc) nVertices=5, nParts=1 + Bounds:(1,4, 0) + to (2,5, 0) + (1,4, 0) Ring + (1,5, 0) + (2,5, 0) + (2,4, 0) + (1,4, 0) + +Shape:2 (Arc) nVertices=5, nParts=1 + Bounds:(1,7, 0) + to (2,8, 0) + (1,7, 0) Ring + (1,8, 0) + (2,8, 0) + (2,7, 0) + (1,7, 0) + +Shape:3 (Arc) nVertices=15, nParts=3 + Bounds:(0,0, 0) + to (100,100, 0) + (0,0, 0) Ring + (0,100, 0) + (100,100, 0) + (100,0, 0) + (0,0, 0) + + (10,20, 0) Ring + (30,20, 0) + (30,40, 0) + (10,40, 0) + (10,20, 0) + + (60,20, 0) Ring + (90,20, 0) + (90,40, 0) + (60,40, 0) + (60,20, 0) +----------------------------------------------------------------------- +Test 2/8 +----------------------------------------------------------------------- +Shapefile Type: ArcZ # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,27.35,28.45) + +Shape:0 (ArcZ) nVertices=5, nParts=1 + Bounds:(1,1, 3.35, 4.45) + to (2,2, 7.35, 8.45) + (1,1, 3.35, 4.45) Ring + (1,2, 4.35, 5.45) + (2,2, 5.35, 6.45) + (2,1, 6.35, 7.45) + (1,1, 7.35, 8.45) + +Shape:1 (ArcZ) nVertices=5, nParts=1 + Bounds:(1,4, 13.35, 14.45) + to (2,5, 17.35, 18.45) + (1,4, 13.35, 14.45) Ring + (1,5, 14.35, 15.45) + (2,5, 15.35, 16.45) + (2,4, 16.35, 17.45) + (1,4, 17.35, 18.45) + +Shape:2 (ArcZ) nVertices=5, nParts=1 + Bounds:(1,7, 23.35, 24.45) + to (2,8, 27.35, 28.45) + (1,7, 23.35, 24.45) Ring + (1,8, 24.35, 25.45) + (2,8, 25.35, 26.45) + (2,7, 26.35, 27.45) + (1,7, 27.35, 28.45) + +Shape:3 (ArcZ) nVertices=15, nParts=3 + Bounds:(0,0, 0, 0) + to (100,100, 14, 28) + (0,0, 0, 0) Ring + (0,100, 1, 2) + (100,100, 2, 4) + (100,0, 3, 6) + (0,0, 4, 8) + + (10,20, 5, 10) Ring + (30,20, 6, 12) + (30,40, 7, 14) + (10,40, 8, 16) + (10,20, 9, 18) + + (60,20, 10, 20) Ring + (90,20, 11, 22) + (90,40, 12, 24) + (60,40, 13, 26) + (60,20, 14, 28) +----------------------------------------------------------------------- +Test 2/9 +----------------------------------------------------------------------- +Shapefile Type: ArcM # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,0,28.45) + +Shape:0 (ArcM) nVertices=5, nParts=1 + Bounds:(1,1, 0, 4.45) + to (2,2, 0, 8.45) + (1,1, 0, 4.45) Ring + (1,2, 0, 5.45) + (2,2, 0, 6.45) + (2,1, 0, 7.45) + (1,1, 0, 8.45) + +Shape:1 (ArcM) nVertices=5, nParts=1 + Bounds:(1,4, 0, 14.45) + to (2,5, 0, 18.45) + (1,4, 0, 14.45) Ring + (1,5, 0, 15.45) + (2,5, 0, 16.45) + (2,4, 0, 17.45) + (1,4, 0, 18.45) + +Shape:2 (ArcM) nVertices=5, nParts=1 + Bounds:(1,7, 0, 24.45) + to (2,8, 0, 28.45) + (1,7, 0, 24.45) Ring + (1,8, 0, 25.45) + (2,8, 0, 26.45) + (2,7, 0, 27.45) + (1,7, 0, 28.45) + +Shape:3 (ArcM) nVertices=15, nParts=3 + Bounds:(0,0, 0, 0) + to (100,100, 0, 28) + (0,0, 0, 0) Ring + (0,100, 0, 2) + (100,100, 0, 4) + (100,0, 0, 6) + (0,0, 0, 8) + + (10,20, 0, 10) Ring + (30,20, 0, 12) + (30,40, 0, 14) + (10,40, 0, 16) + (10,20, 0, 18) + + (60,20, 0, 20) Ring + (90,20, 0, 22) + (90,40, 0, 24) + (60,40, 0, 26) + (60,20, 0, 28) +----------------------------------------------------------------------- +Test 2/10 +----------------------------------------------------------------------- +Shapefile Type: Polygon # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,0,0) + +Shape:0 (Polygon) nVertices=5, nParts=1 + Bounds:(1,1, 0) + to (2,2, 0) + (1,1, 0) Ring + (1,2, 0) + (2,2, 0) + (2,1, 0) + (1,1, 0) + +Shape:1 (Polygon) nVertices=5, nParts=1 + Bounds:(1,4, 0) + to (2,5, 0) + (1,4, 0) Ring + (1,5, 0) + (2,5, 0) + (2,4, 0) + (1,4, 0) + +Shape:2 (Polygon) nVertices=5, nParts=1 + Bounds:(1,7, 0) + to (2,8, 0) + (1,7, 0) Ring + (1,8, 0) + (2,8, 0) + (2,7, 0) + (1,7, 0) + +Shape:3 (Polygon) nVertices=15, nParts=3 + Bounds:(0,0, 0) + to (100,100, 0) + (0,0, 0) Ring + (0,100, 0) + (100,100, 0) + (100,0, 0) + (0,0, 0) + + (10,20, 0) Ring + (30,20, 0) + (30,40, 0) + (10,40, 0) + (10,20, 0) + + (60,20, 0) Ring + (90,20, 0) + (90,40, 0) + (60,40, 0) + (60,20, 0) +----------------------------------------------------------------------- +Test 2/11 +----------------------------------------------------------------------- +Shapefile Type: PolygonZ # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,27.35,28.45) + +Shape:0 (PolygonZ) nVertices=5, nParts=1 + Bounds:(1,1, 3.35, 4.45) + to (2,2, 7.35, 8.45) + (1,1, 3.35, 4.45) Ring + (1,2, 4.35, 5.45) + (2,2, 5.35, 6.45) + (2,1, 6.35, 7.45) + (1,1, 7.35, 8.45) + +Shape:1 (PolygonZ) nVertices=5, nParts=1 + Bounds:(1,4, 13.35, 14.45) + to (2,5, 17.35, 18.45) + (1,4, 13.35, 14.45) Ring + (1,5, 14.35, 15.45) + (2,5, 15.35, 16.45) + (2,4, 16.35, 17.45) + (1,4, 17.35, 18.45) + +Shape:2 (PolygonZ) nVertices=5, nParts=1 + Bounds:(1,7, 23.35, 24.45) + to (2,8, 27.35, 28.45) + (1,7, 23.35, 24.45) Ring + (1,8, 24.35, 25.45) + (2,8, 25.35, 26.45) + (2,7, 26.35, 27.45) + (1,7, 27.35, 28.45) + +Shape:3 (PolygonZ) nVertices=15, nParts=3 + Bounds:(0,0, 0, 0) + to (100,100, 14, 28) + (0,0, 0, 0) Ring + (0,100, 1, 2) + (100,100, 2, 4) + (100,0, 3, 6) + (0,0, 4, 8) + + (10,20, 5, 10) Ring + (30,20, 6, 12) + (30,40, 7, 14) + (10,40, 8, 16) + (10,20, 9, 18) + + (60,20, 10, 20) Ring + (90,20, 11, 22) + (90,40, 12, 24) + (60,40, 13, 26) + (60,20, 14, 28) +----------------------------------------------------------------------- +Test 2/12 +----------------------------------------------------------------------- +Shapefile Type: PolygonM # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,0,28.45) + +Shape:0 (PolygonM) nVertices=5, nParts=1 + Bounds:(1,1, 0, 4.45) + to (2,2, 0, 8.45) + (1,1, 0, 4.45) Ring + (1,2, 0, 5.45) + (2,2, 0, 6.45) + (2,1, 0, 7.45) + (1,1, 0, 8.45) + +Shape:1 (PolygonM) nVertices=5, nParts=1 + Bounds:(1,4, 0, 14.45) + to (2,5, 0, 18.45) + (1,4, 0, 14.45) Ring + (1,5, 0, 15.45) + (2,5, 0, 16.45) + (2,4, 0, 17.45) + (1,4, 0, 18.45) + +Shape:2 (PolygonM) nVertices=5, nParts=1 + Bounds:(1,7, 0, 24.45) + to (2,8, 0, 28.45) + (1,7, 0, 24.45) Ring + (1,8, 0, 25.45) + (2,8, 0, 26.45) + (2,7, 0, 27.45) + (1,7, 0, 28.45) + +Shape:3 (PolygonM) nVertices=15, nParts=3 + Bounds:(0,0, 0, 0) + to (100,100, 0, 28) + (0,0, 0, 0) Ring + (0,100, 0, 2) + (100,100, 0, 4) + (100,0, 0, 6) + (0,0, 0, 8) + + (10,20, 0, 10) Ring + (30,20, 0, 12) + (30,40, 0, 14) + (10,40, 0, 16) + (10,20, 0, 18) + + (60,20, 0, 20) Ring + (90,20, 0, 22) + (90,40, 0, 24) + (60,40, 0, 26) + (60,20, 0, 28) +----------------------------------------------------------------------- +Test 2/13 +----------------------------------------------------------------------- +Shapefile Type: MultiPatch # of Shapes: 4 + +File Bounds: (0,0,0,0) + to (100,100,27.35,28.45) + +Shape:0 (MultiPatch) nVertices=5, nParts=1 + Bounds:(1,1, 3.35) + to (2,2, 7.35) + (1,1, 3.35) Ring + (1,2, 4.35) + (2,2, 5.35) + (2,1, 6.35) + (1,1, 7.35) + +Shape:1 (MultiPatch) nVertices=5, nParts=1 + Bounds:(1,4, 13.35) + to (2,5, 17.35) + (1,4, 13.35) Ring + (1,5, 14.35) + (2,5, 15.35) + (2,4, 16.35) + (1,4, 17.35) + +Shape:2 (MultiPatch) nVertices=5, nParts=1 + Bounds:(1,7, 23.35) + to (2,8, 27.35) + (1,7, 23.35) Ring + (1,8, 24.35) + (2,8, 25.35) + (2,7, 26.35) + (1,7, 27.35) + +Shape:3 (MultiPatch) nVertices=15, nParts=3 + Bounds:(0,0, 0) + to (100,100, 14) + (0,0, 0) Ring + (0,100, 1) + (100,100, 2) + (100,0, 3) + (0,0, 4) + + (10,20, 5) InnerRing + (30,20, 6) + (30,40, 7) + (10,40, 8) + (10,20, 9) + + (60,20, 10) InnerRing + (90,20, 11) + (90,40, 12) + (60,40, 13) + (60,20, 14) diff --git a/s3.out b/s3.out new file mode 100644 index 0000000..1ab8af4 --- /dev/null +++ b/s3.out @@ -0,0 +1,37 @@ +Shapefile Type: Polygon # of Shapes: 3 + +File Bounds: (0,0,0,0) + to (180,170,0,0) + +Shape:0 (Polygon) nVertices=9, nParts=2 + Bounds:(0,0, 0) + to (100,100, 0) + (0,0, 0) Ring + (100,0, 0) + (100,100, 0) + (0,100, 0) + (0,0, 0) + + (20,20, 0) Ring + (20,30, 0) + (30,30, 0) + (20,20, 0) + +Shape:1 (Polygon) nVertices=4, nParts=1 + Bounds:(150,150, 0) + to (180,170, 0) + (150,150, 0) Ring + (160,150, 0) + (180,170, 0) + (150,150, 0) + +Shape:2 (Polygon) nVertices=4, nParts=1 + Bounds:(150,150, 0) + to (180,170, 0) + (150,150, 0) Ring + (160,150, 0) + (180,170, 0) + (150,150, 0) +Descriptio TestInt TestDouble +Square with triangle missing 1 2.50000 +Smaller triangle 100 1000.25000 +(NULL) (NULL) (NULL)