shp 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +34 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +28 -0
  6. data/README.md +30 -0
  7. data/Rakefile +23 -0
  8. data/ext/shp/base.hpp +113 -0
  9. data/ext/shp/dbf.cpp +381 -0
  10. data/ext/shp/dbf.hpp +44 -0
  11. data/ext/shp/extconf.rb +13 -0
  12. data/ext/shp/shape_object.cpp +58 -0
  13. data/ext/shp/shape_object.hpp +27 -0
  14. data/ext/shp/shapefile.cpp +299 -0
  15. data/ext/shp/shapefile.hpp +35 -0
  16. data/ext/shp/shapelib/.cvsignore +15 -0
  17. data/ext/shp/shapelib/ChangeLog +450 -0
  18. data/ext/shp/shapelib/HOWTO-RELEASE +16 -0
  19. data/ext/shp/shapelib/LICENSE.LGPL +483 -0
  20. data/ext/shp/shapelib/Makefile +113 -0
  21. data/ext/shp/shapelib/README +41 -0
  22. data/ext/shp/shapelib/README.tree +172 -0
  23. data/ext/shp/shapelib/contrib/.cvsignore +12 -0
  24. data/ext/shp/shapelib/contrib/Makefile +66 -0
  25. data/ext/shp/shapelib/contrib/ShapeFileII.pas +234 -0
  26. data/ext/shp/shapelib/contrib/Shape_PointInPoly.cpp +238 -0
  27. data/ext/shp/shapelib/contrib/Shape_PointInPoly_README.txt +59 -0
  28. data/ext/shp/shapelib/contrib/csv2shp.c +558 -0
  29. data/ext/shp/shapelib/contrib/dbfcat.c +166 -0
  30. data/ext/shp/shapelib/contrib/dbfinfo.c +106 -0
  31. data/ext/shp/shapelib/contrib/makefile.vc +34 -0
  32. data/ext/shp/shapelib/contrib/my_nan.h +46 -0
  33. data/ext/shp/shapelib/contrib/shpcat.c +100 -0
  34. data/ext/shp/shapelib/contrib/shpcentrd.c +159 -0
  35. data/ext/shp/shapelib/contrib/shpdata.c +129 -0
  36. data/ext/shp/shapelib/contrib/shpdxf.c +340 -0
  37. data/ext/shp/shapelib/contrib/shpfix.c +110 -0
  38. data/ext/shp/shapelib/contrib/shpgeo.c +1595 -0
  39. data/ext/shp/shapelib/contrib/shpgeo.h +154 -0
  40. data/ext/shp/shapelib/contrib/shpinfo.c +113 -0
  41. data/ext/shp/shapelib/contrib/shpproj.c +260 -0
  42. data/ext/shp/shapelib/contrib/shpsort.c +605 -0
  43. data/ext/shp/shapelib/contrib/shpsort.txt +44 -0
  44. data/ext/shp/shapelib/contrib/shpwkb.c +123 -0
  45. data/ext/shp/shapelib/contrib/tests/shpproj.sh +38 -0
  46. data/ext/shp/shapelib/dbfopen.c +2221 -0
  47. data/ext/shp/shapelib/makefile.vc +86 -0
  48. data/ext/shp/shapelib/makeshape.sh +21 -0
  49. data/ext/shp/shapelib/mkdist.sh +37 -0
  50. data/ext/shp/shapelib/mkinstalldirs +38 -0
  51. data/ext/shp/shapelib/mkrelease.sh +55 -0
  52. data/ext/shp/shapelib/safileio.c +286 -0
  53. data/ext/shp/shapelib/shapefil.h +647 -0
  54. data/ext/shp/shapelib/shapelib.def +46 -0
  55. data/ext/shp/shapelib/shpopen.c +2388 -0
  56. data/ext/shp/shapelib/shptree.c +1187 -0
  57. data/ext/shp/shapelib/shputils.c +1072 -0
  58. data/ext/shp/shapelib/stream1.out +1465 -0
  59. data/ext/shp/shapelib/stream1.sh +28 -0
  60. data/ext/shp/shapelib/stream2.out +530 -0
  61. data/ext/shp/shapelib/stream2.sh +11 -0
  62. data/ext/shp/shapelib/stream3.out +37 -0
  63. data/ext/shp/shapelib/web/.cvsignore +2 -0
  64. data/ext/shp/shapelib/web/codepage.html +403 -0
  65. data/ext/shp/shapelib/web/dbf_api.html +436 -0
  66. data/ext/shp/shapelib/web/index.html +235 -0
  67. data/ext/shp/shapelib/web/license.html +78 -0
  68. data/ext/shp/shapelib/web/manifest.html +87 -0
  69. data/ext/shp/shapelib/web/release.html +80 -0
  70. data/ext/shp/shapelib/web/shapelib-tools.html +352 -0
  71. data/ext/shp/shapelib/web/shp_api.html +376 -0
  72. data/ext/shp/shp.cpp +19 -0
  73. data/ext/shp/shp.hpp +47 -0
  74. data/lib/shp.rb +35 -0
  75. data/lib/shp/version.rb +3 -0
  76. data/shp.gemspec +23 -0
  77. data/spec/shp_spec.rb +127 -0
  78. metadata +176 -0
