Est-ce quelque chose qui peut être fait?
Par exemple, si j'ai créé une superposition sur une carte et que je l'ai enregistrée en tant que fichier de formes, je veux aller modifier cette superposition ( fichier préexistant. ) ... Soit ajouter des points / supprimer des points changer de couleur / fillstyle / etc.
Idéalement, je veux éviter de créer un nouveau fichier de formes et de supprimer l'ancien.
Pensées?
Edit 1: OK, maintenant que quelqu'un a dit que cela pouvait être fait. La question évidente est de savoir comment modifier le fichier de formes (dans ArcObjects de manière grammaticale)?
Edit 2: En regardant les commentaires, il semble que je doive faire quelque chose comme ça, mais je ne suis pas sûr.
J'ai actuellement un fichier de formes de base que je souhaite modifier dans ArcObjects en C #.
J'ai créé un fichier de formes en créant une FeatureClass, un espace de travail, puis en passant évidemment ma forme. Dans ce cas, il s'agit simplement d'une simple polyligne avec quelques points dessus. Ce que j'aimerais faire, c'est avoir la possibilité de mettre à jour ce fichier de formes.
Je suppose que je dois réutiliser cette FeatureClass, Workspace et passer sous une nouvelle forme. Cependant, ce que je fais ne semble pas fonctionner. C'est où j'en suis sur l'édition - tout conseil serait génial.
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: Solution finale
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);
la source
Réponses:
J'ai créé et manipulé un fichier de formes par programmation - alors peut-être que cela peut fournir des conseils pour ajouter des points: enregistrer IGeometry sur le disque en tant que fichier de couche
Quant à la coloration d'un calque, c'est assez simple.
la source