Bu yapılabilecek bir şey mi?
Örneğin, bir harita üzerinde bir yer paylaşımı oluşturup şekil dosyası olarak kaydettiysem, bu ( önceden var olan dosya ) yer paylaşımını gidip düzenlemek istiyorum ... Nokta ekle / kaldır noktaları renk / dolgu stilini / vb. Değiştirir.
İdeal olarak yeni bir şekil dosyası oluşturmak ve eskisini silmek istemiyorum.
Düşünceler?
Düzenleme 1: Tamam, şimdi birisi yapılabileceğini söyledi. Açık olan soru, şekil dosyasını nasıl düzenlediğinizdir (ArcObjects'te pro-grammatik olarak)?
Edit 2: Görünüşe göre böyle bir şey yapmam gerekiyor, ama emin değilim.
Şu anda C # ArcObjects düzenlemek istediğiniz temel bir şekil dosyası var.
Bir FeatureClass, Çalışma Alanı oluşturarak ve sonra açıkça benim şekil içinde geçirerek bir şekil dosyası oluşturdum. Bu durumda, üzerinde birkaç nokta bulunan basit bir Polyline. Yapmak istediğim şey bu şekil dosyasını güncelleme yeteneğine sahip olmak.
Ben o FeatureClass, Çalışma Alanı yeniden kullanmak ve yeni bir şekil geçmek gerektiğini varsayıyorum. Ancak, yaptığım işe yaramıyor. Düzenlemede olduğum yer burası - herhangi bir tavsiye harika olurdu.
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);
DÜZENLEME 3: Nihai Çözüm
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);