Tôi cảm nhận được nỗi đau của bạn. Tôi đã trải qua điều tương tự với NetTopologySuite (v1.13) và đã có một số thành công khi xem xét các bài kiểm tra đơn vị.
Trước hết, bạn có thể kiểm tra thư viện DotSpatial được tham chiếu trong câu hỏi tương tự cụ thể cho các hoạt động shapefile DS
Cá nhân tôi hài lòng với thư viện NTS. Một khi bạn tìm ra mô hình đối tượng, sẽ không quá phiền phức để đặt một cái gì đó lại với nhau. Vì chủ đề này có thể sẽ được tham khảo nhiều hơn một lần ở đây là kết xuất mã nhanh để viết shapefiles từ NTS.
1) Tải xuống các nhị phân NTS (1.13.0)
2) Tham khảo các hội đồng sau đây:
-GeoAPI, NetTopologySuite, NetTopologySuite.IO, NetTopologySuite.IO.GeoTools (đoán xem phải mất bao lâu để tìm ra cái cuối cùng này là bắt buộc)
3) Viết một số mã (đây là một công việc hack 10 phút)
thêm sử dụng các câu lệnh cho NetTopologySuite, NetTopologySuite.IO, NetTopologySuite.Features, GeoAPI, GeoAPI.Geometries (xin lỗi tôi không thể tìm ra cách để SO định dạng chúng)
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);
Vì vậy, không được ghi chép tốt nhưng nó khá quan trọng & bắn một khi bạn đi.