<div>Hi Tom</div>
<div> </div>
<div>Now I'm not in home. After I'll try to compile your version of my code. </div>
<div>I don't understand what means of what does this line of text</div>
<div> </div>
<div>int _tmain(int argc, _TCHAR* argv[])</div>
<div> </div>
<div>I don't know. Well I know part of this code is the name of the shapefile.</div>
<div>But the other parameters?</div>
<div> </div>
<div>Well, thanks</div>
<div> </div>
<div>Cheers, Joaquin<br><br> </div>
<div><span class="gmail_quote">2008/2/20, <a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a> <<a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a>>:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Send Shapelib mailing list submissions to<br>       <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>       <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 'help' to<br>
       <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>       <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 "Re: Contents of Shapelib digest..."<br><br><br>Today's Topics:<br><br>  1. Re: Re: Adding a polygon to a shapefile (Tom Kazimiers)<br>
<br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Wed, 20 Feb 2008 11:03:23 +0100<br>From: Tom Kazimiers <<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a>><br>
Subject: Re: [Shapelib] Re: Adding a polygon to a shapefile<br>To: Shapelib Development <<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a>><br>Message-ID: <<a href="mailto:47BBFAEA.8060004@gmx.de">47BBFAEA.8060004@gmx.de</a>><br>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br><br>Joaquin,<br><br>if I make the following to changes to your code it works for me:<br>1. include the C++ version of string (insteat of "string.h" include<br>
<string>)<br>Without this getline could not be found for me.<br>2. Vertices is not initialized - like said before, make sure everything<br>is set up correctly - If you put "Vertices = 7;" in everything is ok.<br>
<br>In particular my version of you code is:<br><br>[CODE]<br>#include "stdafx.h"<br>#include <iostream><br>#include <cstdlib><br>#include "shapefil.h"<br>#include <string><br><br>using namespace std;<br>
<br>int _tmain(int argc, _TCHAR* argv[])<br>{<br>   SHPHandle    hSHP;<br>   DBFHandle    hDBF;<br>   int        nShapeType, Vertices;<br>   string  shape_name, Col1;<br>   SHPObject    *psObject;<br><br>   double X[7], Y[7], X1, Y1;<br>
<br>   X[0] = 220764;<br>   Y[0]= 2343777;<br>   X[1] = 220610;<br>   Y[1]= 2343627;<br>   X[2] = 220818;<br>   Y[2]= 2343477;<br>   X[3] = 221109;<br>   Y[3]= 2343777;<br>   X[4] = 230504;<br>   Y[4]= 2343627;<br>   X[5] = 221102;<br>
   Y[5]= 2343477;<br>   X[6] = X[0];<br>   Y[6] = Y[0];<br><br>   X1 = 220764;<br>   Y1 = 2343777;<br><br>    cout << "Name of the new Shapefile" << endl;<br>   getline(cin,shape_name);<br><br>   cout << "The shapefile is: " << shape_name << endl;<br>
<br>   nShapeType = 5;<br>   Vertices = 7;<br><br><br>   hSHP = SHPCreate( shape_name.c_str(),nShapeType);<br><br>   hDBF = DBFCreate( shape_name.c_str());<br><br>   psObject = SHPCreateSimpleObject( nShapeType, Vertices, X, Y, NULL);<br>
   SHPWriteObject( hSHP, -1, psObject );<br><br><br>   DBFClose( hDBF );<br>   SHPClose( hSHP );<br><br><br><br>   return 0;<br>}<br>[/CODE]<br><br><br>Cheers,<br>Tom<br><br>Joaquin Perez Valera schrieb:<br>> Hi<br>><br>