@@ -0,0 +1,78 @@
1
+ <html>
2
+ <head>
3
+ <title>Shapelib License</title>
4
+ <link href="http://www.maptools.org/maptools.css" rel="stylesheet" type="text/css">
5
+ </head>
6
+
7
+ <body>
8
+ <h1>License</h1>
9
+
10
+ The source for the Shapefile C Library is (c) 1998 Frank Warmerdam,
11
+ and released under the following conditions. The intent is that anyone
12
+ can do anything with the code, but that I do not assume any liability, nor
13
+ express any warranty for this code. <p>
14
+
15
+ As of Shapelib 1.2.6 the core portions of the library are made available
16
+ under two possible licenses. The licensee can choose to use the code
17
+ under either the Library GNU Public License (LGPL) described in
18
+ LICENSE.LGPL or under the following MIT style license. Any files in
19
+ the Shapelib distribution without explicit copyright license terms
20
+ (such as this documentation, the Makefile and so forth) should be
21
+ considered to have the following licensing terms. Some auxilary portions
22
+ of Shapelib, notably some of the components in the contrib directory
23
+ come under slightly different license restrictions. Check the source
24
+ files that you are actually using for conditions.<p>
25
+
26
+ <h3>Default License Terms</h3>
27
+
28
+ <quote>
29
+ Copyright (c) 1999, Frank Warmerdam<p>
30
+
31
+ This software is available under the following "MIT Style" license,
32
+ or at the option of the licensee under the LGPL (see LICENSE.LGPL). This
33
+ option is discussed in more detail in shapelib.html.<p>
34
+
35
+ Permission is hereby granted, free of charge, to any person obtaining a
36
+ copy of this software and associated documentation files (the "Software"),
37
+ to deal in the Software without restriction, including without limitation
38
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
39
+ and/or sell copies of the Software, and to permit persons to whom the
40
+ Software is furnished to do so, subject to the following conditions:<p>
41
+
42
+ The above copyright notice and this permission notice shall be included
43
+ in all copies or substantial portions of the Software.<p>
44
+
45
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
46
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
47
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
48
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
49
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
50
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
51
+ DEALINGS IN THE SOFTWARE.<p>
52
+ </quote>
53
+
54
+ <h3>Shapelib Modifications</h3>
55
+
56
+ I am pleased to receive bug fixes, and improvements for Shapelib. Unless
57
+ the submissions indicate otherwise I will assume that changes submitted to
58
+ me remain under the the above "dual license" terms. If changes are made
59
+ to the library with the intention that those changes should be protected by
60
+ the LGPL then I should be informed upon submission. Note that I will not
61
+ generally incorporate changes into the core of Shapelib that are protected
62
+ under the LGPL as this would effectively limit the whole file and
63
+ distribution to LGPL terms.<p>
64
+
65
+ <h3>Opting for LGPL</h3>
66
+
67
+ For licensee's opting to use Shapelib under LGPL as opposed to the MIT
68
+ Style license above, and wishing to redistribute the software based on
69
+ Shapelib, I would ask that all "dual license" modules be updated to
70
+ indicate that only the LGPL (and not the MIT Style license) applies. This
71
+ action represents opting for the LGPL, and thereafter LGPL terms apply to
72
+ any redistribution and modification of the affected modules.<p>
73
+
74
+ </body>
75
+ </html>
76
+
77
+
78
+
@@ -0,0 +1,87 @@
1
+ <html>
2
+ <head>
3
+ <title>Shapefile C Library V1.2</title>
4
+ <link href="http://www.maptools.org/maptools.css" rel="stylesheet" type="text/css">
5
+ </head>
6
+
7
+ <body>
8
+ <h1>Shapelib Manifest</h1>
9
+
10
+ <ul>
11
+ <li> <b>web/index.html</b>: This file - general documentation on the
12
+ Shapefile C Library.<p>
13
+
14
+ <li> <b><a href="shp_api.html">web/shp_api.html</a></b>: Documentation
15
+ for the API for accessing the .shp/.shx files. <p>
16
+
17
+ <li> <b><a href="dbf_api.html">web/dbf_api.html</a></b>: Documentation
18
+ for the API for accessing the .dbf attribute files. <p>
19
+
20
+ <li> <b>shpopen.c</b>: C code for access to .shp/.shx vertex files.<p>
21
+
22
+ <li> <b>dbfopen.c</b>: C code for access to .dbf attribute file.<p>
23
+
24
+ <li> <b>shapefil.h</b>: Include file defining all the services of dbfopen.c
25
+ and shpopen.c.<p>
26
+
27
+ <li> <b>contrib/</b>: A directory of "in progress" contributed programs
28
+ from Carl Anderson.<p>
29
+
30
+ <li> <b>dbfcreate.c</b>: Simple example program for creating a new .dbf file.
31
+ <p>
32
+
33
+ <li> <b>dbfadd.c</b>:
34
+ Simple example program for adding a record to a .dbf file.<p>
35
+
36
+ <li> <b>dbfdump.c</b>: Simple example program for displaying the contents of
37
+ a .dbf file.<p>
38
+
39
+ <li> <b>shpcreate.c</b>: Simple example program for creating a new .shp and
40
+ .shx file.<p>
41
+
42
+ <li> <b>shpadd.c</b>: Simple example program for adding a shape to an existing
43
+ shape file.<p>
44
+
45
+ <li> <b>shpdump.c</b>: Simple program for dumping all the vertices in a
46
+ shapefile with an indicating of the parts.<p>
47
+
48
+ <li> <b>shputils.c</b>: Complex contributed program capable of clipping and
49
+ appending
50
+ shapefiles as well as a few other things. Type shputils
51
+ after building to get a full usage message.<p>
52
+
53
+ <li> <b>Makefile</b>: A simple makefile to compile the library and example
54
+ programs.<p>
55
+
56
+ <li> <b>makeshape.sh</b>: A simple script for running some of the example
57
+ programs.<p>
58
+
59
+ <li> <b>shptest.c</b>: A simple test harnass to generate each of the supported
60
+ types of shapefiles. <p>
61
+
62
+
63
+ <li> <b>shptree.c</b>: Implements a simple quadtree algorithm for fast
64
+ spatial searches of shapefiles.<p>
65
+
66
+ <li> <b>shptreedump.c</b>: A simple mainly showing information on quad
67
+ trees build using the quad tree api.<p>
68
+
69
+ <li> <b>stream1.sh</b> - A test script, which should produce stream1.out.
70
+ Note this will only work if you have the example data downloaded.<p>
71
+
72
+ <li> <b>stream1.out</b>: Expected output of stream1.sh test script.<p>
73
+
74
+ <li> <b>stream2.sh</b>: A test script, which should produce stream2.out.<p>
75
+
76
+ <li> <b>stream2.out</b>: Expected output of stream2.sh test script.<p>
77
+
78
+ <li> <b>pyshapelib-0.1</b>: Prototype contributed Python bindings.<p>
79
+
80
+ </ul>
81
+
82
+
83
+ </body>
84
+ </html>
85
+
86
+
87
+
@@ -0,0 +1,80 @@
1
+ <html>
2
+ <head>
3
+ <title>Shapelib Release Notes</title>
4
+ <link href="http://www.maptools.org/maptools.css" rel="stylesheet" type="text/css">
5
+ </head>
6
+
7
+ <body>
8
+ <h1>Shapelib Release Notes</h1>
9
+
10
+ To get notification of new releases of Shapelib <i>subscribe</i> to
11
+ the project at www.freshmeat.net. This is currently the only reliable
12
+ way of finding out about new releases since there is no shapelib specific
13
+ mailing list.<p>
14
+
15
+ <b>Release 1.3.0</b>:
16
+ <ul>
17
+ <li> Major rework to us application provided hooks for file io, and error reporting (SAHooks).
18
+ <li> Added contrib/Shape_PointInPoly.cpp from Marko Podgorsek.
19
+ <li> Added shapelib tools documentation from Eduardo Patto Kanegae.
20
+ <li> Added dbf deletion support.
21
+ <li> Added DBFAddNativeFieldType().
22
+ <li> Added DBFDeleteField(), DBFReorderFields() and DBFAlterFields() to
23
+ rework DBF schema.
24
+ <li> likely a variety of other changes - it has been eight years since 1.2.10!
25
+ </ul>
26
+
27
+ <b>Release 1.2.10</b>: Added SHPRewindObject() function, and shprewind utility
28
+ program. Added FTLogical, DBFReadLogicalAttribute() and
29
+ DBFWriteLogicalAttribute() (thanks to Olek Neyman). <p>
30
+
31
+ <b>Release 1.2.9</b>: Good support for reading and writing NULL fields
32
+ in .dbf files, good support for NULL shapes and addition of the
33
+ DBFGetFieldIndex() functions (all contributed by Jim Matthews).<p>
34
+
35
+ An upgraded shputils.c has been contributed by Bill Miller. Daniel
36
+ Morissette contributed DBFGetNativeFieldType(). Better error checking
37
+ for disk errors in dbfopen.c. Various other bug fixes and safety improvements.
38
+ <p>
39
+
40
+ <b>Release 1.2.8</b>: Added hacked libtool support (supplied by Jan)
41
+ and "rpm ready" install logic.<p>
42
+
43
+ <b>Release 1.2.7</b>: Fix record size (was 4 bytes too long). Modify
44
+ SHPReadObject() to handle null shapes properly. Use atof() instead of
45
+ sscanf(). Support .DBF as well as .dbf.<p>
46
+
47
+ <b>Release 1.2.6</b>: Now available under old MIT style license, or at the
48
+ users option, LGPL. Added the contrib directory of stuff from Carl Anderson
49
+ and the shptree.c API for quadtree based spatial searches.<p>
50
+
51
+ <b>Release 1.2.5</b>: SHPOpen() now forcably uses "rb" or "r+b" access string
52
+ to avoid common mistakes on Windows. Also fixed a serious bug with .dbf
53
+ files with a 'F' field type.<p>
54
+
55
+ <b>Release 1.2.4</b>: DBFOpen() will now automatically translate a .shp
56
+ extension to .dbf for convenience. SHPOpen() will try datasets with lower
57
+ and uppercase extension. DBFAddField() now returns the field number,
58
+ not TRUE/FALSE.<p>
59
+
60
+ <b>Release 1.2.3</b>: Disable writing measures to multi-patches as ArcView
61
+ seems to puke on them (as reported by Monika Sester). Add white space
62
+ trimming, and string/numeric attribute interchangability in DBF API
63
+ as suggested by Steve Lime. Dbfdump was updated to include several
64
+ reporting options.<p>
65
+
66
+ <b>Release 1.2.2</b>: Added proper support for multipatch (reading and
67
+ writing) - this release just for testing purposes.<p>
68
+
69
+ <b>Release 1.2</b> is mostly a rewrite of the .shp/.shx access API to account
70
+ for ArcView 3.x 3D shapes, and to encapsulate the shapes in a structure.
71
+ Existing code using the shapefile library will require substantial changes
72
+ to use release 1.2.<p>
73
+
74
+ <b>Release V1.1</b> has been built on a number of platforms, and used by a
75
+ number of people successfully. V1.1 is the first release with the xBase API
76
+ documentation.<p>
77
+
78
+
79
+ </body>
80
+ </html>
@@ -0,0 +1,352 @@
1
+ <html>
2
+ <head>
3
+ <title>ShapeLib Tools - User Guide</title>
4
+ <link href="http://www.maptools.org/maptools.css" rel="stylesheet" type="text/css">
5
+ </head>
6
+
7
+ <body>
8
+ <h1>ShapeLib Tools - User Guide</h1>
9
+ ShapeLib is maintained by Frank Warmerdam<br>
10
+ This guide was created by <a href="http://www.consultoria.eti.br" target="_show">Eduardo Patto Kanegae</a> &lt;&nbsp;eduardo<i>~at~</i>consultoria<i>~dot~</i>eti<i>~dot~</i>br&nbsp;&gt;
11
+ <ul>
12
+ <li><a href="#dbfcreate">dbfcreate</a></li>
13
+ <li><a href="#dbfadd">dbfadd</a></li>
14
+ <li><a href="#dbfdump">dbfdump</a></li>
15
+ <li><a href="#shpcreate">shpcreate</a></li>
16
+ <li><a href="#shpadd">shpadd</a></li>
17
+ <li><a href="#shpdump">shpdump</a></li>
18
+ <li><a href="#shprewind">shprewind</a></li>
19
+ <li><i>Tools from ShapeLib 'contrib' directory</i>
20
+ <ul>
21
+ <li><a href="#dbfinfo">dbfinfo</a></li>
22
+ <li><a href="#dbfcat">dbfcat</a></li>
23
+ <li><a href="#shpinfo">shpinfo</a></li>
24
+ <li><a href="#shpcat">shpcat</a></li>
25
+ <li><a href="#shpcentrd">shpcentrd</a></li>
26
+ <li><a href="#shpdxf">shpdxf</a></li>
27
+ <li><a href="#shpfix">shpfix</a></li>
28
+ <li><a href="#shpproj">shpproj</a></li>
29
+ </ul>
30
+ </li>
31
+
32
+ </ul>
33
+
34
+ <h2><a name="dbfcreate">dbfcreate</a></h2>
35
+ <b>Purpose</b>: creates a new and empty .dbf file.
36
+ <br>
37
+ <b>Usage</b>: <font face="courier">dbfcreate xbase_file [[-s field_name width],[-n field_name width decimals]]...</font>
38
+ <br>
39
+ <ul>
40
+ <li><b>xbase_file</b>: the name of xBase file to be created. Doesn't need the extension.</li>
41
+ <li><b>-s field_name width</b>: creates a string field with name <u>field_name</u> and size <u>width</u>.</li>
42
+ <li><b>-n field_name width decimals</b>: creates a numeric field with name <u>field_name</u>, width of <u>width</u> and with decimals places sized by <u>decimals</u>.</li>
43
+ </ul>
44
+ <b>Example</b>
45
+ <br>
46
+ <font face="courier">$ dbfcreate testbase -s NAME 20, -n AREA 9 3, -n VALUE 9 2</font>
47
+ <br># this will create a file named testbase.dbf with 3 fields: NAME ( string (20)),
48
+ AREA ( float (9,3)) and VALUE ( float (9,2))
49
+ <br>
50
+ <hr>
51
+
52
+ <h2><a name="dbfadd">dbfadd</a></h2>
53
+ <b>Purpose</b>: adds a record into an existing .dbf file.
54
+ <br>
55
+ <b>Usage</b>: <font face="courier">dbfadd xbase_file field_values</font>
56
+ <br>
57
+ <ul>
58
+ <li><b>xbase_file</b>: the name of an existing xBase file.</li>
59
+ <li><b>field_values</b>: list of values to be inserted into the xBase file.
60
+ You must specify a number of values equal to the number of fields the xBase file has.
61
+ The order of values must also reflect the order of fields inside xBase file.</li>
62
+ </ul>
63
+ <b>Example</b>
64
+ <br>
65
+ <font face="courier">$ dbfadd testbase.dbf REGION1 25.656 150.22</font>
66
+ <br># assuming that testbase.dbf has 3 fields( NAME, AREA and VALUE), this command line
67
+ will insert a new record into testbase.dbf with the value "REGION1" for NAME,
68
+ '25.656' for AREA and '150.22' for VALUE field.
69
+ <br>
70
+ <hr>
71
+
72
+ <h2><a name="dbfdump">dbfdump</a></h2>
73
+ <b>Purpose</b>: dumps the content of a xBase file to the terminal.
74
+ <br>
75
+ <b>Usage</b>: <font face="courier">dbfdump [-h] [-r] [-m] xbase_file</font>
76
+ <br>
77
+ <ul>
78
+ <li><b>-h</b>: output header info( field descriptions).</li>
79
+ <li><b>-r</b>: output raw field info, numeric values not reformatted.</li>
80
+ <li><b>-m</b>: output one line per field.</li>
81
+ <li><b>xbase_file</b>: the name of an existing xBase file.</li>
82
+ </ul>
83
+ <b>Example</b>
84
+ <br>
85
+ <font face="courier">$ dbfdump -h testbase.dbf</font>
86
+ <br># assuming that testbase.dbf has 1 record( inserted by previous example using 'dbfadd'),
87
+ this command line will produce the following output:<br>
88
+ <font face="courier">
89
+ Field 0: Type=String, Title=`NAME', Width=20, Decimals=0<br>
90
+ Field 1: Type=Double, Title=`AREA', Width=9, Decimals=3<br>
91
+ Field 2: Type=Double, Title=`VALUE', Width=9, Decimals=2<br>
92
+ NAME AREA VALUE<br>
93
+ REGION1 25.656 150.22
94
+ </font>
95
+ <br>
96
+ <hr>
97
+
98
+ <h2><a name="shpcreate">shpcreate</a></h2>
99
+ <b>Purpose</b>: creates a new and empty shapefile.
100
+ <br>
101
+ <b>Usage</b>: <font face="courier">shpcreate shp_file [point|arc|polygon|multipoint]</font>
102
+ <br>
103
+ <ul>
104
+ <li><b>shp_file</b>: the name of shapefile to be created. Doesn't need the extension.</li>
105
+ <li><b>point/arc/polygon/multipoint</b>: the type of shapefile that you wish to create. You must specify a valid option.</li>
106
+ </ul>
107
+ <b>Example</b>
108
+ <br>
109
+ <font face="courier">$ shpcreate testpolygon polygon</font>
110
+ <br># this will create a point shapefile named testpolygon( in fact testpolygon.shp and testpolygon.shx will be created).
111
+ <br>
112
+ <hr>
113
+
114
+ <h2><a name="shpadd">shpadd</a></h2>
115
+ <b>Purpose</b>: adds a shape into an existing shapefile.
116
+ <br>
117
+ <b>Usage</b>: <font face="courier">shpadd shp_file [[x y] [+]]*</font>
118
+ <br>
119
+ <ul>
120
+ <li><b>shp_file</b>: the name of an existing shapefile.</li>
121
+ <li><b>x<sub><i>1</i></sub> y<sub><i>1</i></sub> x<sub><i>2</i></sub> y<sub><i>2</i></sub> ... x<sub><i>n</i></sub> y<sub><i>n</i></sub></b>: the set of x,y coordinates that describes the shape that you wish to add. Note that you must specify the correct number of parameters for a given type of shapefile. e.g.: for point shapefiles you have to pass 1 pair of XY coordinates and for a polygon shapefile you should pass at least 4 pairs of XY coordinates( where the first and the last point must have the same coordinates).</li>
122
+ </ul>
123
+ <b>Example</b>
124
+ <br>
125
+ <font face="courier">$ shpadd testpolygon 100000 7000000 250000 6500000 200000 6000000 100000 7000000</font>
126
+ <br># assuming that testpolygon is a polygon shapefile, this command line will insert a new shape( a triangle) into testpolygon with the following XY coordinates:<br>
127
+ vertice 0: 100000 7000000 ( this will also be the vertice where the shape starts and ends)<br>
128
+ vertice 1: 250000 6500000<br>
129
+ vertice 2: 200000 6000000<br>
130
+ vertice 3: 100000 7000000<br>
131
+ <hr>
132
+
133
+ <h2><a name="shpdump">shpdump</a></h2>
134
+ <b>Purpose</b>: dumps content of shapefile showing information like shape type, file extents, total of objects and vertices coordinates.
135
+ <br>
136
+ <b>Usage</b>: <font face="courier">shpdump [-validate] shp_file</font>
137
+ <br>
138
+ <ul>
139
+ <li><b>-validate</b>: count the number of objects that has invalid ring orderings.</li>
140
+ <li><b>shp_file</b>: the name of an existing shapefile.</li>
141
+ </ul>
142
+ <b>Example</b>
143
+ <br>
144
+ <font face="courier">$ shpdump testpolygon</font>
145
+ <br># assuming that testpolygon is an existing shapefile previously created, this command line will output the following result:
146
+ <pre>Shapefile Type: Polygon # of Shapes: 1
147
+
148
+ File Bounds: ( 100000.000, 6000000.000,0,0)
149
+ to ( 250000.000, 7000000.000,0,0)
150
+
151
+ Shape:0 (Polygon) nVertices=4, nParts=1
152
+ Bounds:( 100000.000, 6000000.000, 0, 0)
153
+ to ( 250000.000, 7000000.000, 0, 0)
154
+ ( 100000.000, 7000000.000, 0, 0) Ring
155
+ ( 250000.000, 6500000.000, 0, 0)
156
+ ( 200000.000, 6000000.000, 0, 0)
157
+ ( 100000.000, 7000000.000, 0, 0)</pre>
158
+ <hr>
159
+
160
+ <h2><a name="shprewind">shprewind</a></h2>
161
+ <b>Purpose</b>: validates and resets the winding order of rings in polygon geometries to match the ordering required by shapefile specification. This is usefull for shapefiles having troubles when checked with a 'shpdump -validate'.
162
+ <br>
163
+ <b>Usage</b>: <font face="courier">shprewind in_shp_file out_shp_file</font>
164
+ <br>
165
+ <ul>
166
+ <li><b>in_shp_file</b>: the name of an existing shapefile.</li>
167
+ <li><b>out_shp_file</b>: the name of the new fixed shapefile that will be created.</li>
168
+ </ul>
169
+ <b>Example</b>
170
+ <br>
171
+ <font face="courier">$ shprewind badshapefile newshapefile</font>
172
+ <br>
173
+ <hr>
174
+
175
+ <h2><a name="dbfinfo">dbfinfo</a></h2>
176
+ <b>Purpose</b>: displays basic information for a given xBase file, like number of columns, number of records and type of each column.
177
+ <br>
178
+ <b>Usage</b>: <font face="courier">dbfinfo xbase_file</font>
179
+ <br>
180
+ <ul>
181
+ <li><b>xbase_file</b>: the name of an existing xBase file.</li>
182
+ </ul>
183
+ <b>Example</b>
184
+ <br>
185
+ <font face="courier">$ dbfinfo testbase</font>
186
+ <br>
187
+ <pre>Info for testbase.dbf
188
+ 3 Columns, 1 Records in file
189
+ NAME string (20,0)
190
+ AREA float (9,3)
191
+ VALUE float (9,2)
192
+ </pre>
193
+ <br>
194
+ <hr>
195
+
196
+ <h2><a name="dbfcat">dbfcat</a></h2>
197
+ <b>Purpose</b>: appends the records of a source xBase file into a destiny xBase file. Both files must have the same number of fields.
198
+ <br>
199
+ <b>Usage</b>: <font face="courier">dbfcat [-v] [-f] from_DBFfile to_DBFfile</font>
200
+ <br>
201
+ <ul>
202
+ <li><b>-v</b>: verbose mode.</li>
203
+ <li><b>-f</b>: forces data convertion if data field types is not the same at both files or if is there any null value into <u>from_DBFfile</u>.</li>
204
+ <li><b>from_DBFfile</b>: source xBase file.</li>
205
+ <li><b>to_DBFfile</b>: destiny xBase file.</li>
206
+ </ul>
207
+ <b>Example</b>
208
+ <br>
209
+ <font face="courier">$ dbfcat -v testbase1 testbase2</font>
210
+ <br>
211
+ <hr>
212
+
213
+ <h2><a name="shpinfo">shpinfo</a></h2>
214
+ <b>Purpose</b>: displays basic information for a given shapefile, like shapefile type, number of objects and its extents.
215
+ <br>
216
+ <b>Usage</b>: <font face="courier">shpinfo shp_file</font>
217
+ <br>
218
+ <ul>
219
+ <li><b>shp_file</b>: the name of an existing shapefile.</li>
220
+ </ul>
221
+ <b>Example</b>
222
+ <br>
223
+ <font face="courier">$ shpinfo testpolygon</font>
224
+ <br>
225
+ <pre>Info for testpolygon
226
+ Polygon(5), 1 Records in file
227
+ File Bounds: ( 100000, 6000000)
228
+ ( 250000, 7000000)</pre>
229
+ <hr>
230
+
231
+ <h2><a name="shpcat">shpcat</a></h2>
232
+ <b>Purpose</b>: appends the content of a source shapefile into a destiny shapefile. Both files must be the same shapefile type.
233
+ <br>
234
+ <b>Usage</b>: <font face="courier">shpcat from_shpfile to_shpfile</font>
235
+ <br>
236
+ <ul>
237
+ <li><b>from_shpfile</b>: source shapefile</li>
238
+ <li><b>to_shpfile</b>: destiny shapefile</li>
239
+ </ul>
240
+ <b>Example</b>
241
+ <br>
242
+ <font face="courier">$ shpcat shapefile1 shapefile2</font>
243
+ <br>
244
+ <hr>
245
+
246
+ <h2><a name="shpcentrd">shpcentrd</a></h2>
247
+ <b>Purpose</b>: computes XY centroid for polygon shapefiles.
248
+ <br>
249
+ <b>Usage</b>: <font face="courier">shpcentrd shp_file new_shp_file</font>
250
+ <br>
251
+ <ul>
252
+ <li><b>shp_file</b>: the name of an existing polygon shapefile.</li>
253
+ <li><b>new_shp_file</b>: the name of the point shapefile that will created.</li>
254
+ </ul>
255
+ <b>Example</b>
256
+ <br>
257
+ <font face="courier">$ shpcentrd apolygonfile pointcentrd</font>
258
+ <br>
259
+ <hr>
260
+
261
+ <h2><a name="shpdxf">shpdxf</a></h2>
262
+ <b>Purpose</b>: creates a DXF file from an existing shapefile.
263
+ <br>
264
+ <b>Usage</b>: <font face="courier">shpdxf shapefile {idfield}</font>
265
+ <br>
266
+ <ul>
267
+ <li><b>shapefile</b>: the name of an existing shapefile.</li>
268
+ <li><b>idfield</b>: explain</li>
269
+ </ul>
270
+ <b>Example</b>
271
+ <br>
272
+ <font face="courier">$ shpdxf testshapefile IDFIELD</font>
273
+ <br># explain the command
274
+ <br>
275
+ <hr>
276
+
277
+ <h2><a name="shpfix">shpfix</a></h2>
278
+ <b>Purpose</b>: Utility program to fix nulls and inconsistencies in Shapefiles
279
+ as happens from time to time.
280
+ <br>
281
+ <b>Usage</b>: <font face="courier">shpfix shpfile new_file &lt;Record# to Blank&gt;</font>
282
+ <br>
283
+ <ul>
284
+ <li><b>shpfile</b>: input file</li>
285
+ <li><b>new_file</b>: output file</li>
286
+ </ul>
287
+ <b>Example</b>
288
+ <br>
289
+ <font face="courier">$ shpfix broken fixed</font>
290
+ <br>
291
+ <hr>
292
+
293
+ <h2><a name="shpproj">shpproj</a></h2>
294
+ <b>Purpose</b>: Reproject Shapefiles using PROJ.4
295
+ <br>
296
+ <b>Usage</b>: <font face="courier">shpproj shp_file new_shp ( -i=in_proj_file | -i="in_params" | -i=geographic ) ( -o=out_info_file | -o="out_params" | -o=geographic ) </font>
297
+ <br>
298
+ <ul>
299
+ <li><b>param1</b>: explain</li>
300
+ <li><b>param2</b>: explain</li>
301
+ </ul>
302
+ <p>
303
+
304
+ <b>INPUT</b><br>
305
+ Input can come from one of three sources. A projection parameter file,
306
+ directly through parameters or geographic. If the shapefile has an associated
307
+ prj file, name the same as the shapefile but ending in ".prj" it will be used
308
+ by default ignoring all other parameters. If input is omitted it defaults to
309
+ geographic, unless the default prj file exists.<p>
310
+
311
+ <b>OUTPUT</b><br>
312
+ Output can come from one of three sources. A projection parameter file,
313
+ directly through parameters or geographic. If output is omitted it defaults
314
+ to geographic.<p>
315
+
316
+ <b>PROJECTION PARAMETER FILE</b><br>
317
+ This file MUST end with the extension ".prj". It has the form of one
318
+ projection parameter per line. Parameters can be in any order. The
319
+ projection parameters are those used to define a PROJ.4 projection.<p>
320
+
321
+ <b>PROJECTION PARAMETERS</b><br>
322
+ Are the same as used by proj and invproj.<p>
323
+ <pre>
324
+ use proj -lP to see available projections
325
+ proj -lu to see available units
326
+ proj -le to see available ellipsoid
327
+ </pre>
328
+
329
+ Or visit the PROJ.4 web page at <a href="http://www.remotesensing.org/proj">http://www.remotesensing.org/proj</a> for more details.<p>
330
+
331
+ <p>
332
+
333
+ <b>Example</b></br>
334
+
335
+ the following example projects file rowtest to row3, moving data from Stateplane NAD83 zone 1002 to utm zone 16 in meters<p>
336
+
337
+ <pre>
338
+
339
+ shpproj rowtest row -i="init=nad83:1002 units=us-ft" -o="proj=utm zone=16 units=m"
340
+
341
+ shpproj rowtest row3 -o="proj=utm zone=18 units=m" -i="zone=16 proj=utm units=us-ft"
342
+
343
+ shpproj rowtest row3 -o="proj=utm zone=18 units=m"
344
+
345
+ shpproj rowtest row3 -i=myfile.prj -o=geographic
346
+ shpproj rowtest row3 -is=myfile.prj
347
+ </pre>
348
+
349
+ <hr>
350
+
351
+ </body>
352
+ </html>