Czy to jest coś, co można zrobić?
Na przykład, jeśli utworzyłem nakładkę na mapie i zapisałem ją jako plik kształtu, chcę przejść i edytować tę ( wcześniej istniejący plik ) . Nakładkę ... Albo dodaj punkty / usuń punkty, zmień kolor / styl wypełnienia / itp.
Idealnie chcę uniknąć tworzenia nowego pliku kształtu i usuwania starego.
Myśli?
Edycja 1: OK, teraz, gdy ktoś powiedział, że można to zrobić. Oczywistym pytaniem jest, w jaki sposób edytujesz plik kształtów (w programie ArcObjects pro gramatycznie)?
Edycja 2: Patrząc na komentarze, wydaje się, że muszę zrobić coś takiego, ale nie jestem pewien.
Obecnie mam podstawowy plik kształtu, który chcę edytować w ArcObjects w C #.
Utworzyłem plik kształtu, tworząc FeatureClass, Workspace, a następnie oczywiście przekazując swój kształt. W tym przypadku jest to po prostu prosta polilinia z kilkoma punktami. Chcę zaktualizować ten plik kształtu.
Zakładam, że muszę ponownie użyć FeatureClass, Workspace i przekazać nowy kształt. Jednak to, co robię, nie działa. Tu jestem przy redakcji - każda rada byłaby świetna.
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);
EDYCJA 3: Ostateczne rozwiązanie
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);