นี่เป็นสิ่งที่สามารถทำได้หรือไม่?
ตัวอย่างเช่นถ้าฉันสร้างการซ้อนทับบนแผนที่และบันทึกเป็นรูปร่างไฟล์ฉันต้องการไปและแก้ไขการซ้อนทับ( ไฟล์ที่มีอยู่ก่อน ) นี้ ... ทั้งเพิ่มจุด / ลบจุดเปลี่ยนสี / fillstyle / ฯลฯ
เป็นการดีที่ฉันต้องการหลีกเลี่ยงการสร้างรูปร่างไฟล์ใหม่และลบไฟล์เก่า
คิด?
แก้ไข 1: ตกลงตอนนี้มีคนบอกว่าสามารถทำได้ คำถามที่ชัดเจนคือคุณจะแก้ไข shapefile ได้อย่างไร (ใน ArcObjects pro-grammatically)
แก้ไข 2: ดูความคิดเห็นที่ปรากฏฉันต้องทำอะไรแบบนี้ แต่ฉันไม่แน่ใจ
ขณะนี้ฉันมีรูปร่างพื้นฐานที่ฉันต้องการแก้ไขใน ArcObjects ใน C #
ฉันได้สร้าง shapefile โดยสร้าง FeatureClass, Workspace แล้วเห็นได้ชัดว่าผ่านรูปร่างของฉันไปแล้ว ในกรณีนี้มันเป็นแค่โพลีไลน์ที่มีเพียงไม่กี่จุด สิ่งที่ฉันต้องการจะทำคือสามารถอัปเดตรูปร่างไฟล์นี้ได้
ฉันสมมติว่าฉันต้องใช้ FeatureClass, Workspace อีกครั้งและส่งผ่านในรูปแบบใหม่ อย่างไรก็ตามสิ่งที่ฉันทำไม่ได้ผล นี่คือที่ฉันอยู่ในการแก้ไข - คำแนะนำใด ๆ จะดี
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);
แก้ไข 3: ทางออกสุดท้าย
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);