È qualcosa che si può fare?
Ad esempio, se ho creato un overlay su una mappa e l'ho salvato come shapefile, voglio andare a modificare questo overlay ( file preesistente. ) ... O aggiungi punti / rimuovi punti cambia colore / fillstyle / etc.
Idealmente, voglio evitare di creare un nuovo shapefile ed eliminare quello vecchio.
Pensieri?
Modifica 1: OK, ora che qualcuno ha detto che può essere fatto. La domanda ovvia è: come si modifica lo shapefile (in ArcObjects in modo pro-grammaticale)?
Modifica 2: guardando i commenti sembra che debba fare qualcosa del genere, ma non ne sono sicuro.
Al momento ho uno shapefile di base che voglio modificare in ArcObjects in C #.
Ho creato uno shapefile creando FeatureClass, Workspace e ovviamente passando nella mia forma. In questo caso è solo una semplice polilinea con alcuni punti. Quello che mi piacerebbe fare è avere la possibilità di aggiornare questo shapefile.
Suppongo di dover riutilizzare quella FeatureClass, Workspace e passare una nuova forma. Tuttavia, quello che sto facendo non sembra funzionare. Questo è il punto in cui mi trovo nella modifica: qualsiasi consiglio sarebbe fantastico.
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: Soluzione finale
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);