> I've been trying with CreateSimpleObject but i have not good results.<br>><br>> I wrote the simple code:<br>><br>> [CODE]<br>> #include <iostream><br>> #include <cstdlib><br>> #include "shapefil.h"<br>
> #include "string.h"<br>><br>><br>> using namespace std;<br>> int main()<br>><br>> {<br>>     SHPHandle    hSHP;<br>>     DBFHandle    hDBF;<br>>     int        nShapeType, Vertices;<br>
>     string  shape_name, Col1;<br>>     SHPObject    *psObject;<br>><br>>     double X[7], Y[7], X1, Y1;<br>><br>>     X[0] = 220764;<br>>     Y[0]= 2343777;<br>>     X[1] = 220610;<br>>     Y[1]= 2343627;<br>
>     X[2] = 220818;<br>>     Y[2]= 2343477;<br>>     X[3] = 221109;<br>>     Y[3]= 2343777;<br>>     X[4] = 230504;<br>>     Y[4]= 2343627;<br>>     X[5] = 221102;<br>>     Y[5]= 2343477;<br>>     X[6] = X[0];<br>
>     Y[6] = Y[0];<br>><br>>     X1 = 220764;<br>>     Y1 = 2343777;<br>><br>>      cout << "Name of the new Shapefile" << endl;<br>>     getline(cin,shape_name);<br>><br>>     cout << "The shapefile is: " << shape_name << endl;<br>
><br>>     nShapeType = 5;<br>><br>><br>><br>>     hSHP = SHPCreate( shape_name.c_str(),nShapeType);<br>><br>>     hDBF = DBFCreate( shape_name.c_str());<br>><br>>     psObject = SHPCreateSimpleObject( nShapeType, Vertices, X, Y, NULL);<br>
>     SHPWriteObject( hSHP, -1, psObject );<br>><br>><br>>     DBFClose( hDBF );<br>>     SHPClose( hSHP );<br>><br>><br>><br>>     return 0;<br>> }<br>> [/CODE]<br>><br>> And when I runs it I have the same message error and the shapefile is<br>
> corrupt when I want to open it with ArcCatalog.<br>><br>> Well<br>><br>> See you and thanks.<br>><br>><br>><br>> 2008/2/18, <a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a><br>
> <mailto:<a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a>><br>> <<a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a><br>
> <mailto:<a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a>>>:<br>><br>>     Send Shapelib mailing list submissions to<br>>             <a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a><br>
>     <mailto:<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>>             <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 'help' to<br>>             <a href="mailto:shapelib-request@lists.maptools.org">shapelib-request@lists.maptools.org</a><br>>     <mailto:<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>>             <a href="mailto:shapelib-owner@lists.maptools.org">shapelib-owner@lists.maptools.org</a><br>>     <mailto:<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 "Re: Contents of Shapelib digest..."<br>><br>><br>>     Today's Topics:<br>><br>>        1. Adding a polygon to a shapefile (Joaquin Perez Valera)<br>
>        2. Re: Adding a polygon to a shapefile (Tom Kazimiers)<br>>        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: "Joaquin Perez Valera" <<a href="mailto:joaquinperezvalera@gmail.com">joaquinperezvalera@gmail.com</a><br>>     <mailto:<a href="mailto:joaquinperezvalera@gmail.com">joaquinperezvalera@gmail.com</a>>><br>
>     Subject: [Shapelib] Adding a polygon to a shapefile<br>>     To: <a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a> <mailto:<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a>><br>
>     Message-ID:<br>>             <<a href="mailto:79a4e0710802171430y7dbad9c0p34780e668e3546ff@mail.gmail.com">79a4e0710802171430y7dbad9c0p34780e668e3546ff@mail.gmail.com</a><br>>     <mailto:<a href="mailto:79a4e0710802171430y7dbad9c0p34780e668e3546ff@mail.gmail.com">79a4e0710802171430y7dbad9c0p34780e668e3546ff@mail.gmail.com</a>>><br>
>     Content-Type: text/plain; charset="iso-8859-1"<br>><br>>     Hi<br>><br>>     I can create shapefiles and they are valid when I work with<br>>     ArcCatalog. But<br>>     the shapefiles are empty.<br>
><br>>     Now I'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.<br>>     Then it<br>>     becomes valid for ArcCatalog.<br>
>     Then I create 2 arrays of 7 elements X[7] and Y[7], and give a<br>>     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<br>
>     after<br>>     SHPWriteObject( hSHP, -1, psObject ); to write it<br>>     in my shapefile.<br>><br>>     It's obviously that I'm doing something wrong.<br>>     But I don't know what.<br>
><br>>     Can somebody help me or say me what I'm doing wrong?<br>><br>>     Thanks.<br>><br>><br>>     [CODE]<br>>     #include <iostream><br>>     #include <cstdlib><br>>     #include "shapefil.h"<br>
>     #include "string.h"<br>><br>><br>>     using namespace std;<br>>     int main()<br>><br>>     {<br>>         SHPHandle    hSHP;<br>>         DBFHandle    hDBF;<br>>         int        nShapeType,   nWidth = 3, vertexcount, *panParts,<br>
>     ShapeId,<br>>     nParts;<br>><br>>         string  shape_name, Col1;<br>>         Col1= "Column";<br>><br>>         SHPObject    *psObject;<br>><br>><br>>         cout << "Name of the new Shapefile" << endl;<br>
>         getline(cin,shape_name);<br>><br>>         cout << "The shapefile is: " << shape_name << endl;<br>><br>>         //Here I define the type of shapefile, the 5 is for a polygon.<br>
>         nShapeType=5;<br>><br>><br>>         hSHP = SHPCreate( shape_name.c_str(), nShapeType );<br>><br>>         hDBF = DBFCreate( shape_name.c_str() );<br>><br>><br>>         cout <<"The shape has "<< DBFGetFieldCount( hDBF ) <<"<br>
>     columns" << endl;<br>><br>><br>><br>>         DBFAddField( hDBF, Col1.c_str(), FTInteger,   nWidth, 0 );<br>>         cout <<"Now the shape has " << DBFGetFieldCount( hDBF ) << "<br>
>     columns";<br>><br>>         //At this point the shape is valid for ArcView<br>><br>>         //Here I define an array of seven elements and I'll give a<br>>     coordinate<br>>     for each element<br>
><br>>         double X[7], Y[7];<br>>         X[0] = 220764;<br>>         Y[0]= 2343777;<br>>         X[1] = 220610;<br>>         Y[1]= 2343627;<br>>         X[2] = 220818;<br>>         Y[2]= 2343477;<br>
>         X[3] = 221109;<br>>         Y[3]= 2343777;<br>>         X[4] = 230504;<br>>         Y[4]= 2343627;<br>>         X[5] = 221102;<br>>         Y[5]= 2343477;<br>>         X[6] = X[0];<br>>         Y[6] = Y[0];<br>
><br>><br>>         //I know the number of vertex is 7, six of my polygon and an extra<br>>         //vertex to close the polygon.<br>><br>>         vertexcount = 7;<br>><br>>         //I can't understand what is exactly the panParts variable. :(<br>
><br>>         panParts[0] = 1;<br>>         //What is nParts? For me my polygon has 1 part, an entire<br>>     part. It is<br>>     true?<br>>         nParts = 1;<br>>         //I give a shape id for this unique object.<br>
>         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,<br>>     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't know what is panParts<br>>     //panPartType is NULL because it isn'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>>         psObject = SHPCreateObject(nShapeType, ShapeId, nParts,<br>
>     panParts, NULL,<br>>     vertexcount, X, Y, NULL, NULL );<br>><br>>         SHPWriteObject( hSHP, -1, psObject );<br>><br>>         SHPDestroyObject( psObject );<br>><br>>         DBFClose( hDBF );<br>
><br>>         SHPClose( hSHP );<br>><br>><br>>         return 0;<br>>     }<br>><br>>     [/CODE]<br>>     -------------- next part --------------<br>>     An HTML attachment was scrubbed...<br>
>     URL:<br>>     <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 <<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a> <mailto:<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a>>><br>
>     Subject: Re: [Shapelib] Adding a polygon to a shapefile<br>>     To: Shapelib Development <<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a><br>>     <mailto:<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a>>><br>
>     Message-ID: <<a href="mailto:47B8C49B.3080801@gmx.de">47B8C49B.3080801@gmx.de</a> <mailto:<a href="mailto:47B8C49B.3080801@gmx.de">47B8C49B.3080801@gmx.de</a>>><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,<br>>     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>
>     > Hi<br>>     ><br>>     > I can create shapefiles and they are valid when I work with<br>>     > ArcCatalog. But the shapefiles are empty.<br>>     ><br>>     > Now I'm trying to add objects to my shapefile. I want to add<br>
>     polygons.<br>>     ><br>>     > First I create a shapefile and a dbf file with an a simple column.<br>>     > Then it becomes valid for ArcCatalog.<br>>     > Then I create 2 arrays of 7 elements X[7] and Y[7], and give a valor<br>
>     > to each 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<br>>     > after   SHPWriteObject( hSHP, -1, psObject ); to write it<br>
>     > in my shapefile.<br>>     ><br>>     > It's obviously that I'm doing something wrong.<br>>     > But I don't know what.<br>>     ><br>>     > Can somebody help me or say me what I'm doing wrong?<br>
>     ><br>>     > Thanks.<br>>     ><br>>     ><br>>     > [CODE]<br>>     > #include <iostream><br>>     > #include <cstdlib><br>>     > #include "shapefil.h"<br>
>     > #include "string.h"<br>>     ><br>>     ><br>>     > using namespace std;<br>>     > int main()<br>>     ><br>>     > {<br>>     >     SHPHandle    hSHP;<br>
>     >     DBFHandle    hDBF;<br>>     >     int        nShapeType,   nWidth = 3, vertexcount, *panParts,<br>>     > ShapeId, nParts;<br>>     ><br>>     >     string  shape_name, Col1;<br>>     >     Col1= "Column";<br>
>     ><br>>     >     SHPObject    *psObject;<br>>     ><br>>     ><br>>     >     cout << "Name of the new Shapefile" << endl;<br>>     >     getline(cin,shape_name);<br>
>     ><br>>     >     cout << "The shapefile is: " << shape_name << endl;<br>>     ><br>>     >     //Here I define the type of shapefile, the 5 is for a polygon.<br>>     >     nShapeType=5;<br>
>     ><br>>     ><br>>     >     hSHP = SHPCreate( shape_name.c_str(), nShapeType );<br>>     ><br>>     >     hDBF = DBFCreate( shape_name.c_str() );<br>>     ><br>>     ><br>>     >     cout <<"The shape has "<< DBFGetFieldCount( hDBF ) <<"<br>
>     columns" <<<br>>     > endl;<br>>     ><br>>     ><br>>     ><br>>     >     DBFAddField( hDBF, Col1.c_str(), FTInteger,   nWidth, 0 );<br>>     >     cout <<"Now the shape has " << DBFGetFieldCount( hDBF ) << "<br>
>     columns";<br>>     ><br>>     >     //At this point the shape is valid for ArcView<br>>     ><br>>     >     //Here I define an array of seven elements and I'll give a<br>>     > coordinate for each element<br>
>     ><br>>     >     double X[7], Y[7];<br>>     >     X[0] = 220764;<br>>     >     Y[0]= 2343777;<br>>     >     X[1] = 220610;<br>>     >     Y[1]= 2343627;<br>>     >     X[2] = 220818;<br>
>     >     Y[2]= 2343477;<br>>     >     X[3] = 221109;<br>>     >     Y[3]= 2343777;<br>>     >     X[4] = 230504;<br>>     >     Y[4]= 2343627;<br>>     >     X[5] = 221102;<br>>     >     Y[5]= 2343477;<br>
>     >     X[6] = X[0];<br>>     >     Y[6] = Y[0];<br>>     ><br>>     ><br>>     >     //I know the number of vertex is 7, six of my polygon and an<br>>     extra<br>>     >     //vertex to close the polygon.<br>
>     ><br>>     >     vertexcount = 7;<br>>     ><br>>     >     //I can't understand what is exactly the panParts variable. :(<br>>     ><br>>     >     panParts[0] = 1;<br>>     >     //What is nParts? For me my polygon has 1 part, an entire<br>
>     part. It<br>>     > is true?<br>>     >     nParts = 1;<br>>     >     //I give a shape id for this unique object.<br>>     >     ShapeId=1;<br>>     ><br>>     > //From the shp_api I took this line of code to create a<br>
>     feature/object<br>>     > //SHPCreateObject( nSHPType, iShape, nParts, panPartStart,<br>>     > panPartType,int nVertices, *padfX, * padfY, *padfZ, *padfM );<br>>     > //I have the nShapeType;<br>
>     > //I give the ShapeId<br>>     > //I give the nParts<br>>     > //I don't know what is panParts<br>>     > //panPartType is NULL because it isn'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>>     >     psObject = SHPCreateObject(nShapeType, ShapeId, nParts,<br>
>     panParts,<br>>     > NULL, vertexcount, X, Y, NULL, NULL );<br>>     ><br>>     >     SHPWriteObject( hSHP, -1, psObject );<br>>     ><br>>     >     SHPDestroyObject( psObject );<br>
>     ><br>>     >     DBFClose( hDBF );<br>>     ><br>>     >     SHPClose( hSHP );<br>>     ><br>>     ><br>>     >     return 0;<br>>     > }<br>>     ><br>>     > [/CODE]<br>
>     ><br>>     ><br>>     ------------------------------------------------------------------------<br>>     ><br>>     > _______________________________________________<br>>     > Shapelib mailing list<br>
>     > <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a> <mailto:<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>><br>><br>>     ------------------------------<br>><br>>     Message: 3<br>>     Date: Mon, 18 Feb 2008 00:43:00 +0100<br>>     From: Tom Kazimiers <<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a> <mailto:<a href="mailto:2voodoo@gmx.de">2voodoo@gmx.de</a>>><br>
>     Subject: Re: [Shapelib] Adding a polygon to a shapefile<br>>     To: Shapelib Development <<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a><br>>     <mailto:<a href="mailto:shapelib@lists.maptools.org">shapelib@lists.maptools.org</a>>><br>
>     Message-ID: <<a href="mailto:47B8C684.5040701@gmx.de">47B8C684.5040701@gmx.de</a> <mailto:<a href="mailto:47B8C684.5040701@gmx.de">47B8C684.5040701@gmx.de</a>>><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<br>
>     kind of<br>>     error it is?<br>><br>>     cheers,<br>>     Tom<br>><br>>     Tom Kazimiers schrieb:<br>>     > Hi Joaquin,<br>>     ><br>>     > as fas as I understood you can not make this call:<br>
>     > psObject = SHPCreateObject(nShapeType, ShapeId, nParts, panParts,<br>>     > NULL, 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<br>>     to be<br>>     > the same? In your code they are different.<br>>     > For my writing I use: SHPCreateSimpleObject which implys some<br>
>     NULLs of<br>>     > yours - maybe you could try this, too.<br>>     ><br>>     > bye,<br>>     > Tom<br>>     ><br>>     ><br>>     > Joaquin Perez Valera schrieb:<br>>     >> Hi<br>
>     >><br>>     >> I can create shapefiles and they are valid when I work with<br>>     >> ArcCatalog. But the shapefiles are empty.<br>>     >><br>>     >> Now I'm trying to add objects to my shapefile. I want to add<br>
>     polygons.<br>>     >><br>>     >> First I create a shapefile and a dbf file with an a simple column.<br>>     >> Then it becomes valid for ArcCatalog.<br>>     >> Then I create 2 arrays of 7 elements X[7] and Y[7], and give a<br>
>     valor<br>>     >> to each 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<br>
>     >> after   SHPWriteObject( hSHP, -1, psObject ); to write it<br>>     >> in my shapefile.<br>>     >><br>>     >> It's obviously that I'm doing something wrong.<br>>     >> But I don't know what.<br>
>     >><br>>     >> Can somebody help me or say me what I'm doing wrong?<br>>     >><br>>     >> Thanks.<br>>     >><br>>     >><br>>     >> [CODE]<br>>     >> #include <iostream><br>
>     >> #include <cstdlib><br>>     >> #include "shapefil.h"<br>>     >> #include "string.h"<br>>     >><br>>     >><br>>     >> using namespace std;<br>
>     >> int main()<br>>     >><br>>     >> {<br>>     >>     SHPHandle    hSHP;<br>>     >>     DBFHandle    hDBF;<br>>     >>     int        nShapeType,   nWidth = 3, vertexcount, *panParts,<br>
>     >> ShapeId, nParts;<br>>     >><br>>     >>     string  shape_name, Col1;<br>>     >>     Col1= "Column";<br>>     >>       SHPObject    *psObject;<br>>     >>          cout << "Name of the new Shapefile" << endl;<br>
>     >>     getline(cin,shape_name);<br>>     >><br>>     >>     cout << "The shapefile is: " << shape_name << endl;<br>>     >><br>>     >>     //Here I define the type of shapefile, the 5 is for a polygon.<br>
>     >>     nShapeType=5;<br>>     >>           hSHP = SHPCreate( shape_name.c_str(), nShapeType );<br>>     >><br>>     >>     hDBF = DBFCreate( shape_name.c_str() );<br>>     >>                  cout <<"The shape has "<< DBFGetFieldCount( hDBF )<br>
>     >> <<" columns" << endl;<br>>     >>            DBFAddField( hDBF, Col1.c_str(), FTInteger,<br>>     nWidth, 0 );<br>>     >>     cout <<"Now the shape has " << DBFGetFieldCount( hDBF ) << "<br>
>     >> columns";<br>>     >>        //At this point the shape is valid for ArcView<br>>     >><br>>     >>     //Here I define an array of seven elements and I'll give a<br>>     >> coordinate for each element<br>
>     >>        double X[7], Y[7];<br>>     >>     X[0] = 220764;<br>>     >>     Y[0]= 2343777;<br>>     >>     X[1] = 220610;<br>>     >>     Y[1]= 2343627;<br>>     >>     X[2] = 220818;<br>
>     >>     Y[2]= 2343477;<br>>     >>     X[3] = 221109;<br>>     >>     Y[3]= 2343777;<br>>     >>     X[4] = 230504;<br>>     >>     Y[4]= 2343627;<br>>     >>     X[5] = 221102;<br>
>     >>     Y[5]= 2343477;<br>>     >>     X[6] = X[0];<br>>     >>     Y[6] = Y[0];<br>>     >>           //I know the number of vertex is 7, six of my polygon and<br>>     >> an extra<br>
>     >>     //vertex to close the polygon.<br>>     >>        vertexcount = 7;<br>>     >>        //I can't understand what is exactly the panParts<br>>     variable. :(<br>>     >>        panParts[0] = 1;<br>
>     >>     //What is nParts? For me my polygon has 1 part, an entire part.<br>>     >> It is true?<br>>     >>     nParts = 1;<br>>     >>     //I give a shape id for this unique object.<br>
>     >>     ShapeId=1;<br>>     >>    //From the shp_api I took this line of code to create a<br>>     >> feature/object<br>>     >> //SHPCreateObject( nSHPType, iShape, nParts, panPartStart,<br>
>     >> panPartType,int nVertices, *padfX, * padfY, *padfZ, *padfM );<br>>     >> //I have the nShapeType;<br>>     >> //I give the ShapeId<br>>     >> //I give the nParts<br>>     >> //I don't know what is panParts<br>
>     >> //panPartType is NULL because it isn'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>>     >>     psObject = SHPCreateObject(nShapeType, ShapeId, nParts,<br>>     panParts,<br>>     >> NULL, vertexcount, X, Y, NULL, NULL );<br>>     >>        SHPWriteObject( hSHP, -1, psObject );<br>
>     >>        SHPDestroyObject( psObject );<br>>     >>        DBFClose( hDBF );<br>>     >>       SHPClose( hSHP );<br>>     >>               return 0;<br>>     >> }<br>>     >><br>
>     >> [/CODE]<br>>     >><br>>     >><br>>     ------------------------------------------------------------------------<br>>     >><br>>     >> _______________________________________________<br>
>     >> Shapelib mailing list<br>>     >> <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a> <mailto:<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>>     > _______________________________________________<br>
>     > Shapelib mailing list<br>>     > <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a> <mailto:<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>><br>><br>>     ------------------------------<br>><br>
>     _______________________________________________<br>>     Shapelib mailing list<br>>     <a href="mailto:Shapelib@lists.maptools.org">Shapelib@lists.maptools.org</a> <mailto:<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>
><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><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 7<br>***************************************<br></blockquote></div><br>