मै तुम्हारा दर्द समझ सकता हू। मैं NetTopologySuite (v1.13) के साथ एक ही तरह की चीज से गुजरा और इकाई परीक्षणों को देखने में कुछ सफलता मिली।
सबसे पहले, आप DotSpatial लाइब्रेरी की जाँच कर सकते हैं, जो डीएस शेपफाइल ऑपरेशंस के लिए एक समान प्रश्न में संदर्भित था
मैं एनटीएस लाइब्रेरी से व्यक्तिगत रूप से खुश हूं। एक बार जब आप ऑब्जेक्ट मॉडल का पता लगा लेते हैं, तो कुछ को एक साथ रखना बहुत ज्यादा उपद्रव नहीं होता है। चूँकि इस विषय को NTS की ओर से एक बार कोड लिखने के लिए त्वरित कोड डंप होने से अधिक संदर्भित किया जाएगा।
1) एनटीएस (1.13.0) बायनेरिज़ डाउनलोड करें
2) निम्नलिखित विधानसभाओं को देखें:
-GeoAPI, NetTopologySuite, NetTopologySuite.IO, NetTopologySuite.IO.GeoTools (यह पता लगाने में कितना समय लगा कि यह पिछले एक के लिए आवश्यक था)
3) कुछ कोड लिखें (यह 10 मिनट का हैक काम है)
NetTopologySuite, NetTopologySuite.IO, NetTopologySuite.Features, GeoAPI, GeoAPI.Geometries के लिए बयानों का उपयोग करके जोड़ें (क्षमा करें, मुझे पता नहीं है कि कैसे एसओ को इनका प्रारूप प्राप्त करने के लिए)
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);
इसलिए, अच्छी तरह से प्रलेखित नहीं किया गया है, लेकिन जब आप जा रहे हैं तो यह काफी महत्वपूर्ण बिंदु है और शूट करें।