<br>Hi Tom<br><br>Well, I&#39;m working with Dev-C++<br>I compile and run the code, and the compiler creates a myprogram.exe file. <br><br>When I work with myprogram.exe from the command line <br>I can give a name of the new file. The program creates the shapefile, adds a column in the dbf file. <br>
And after it returns the number of columns in the dbf. <br>Then the programm crashes and windows sends the message: <br>&quot;myprogram.exe has encountered a problem and needs to close.&quot;<br><br>and I suposse the problem is in my code. <br>
<br>Well, Thanks for your attention. <br><br><br><br><br><br>sorry - I missed that you actually do have first and last elements the<br>same of your vertex arrays :)<br>But could you please write down where the error appears and what kind of<br>
error it is?<br><br><br><br><div><span class="gmail_quote">2008/2/18, <a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a> &lt;<a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Send Shapelib mailing list submissions to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a><br><br>To subscribe or unsubscribe via the World Wide Web, visit<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://lists.maptools.org/mailman/listinfo/shapelib">http://lists.maptools.org/mailman/listinfo/shapelib</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a><br><br>You can reach the person managing the list at<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:shapelib-owner@lists.maptools.org">shapelib-owner@lists.maptools.org</a><br><br>When replying, please edit your Subject line so it is more specific<br>than &quot;Re: Contents of Shapelib digest...&quot;<br>
<br><br>Today&#39;s Topics:<br><br>&nbsp;&nbsp; 1. Adding a polygon to a shapefile (Joaquin Perez Valera)<br>&nbsp;&nbsp; 2. Re: Adding a polygon to a shapefile (Tom Kazimiers)<br>&nbsp;&nbsp; 3. Re: Adding a polygon to a shapefile (Tom Kazimiers)<br>
<br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Sun, 17 Feb 2008 16:30:21 -0600<br>From: &quot;Joaquin Perez Valera&quot; &lt;<a href="mailto:joaquinperezvalera@gmail.com">joaquinperezvalera@gmail.com</a>&gt;<br>
Subject: [Shapelib] Adding a polygon to a shapefile<br>To: <a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a><br>Message-ID:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a href="mailto:79a4e0710802171430y7dbad9c0p34780e668e3546ff@mail.gmail.com">79a4e0710802171430y7dbad9c0p34780e668e3546ff@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br><br>Hi<br><br>I can create shapefiles and they are valid when I work with ArcCatalog. But<br>the shapefiles are empty.<br><br>Now I&#39;m trying to add objects to my shapefile. I want to add polygons.<br>
<br>First I create a shapefile and a dbf file with an a simple column. Then it<br>becomes valid for ArcCatalog.<br>Then I create 2 arrays of 7 elements X[7] and Y[7], and give a valor to each<br>element. Seven elements because<br>
I want to draw a polygon of six vertices.<br><br>After it I use psObject = SHPCreateObject to create my polygon and after<br>SHPWriteObject( hSHP, -1, psObject ); to write it<br>in my shapefile.<br><br>It&#39;s obviously that I&#39;m doing something wrong.<br>
But I don&#39;t know what.<br><br>Can somebody help me or say me what I&#39;m doing wrong?<br><br>Thanks.<br><br><br>[CODE]<br>#include &lt;iostream&gt;<br>#include &lt;cstdlib&gt;<br>#include &quot;shapefil.h&quot;<br>#include &quot;string.h&quot;<br>
<br><br>using namespace std;<br>int main()<br><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;SHPHandle&nbsp;&nbsp;&nbsp;&nbsp;hSHP;<br>&nbsp;&nbsp;&nbsp;&nbsp;DBFHandle&nbsp;&nbsp;&nbsp;&nbsp;hDBF;<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nShapeType,&nbsp;&nbsp; nWidth = 3, vertexcount, *panParts, ShapeId,<br>nParts;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;&nbsp;shape_name, Col1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Col1= &quot;Column&quot;;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SHPObject&nbsp;&nbsp;&nbsp;&nbsp;*psObject;<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;Name of the new Shapefile&quot; &lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;getline(cin,shape_name);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;The shapefile is: &quot; &lt;&lt; shape_name &lt;&lt; endl;<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;//Here I define the type of shapefile, the 5 is for a polygon.<br>&nbsp;&nbsp;&nbsp;&nbsp;nShapeType=5;<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;hSHP = SHPCreate( shape_name.c_str(), nShapeType );<br><br>&nbsp;&nbsp;&nbsp;&nbsp;hDBF = DBFCreate( shape_name.c_str() );<br><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt;&quot;The shape has &quot;&lt;&lt; DBFGetFieldCount( hDBF ) &lt;&lt;&quot; columns&quot; &lt;&lt; endl;<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;DBFAddField( hDBF, Col1.c_str(), FTInteger,&nbsp;&nbsp; nWidth, 0 );<br>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt;&quot;Now the shape has &quot; &lt;&lt; DBFGetFieldCount( hDBF ) &lt;&lt; &quot; columns&quot;;<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;//At this point the shape is valid for ArcView<br><br>&nbsp;&nbsp;&nbsp;&nbsp;//Here I define an array of seven elements and I&#39;ll give a coordinate<br>for each element<br><br>&nbsp;&nbsp;&nbsp;&nbsp;double X[7], Y[7];<br>&nbsp;&nbsp;&nbsp;&nbsp;X[0] = 220764;<br>&nbsp;&nbsp;&nbsp;&nbsp;Y[0]= 2343777;<br>
&nbsp;&nbsp;&nbsp;&nbsp;X[1] = 220610;<br>&nbsp;&nbsp;&nbsp;&nbsp;Y[1]= 2343627;<br>&nbsp;&nbsp;&nbsp;&nbsp;X[2] = 220818;<br>&nbsp;&nbsp;&nbsp;&nbsp;Y[2]= 2343477;<br>&nbsp;&nbsp;&nbsp;&nbsp;X[3] = 221109;<br>&nbsp;&nbsp;&nbsp;&nbsp;Y[3]= 2343777;<br>&nbsp;&nbsp;&nbsp;&nbsp;X[4] = 230504;<br>&nbsp;&nbsp;&nbsp;&nbsp;Y[4]= 2343627;<br>&nbsp;&nbsp;&nbsp;&nbsp;X[5] = 221102;<br>&nbsp;&nbsp;&nbsp;&nbsp;Y[5]= 2343477;<br>&nbsp;&nbsp;&nbsp;&nbsp;X[6] = X[0];<br>
&nbsp;&nbsp;&nbsp;&nbsp;Y[6] = Y[0];<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;//I know the number of vertex is 7, six of my polygon and an extra<br>&nbsp;&nbsp;&nbsp;&nbsp;//vertex to close the polygon.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;vertexcount = 7;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;//I can&#39;t understand what is exactly the panParts variable. :(<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;panParts[0] = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;//What is nParts? For me my polygon has 1 part, an entire part. It is<br>true?<br>&nbsp;&nbsp;&nbsp;&nbsp;nParts = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;//I give a shape id for this unique object.<br>&nbsp;&nbsp;&nbsp;&nbsp;ShapeId=1;<br><br>//From the shp_api I took this line of code to create a feature/object<br>
//SHPCreateObject( nSHPType, iShape, nParts, panPartStart, panPartType,int<br>nVertices, *padfX, * padfY, *padfZ, *padfM );<br>//I have the nShapeType;<br>//I give the ShapeId<br>//I give the nParts<br>//I don&#39;t know what is panParts<br>
//panPartType is NULL because it isn&#39;t a multipatch file<br>//I know the numer of vertex<br>//I now the number of vertex I have two arrays of coordinates.<br>//padfZ and padfM are NULL, zero.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;psObject = SHPCreateObject(nShapeType, ShapeId, nParts, panParts, NULL,<br>
vertexcount, X, Y, NULL, NULL );<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SHPWriteObject( hSHP, -1, psObject );<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SHPDestroyObject( psObject );<br><br>&nbsp;&nbsp;&nbsp;&nbsp;DBFClose( hDBF );<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SHPClose( hSHP );<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br>}<br><br>[/CODE]<br>
-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: <a href="http://lists.maptools.org/pipermail/shapelib/attachments/20080217/88536964/attachment-0001.html">http://lists.maptools.org/pipermail/shapelib/attachments/20080217/88536964/attachment-0001.html</a><br>
<br>------------------------------<br><br>Message: 2<br>Date: Mon, 18 Feb 2008 00:34:51 +0100<br>From: Tom Kazimiers &lt;<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a>&gt;<br>Subject: Re: [Shapelib] Adding a polygon to a shapefile<br>
To: Shapelib Development &lt;<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a>&gt;<br>Message-ID: &lt;<a href="mailto:47B8C49B.3080801@gmx.de">47B8C49B.3080801@gmx.de</a>&gt;<br>Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br>
<br>Hi Joaquin,<br><br>as fas as I understood you can not make this call:<br>psObject = SHPCreateObject(nShapeType, ShapeId, nParts, panParts, NULL,<br>vertexcount, X, Y, NULL, NULL );<br><br>have you checked if osObject is null afterwards? Please try it.<br>
Could it be that the first and the last vertex of a polygon need to be<br>the same? In your code they are different.<br>For my writing I use: SHPCreateSimpleObject which implys some NULLs of<br>yours - maybe you could try this, too.<br>
<br>bye,<br>Tom<br><br><br>Joaquin Perez Valera schrieb:<br>&gt; Hi<br>&gt;<br>&gt; I can create shapefiles and they are valid when I work with<br>&gt; ArcCatalog. But the shapefiles are empty.<br>&gt;<br>&gt; Now I&#39;m trying to add objects to my shapefile. I want to add polygons.<br>
&gt;<br>&gt; First I create a shapefile and a dbf file with an a simple column.<br>&gt; Then it becomes valid for ArcCatalog.<br>&gt; Then I create 2 arrays of 7 elements X[7] and Y[7], and give a valor<br>&gt; to each element. Seven elements because<br>
&gt; I want to draw a polygon of six vertices.<br>&gt;<br>&gt; After it I use psObject = SHPCreateObject to create my polygon and<br>&gt; after&nbsp;&nbsp; SHPWriteObject( hSHP, -1, psObject ); to write it<br>&gt; in my shapefile.<br>
&gt;<br>&gt; It&#39;s obviously that I&#39;m doing something wrong.<br>&gt; But I don&#39;t know what.<br>&gt;<br>&gt; Can somebody help me or say me what I&#39;m doing wrong?<br>&gt;<br>&gt; Thanks.<br>&gt;<br>&gt;<br>&gt; [CODE]<br>
&gt; #include &lt;iostream&gt;<br>&gt; #include &lt;cstdlib&gt;<br>&gt; #include &quot;shapefil.h&quot;<br>&gt; #include &quot;string.h&quot;<br>&gt;<br>&gt;<br>&gt; using namespace std;<br>&gt; int main()<br>&gt;<br>&gt; {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; SHPHandle&nbsp;&nbsp;&nbsp;&nbsp;hSHP;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; DBFHandle&nbsp;&nbsp;&nbsp;&nbsp;hDBF;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nShapeType,&nbsp;&nbsp; nWidth = 3, vertexcount, *panParts,<br>&gt; ShapeId, nParts;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;shape_name, Col1;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Col1= &quot;Column&quot;;<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; SHPObject&nbsp;&nbsp;&nbsp;&nbsp;*psObject;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Name of the new Shapefile&quot; &lt;&lt; endl;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; getline(cin,shape_name);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;The shapefile is: &quot; &lt;&lt; shape_name &lt;&lt; endl;<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //Here I define the type of shapefile, the 5 is for a polygon.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; nShapeType=5;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; hSHP = SHPCreate( shape_name.c_str(), nShapeType );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; hDBF = DBFCreate( shape_name.c_str() );<br>
&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt;&quot;The shape has &quot;&lt;&lt; DBFGetFieldCount( hDBF ) &lt;&lt;&quot; columns&quot; &lt;&lt;<br>&gt; endl;<br>&gt;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; DBFAddField( hDBF, Col1.c_str(), FTInteger,&nbsp;&nbsp; nWidth, 0 );<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt;&quot;Now the shape has &quot; &lt;&lt; DBFGetFieldCount( hDBF ) &lt;&lt; &quot; columns&quot;;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //At this point the shape is valid for ArcView<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //Here I define an array of seven elements and I&#39;ll give a<br>
&gt; coordinate for each element<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; double X[7], Y[7];<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[0] = 220764;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[0]= 2343777;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[1] = 220610;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[1]= 2343627;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[2] = 220818;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[2]= 2343477;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[3] = 221109;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[3]= 2343777;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[4] = 230504;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[4]= 2343627;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[5] = 221102;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[5]= 2343477;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[6] = X[0];<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[6] = Y[0];<br>&gt;<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; //I know the number of vertex is 7, six of my polygon and an extra<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //vertex to close the polygon.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vertexcount = 7;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //I can&#39;t understand what is exactly the panParts variable. :(<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; panParts[0] = 1;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //What is nParts? For me my polygon has 1 part, an entire part. It<br>&gt; is true?<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; nParts = 1;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; //I give a shape id for this unique object.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ShapeId=1;<br>
&gt;<br>&gt; //From the shp_api I took this line of code to create a feature/object<br>&gt; //SHPCreateObject( nSHPType, iShape, nParts, panPartStart,<br>&gt; panPartType,int nVertices, *padfX, * padfY, *padfZ, *padfM );<br>
&gt; //I have the nShapeType;<br>&gt; //I give the ShapeId<br>&gt; //I give the nParts<br>&gt; //I don&#39;t know what is panParts<br>&gt; //panPartType is NULL because it isn&#39;t a multipatch file<br>&gt; //I know the numer of vertex<br>
&gt; //I now the number of vertex I have two arrays of coordinates.<br>&gt; //padfZ and padfM are NULL, zero.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; psObject = SHPCreateObject(nShapeType, ShapeId, nParts, panParts,<br>&gt; NULL, vertexcount, X, Y, NULL, NULL );<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; SHPWriteObject( hSHP, -1, psObject );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; SHPDestroyObject( psObject );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; DBFClose( hDBF );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; SHPClose( hSHP );<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>
&gt; }<br>&gt;<br>&gt; [/CODE]<br>&gt;<br>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________<br>&gt; Shapelib mailing list<br>&gt; <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a><br>
&gt; <a href="http://lists.maptools.org/mailman/listinfo/shapelib">http://lists.maptools.org/mailman/listinfo/shapelib</a><br>&gt;<br><br><br><br>------------------------------<br><br>Message: 3<br>Date: Mon, 18 Feb 2008 00:43:00 +0100<br>
From: Tom Kazimiers &lt;<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a>&gt;<br>Subject: Re: [Shapelib] Adding a polygon to a shapefile<br>To: Shapelib Development &lt;<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a>&gt;<br>
Message-ID: &lt;<a href="mailto:47B8C684.5040701@gmx.de">47B8C684.5040701@gmx.de</a>&gt;<br>Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br><br>Joaquin,<br><br>sorry - I missed that you actually do have first and last elements the<br>
same of your vertex arrays :)<br>But could you please write down where the error appears and what kind of<br>error it is?<br><br>cheers,<br>Tom<br><br>Tom Kazimiers schrieb:<br>&gt; Hi Joaquin,<br>&gt;<br>&gt; as fas as I understood you can not make this call:<br>
&gt; psObject = SHPCreateObject(nShapeType, ShapeId, nParts, panParts,<br>&gt; NULL, vertexcount, X, Y, NULL, NULL );<br>&gt;<br>&gt; have you checked if osObject is null afterwards? Please try it.<br>&gt; Could it be that the first and the last vertex of a polygon need to be<br>
&gt; the same? In your code they are different.<br>&gt; For my writing I use: SHPCreateSimpleObject which implys some NULLs of<br>&gt; yours - maybe you could try this, too.<br>&gt;<br>&gt; bye,<br>&gt; Tom<br>&gt;<br>&gt;<br>
&gt; Joaquin Perez Valera schrieb:<br>&gt;&gt; Hi<br>&gt;&gt;<br>&gt;&gt; I can create shapefiles and they are valid when I work with<br>&gt;&gt; ArcCatalog. But the shapefiles are empty.<br>&gt;&gt;<br>&gt;&gt; Now I&#39;m trying to add objects to my shapefile. I want to add polygons.<br>
&gt;&gt;<br>&gt;&gt; First I create a shapefile and a dbf file with an a simple column.<br>&gt;&gt; Then it becomes valid for ArcCatalog.<br>&gt;&gt; Then I create 2 arrays of 7 elements X[7] and Y[7], and give a valor<br>
&gt;&gt; to each element. Seven elements because<br>&gt;&gt; I want to draw a polygon of six vertices.<br>&gt;&gt;<br>&gt;&gt; After it I use psObject = SHPCreateObject to create my polygon and<br>&gt;&gt; after&nbsp;&nbsp; SHPWriteObject( hSHP, -1, psObject ); to write it<br>
&gt;&gt; in my shapefile.<br>&gt;&gt;<br>&gt;&gt; It&#39;s obviously that I&#39;m doing something wrong.<br>&gt;&gt; But I don&#39;t know what.<br>&gt;&gt;<br>&gt;&gt; Can somebody help me or say me what I&#39;m doing wrong?<br>
&gt;&gt;<br>&gt;&gt; Thanks.<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; [CODE]<br>&gt;&gt; #include &lt;iostream&gt;<br>&gt;&gt; #include &lt;cstdlib&gt;<br>&gt;&gt; #include &quot;shapefil.h&quot;<br>&gt;&gt; #include &quot;string.h&quot;<br>
&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; using namespace std;<br>&gt;&gt; int main()<br>&gt;&gt;<br>&gt;&gt; {<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; SHPHandle&nbsp;&nbsp;&nbsp;&nbsp;hSHP;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; DBFHandle&nbsp;&nbsp;&nbsp;&nbsp;hDBF;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nShapeType,&nbsp;&nbsp; nWidth = 3, vertexcount, *panParts,<br>
&gt;&gt; ShapeId, nParts;<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;shape_name, Col1;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Col1= &quot;Column&quot;;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHPObject&nbsp;&nbsp;&nbsp;&nbsp;*psObject;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;Name of the new Shapefile&quot; &lt;&lt; endl;<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; getline(cin,shape_name);<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;The shapefile is: &quot; &lt;&lt; shape_name &lt;&lt; endl;<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; //Here I define the type of shapefile, the 5 is for a polygon.<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; nShapeType=5;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hSHP = SHPCreate( shape_name.c_str(), nShapeType );<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; hDBF = DBFCreate( shape_name.c_str() );<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt;&quot;The shape has &quot;&lt;&lt; DBFGetFieldCount( hDBF )<br>
&gt;&gt; &lt;&lt;&quot; columns&quot; &lt;&lt; endl;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBFAddField( hDBF, Col1.c_str(), FTInteger,&nbsp;&nbsp; nWidth, 0 );<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt;&quot;Now the shape has &quot; &lt;&lt; DBFGetFieldCount( hDBF ) &lt;&lt; &quot;<br>
&gt;&gt; columns&quot;;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//At this point the shape is valid for ArcView<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; //Here I define an array of seven elements and I&#39;ll give a<br>&gt;&gt; coordinate for each element<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double X[7], Y[7];<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[0] = 220764;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[0]= 2343777;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[1] = 220610;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[1]= 2343627;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[2] = 220818;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[2]= 2343477;<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[3] = 221109;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[3]= 2343777;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[4] = 230504;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[4]= 2343627;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[5] = 221102;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[5]= 2343477;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; X[6] = X[0];<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Y[6] = Y[0];<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //I know the number of vertex is 7, six of my polygon and<br>&gt;&gt; an extra<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; //vertex to close the polygon.<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vertexcount = 7;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//I can&#39;t understand what is exactly the panParts variable. :(<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;panParts[0] = 1;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; //What is nParts? For me my polygon has 1 part, an entire part.<br>&gt;&gt; It is true?<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; nParts = 1;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; //I give a shape id for this unique object.<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; ShapeId=1;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;//From the shp_api I took this line of code to create a<br>&gt;&gt; feature/object<br>&gt;&gt; //SHPCreateObject( nSHPType, iShape, nParts, panPartStart,<br>&gt;&gt; panPartType,int nVertices, *padfX, * padfY, *padfZ, *padfM );<br>
&gt;&gt; //I have the nShapeType;<br>&gt;&gt; //I give the ShapeId<br>&gt;&gt; //I give the nParts<br>&gt;&gt; //I don&#39;t know what is panParts<br>&gt;&gt; //panPartType is NULL because it isn&#39;t a multipatch file<br>
&gt;&gt; //I know the numer of vertex<br>&gt;&gt; //I now the number of vertex I have two arrays of coordinates.<br>&gt;&gt; //padfZ and padfM are NULL, zero.<br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; psObject = SHPCreateObject(nShapeType, ShapeId, nParts, panParts,<br>
&gt;&gt; NULL, vertexcount, X, Y, NULL, NULL );<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHPWriteObject( hSHP, -1, psObject );<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHPDestroyObject( psObject );<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBFClose( hDBF );<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHPClose( hSHP );<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&gt;&gt; }<br>&gt;&gt;<br>&gt;&gt; [/CODE]<br>&gt;&gt;<br>&gt;&gt; ------------------------------------------------------------------------<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>
&gt;&gt; Shapelib mailing list<br>&gt;&gt; <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a><br>&gt;&gt; <a href="http://lists.maptools.org/mailman/listinfo/shapelib">http://lists.maptools.org/mailman/listinfo/shapelib</a><br>
&gt;&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; Shapelib mailing list<br>&gt; <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a><br>&gt; <a href="http://lists.maptools.org/mailman/listinfo/shapelib">http://lists.maptools.org/mailman/listinfo/shapelib</a><br>
&gt;<br><br><br><br>------------------------------<br><br>_______________________________________________<br>Shapelib mailing list<br><a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a><br><a href="http://lists.maptools.org/mailman/listinfo/shapelib">http://lists.maptools.org/mailman/listinfo/shapelib</a><br>
<br><br>End of Shapelib Digest, Vol 46, Issue 3<br>***************************************<br></blockquote></div><br>