[Shapelib] Adding new shape to shapefile

thecrashteam didier.romain at gmail.com
Thu Jun 5 03:12:47 EDT 2008


Thank you for your help Bram, it is very nice !
So, I did a list of return values of functions used in my code :
DBFCreate returns 375328,
SHPCreate = 379776,
DBFAddField = 0,
DBFWriteStringAttribute = 1,
SHPCreateSimpleObject = 410704,
SHPWriteObject = 0.

I hope you could tell me what these figures mean... And do you know where
could I find documentation about shapelib ?

Thank you again for your help

Romain.



Bram de Greve wrote:
> 
> 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);
>>   
> 
> _______________________________________________
> Shapelib mailing list
> Shapelib at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/shapelib
> 
> 

-- 
View this message in context: http://www.nabble.com/Adding-new-shape-to-shapefile-tp17536792p17663616.html
Sent from the ShapeLib mailing list archive at Nabble.com.




More information about the Shapelib mailing list