Đây có phải là một cái gì đó có thể được thực hiện?
Chẳng hạn, nếu tôi đã tạo một lớp phủ trên bản đồ và lưu nó dưới dạng shapefile, tôi muốn đi và chỉnh sửa lớp phủ này ( tệp có sẵn. ) ... Hoặc thêm điểm / xóa điểm thay đổi màu / fillstyle / v.v.
Lý tưởng nhất là tôi muốn tránh tạo một shapefile mới và xóa cái cũ.
Suy nghĩ?
Chỉnh sửa 1: OK, bây giờ ai đó đã nói nó có thể được thực hiện. Câu hỏi rõ ràng là, làm thế nào để bạn chỉnh sửa shapefile (trong ArcObjects theo ngữ pháp)?
Chỉnh sửa 2: Nhìn vào các bình luận có vẻ như tôi cần phải làm một cái gì đó như thế này, nhưng tôi không chắc chắn.
Tôi hiện có một shapefile cơ bản mà tôi muốn chỉnh sửa trong ArcObjects trong C #.
Tôi đã tạo một shapefile bằng cách tạo FeatureClass, Workspace và sau đó rõ ràng chuyển qua hình dạng của tôi. Trong trường hợp này, nó chỉ là một Polyline đơn giản với một vài điểm trên đó. Những gì tôi muốn làm là có khả năng cập nhật shapefile này.
Tôi giả sử tôi cần sử dụng lại FeatureClass, Workspace đó và chuyển sang hình dạng mới. Tuy nhiên, những gì tôi đang làm dường như không hoạt động. Đây là nơi tôi đang chỉnh sửa - mọi lời khuyên sẽ rất tuyệt.
IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)inWorkspace;
workspaceEdit.StartEditing(true);
workspaceEdit.StartEditOperation();
ComReleaser comReleaser = new ComReleaser();
IFeatureCursor featureCursor = inFeatureClass.Update(null , true);
IFeature feature = null;
while((feature = featureCursor.NextFeature()) != null)
{
int id = feature.Fields.FindField("shape");
IFeatureBuffer featureBuffer = inFeatureClass.CreateFeatureBuffer();
featureCursor.DeleteFeature(); //Delete the old
featureBuffer.Shape = (IGeometry)inShape;
featureCursor.InsertFeature(featureBuffer);
}
workspaceEdit.StopEdidtOperation();
workspaceEdit.StopEditing(true);
EDIT 3: Giải pháp cuối cùng
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);