ฉันรู้สึกถึงความเจ็บปวดของคุณ. ฉันผ่านสิ่งเดียวกันกับ NetTopologySuite (v1.13) และประสบความสำเร็จในการดูการทดสอบหน่วย
ก่อนอื่นคุณอาจตรวจสอบห้องสมุด DotSpatial ซึ่งอ้างอิงในคำถามที่คล้ายกันเฉพาะสำหรับการดำเนินงานของ DS shapefile
ฉันมีความสุขเป็นการส่วนตัวกับห้องสมุด NTS เมื่อคุณเข้าใจรูปแบบวัตถุแล้วมันก็ไม่ยุ่งยากที่จะรวบรวมบางสิ่งเข้าด้วยกัน เนื่องจากหัวข้อนี้มีแนวโน้มที่จะถูกอ้างถึงมากกว่าหนึ่งครั้งนี่คือการถ่ายโอนข้อมูลรหัสด่วนสำหรับการเขียน shapefiles จาก NTS
1) ดาวน์โหลดไบนารี NTS (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);
ดังนั้นเอกสารไม่ดี แต่มันก็เป็นประเด็นและยิงเมื่อคุณไป