[Shapelib] Adding new shape to shapefile
Bram de Greve
bram.degreve at bramz.net
Wed Jun 4 16:49:36 EDT 2008
The extension has nothing to do with it. At worst, it would create
something like test.shp.shp.
As no files AT ALL are created, the problem probably is within DBFCreate
and SHPCreate, as they should create file files straight away, even
without the data being added. Please, check the return values of
DBFCreate and SHPCreate. Are they null? Probably they are, and that
means the creation of the files simply fail. And thus everything else
fails too.
Try a more simple filename like just "test".
Are you prepared to step through the code in a debug session. Maybe you
can figure out what exactly fails ...
Good luck =)
Bram
thecrashteam schreef:
> Hi Vassilis,
>
>
> I tried what you told me too, but it still not work. No error, but no
> files... It's hopeless !! ^^
> I think there is something wrong against me with this library !!!
>
> Thank you for your reply !
>
> Romain
>
> My code :
>
> //création du dbf
> IntPtr ptrDBFCreate = shpFile.DBFCreate(@"\SD-MMCard\TestParcelle\test");
>
> //création du shapefile
> IntPtr ptrSHPCreate = shpFile.SHPCreate(@"\SD-MMCard\TestParcelle\test",
> ShapeFile.ShapeFile.ShapeType.Point);
>
> //nouvelle colonne dans le dbf
> shpFile.DBFAddField(ptrDBFCreate, @"\SD-MMCard\TestParcelle\test",
> ShapeFile.ShapeFile.DBFFieldType.FTString, 255, 0);
>
> //écriture de la valeur liée au futur shape
> shpFile.DBFWriteStringAttribute(ptrDBFCreate,
> shpFile.DBFGetRecordCount(ptrDBFCreate), 0, "to");
>
> //création du point
> double[] x = new double[1];
> double[] y = new double[1];
> double[] z = new double[1];
> x[0] = 803606;
> y[0] = 803606;
> z[0] = 0;
>
> IntPtr psObject =
> shpFile.SHPCreateSimpleObject(ShapeFile.ShapeFile.ShapeType.Point, 1, x, y,
> z);
>
> //écriture du point dans le shape
> shpFile.SHPWriteObject(ptrSHPCreate, -1, psObject);
>
> //fermeture du dbf et du shapefile
> shpFile.SHPClose(ptrSHPCreate);
> shpFile.DBFClose(ptrDBFCreate);
>
More information about the Shapelib
mailing list