Je ressens ta douleur. J'ai vécu le même genre de chose avec NetTopologySuite (v1.13) et j'ai eu un certain succès en regardant les tests unitaires.
Tout d'abord, vous pouvez consulter la bibliothèque DotSpatial qui a été référencée dans une question similaire spécifique aux opérations de fichiers de formes DS
Je suis personnellement satisfait de la bibliothèque NTS. Une fois que vous avez compris le modèle d'objet, ce n'est pas trop chiant de mettre quelque chose ensemble. Étant donné que cette rubrique sera probablement référencée plus d'une fois, voici un vidage de code rapide pour l'écriture de fichiers de formes à partir de NTS.
1) Téléchargez les fichiers binaires NTS (1.13.0)
2) Référencez les assemblages suivants:
-GeoAPI, NetTopologySuite, NetTopologySuite.IO, NetTopologySuite.IO.GeoTools (devinez combien de temps il a fallu pour comprendre ce dernier était nécessaire)
3) Écrivez du code (c'est un travail de hack de 10 minutes)
ajouter des instructions using pour NetTopologySuite, NetTopologySuite.IO, NetTopologySuite.Features, GeoAPI, GeoAPI.Geometries (désolé, je ne peux pas comprendre comment obtenir SO pour les formater)
string path = @"C:\data\atreides";
string firstNameAttribute = "firstname";
string lastNameAttribute = "lastname";
//create geometry factory
IGeometryFactory geomFactory = NtsGeometryServices.Instance.CreateGeometryFactory();
//create the default table with fields - alternately use DBaseField classes
AttributesTable t1 = new AttributesTable();
t1.AddAttribute(firstNameAttribute, "Paul");
t1.AddAttribute(lastNameAttribute, "Atreides");
AttributesTable t2 = new AttributesTable();
t2.AddAttribute(firstNameAttribute, "Duncan");
t2.AddAttribute(lastNameAttribute, "Idaho");
//create geometries and features
IGeometry g1 = geomFactory.CreatePoint(new Coordinate(300000, 5000000));
IGeometry g2 = geomFactory.CreatePoint(new Coordinate(300200, 5000300));
Feature feat1 = new Feature(g1, t1);
Feature feat2 = new Feature(g2, t2);
//create attribute list
IList<Feature> features = new List<Feature>() { feat1, feat2 };
ShapefileDataWriter writer = new ShapefileDataWriter(path) { Header = ShapefileDataWriter.GetHeader(features[0], features.Count) };
System.Collections.IList featList = (System.Collections.IList)features;
writer.Write(featList);
Donc, pas bien documenté mais c'est assez viser et tirer une fois que vous commencez.