Це щось, що можна зробити?
Наприклад, якщо я створив накладку на карті і зберег її як файл форми, я хочу перейти та відредагувати це ( попередньо існуючий файл. ) Накладення ... Або додайте точки / видаліть точки, змінить колір / fillstyle / тощо.
В ідеалі я хочу уникати створення нового файлу форм і видалення старого.
Думки?
Редагувати 1: Гаразд, тепер, коли хтось сказав, це можна зробити. Очевидне питання полягає в тому, як ви редагуєте файл форми (в ArcObjects програматично)?
Редагувати 2: Дивлячись на коментарі, здається, мені потрібно щось подібне зробити, але я не впевнений.
Наразі у мене є основний файл форм, який я хочу редагувати в ArcObjects в C #.
Я створив форм-файл, створивши 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);
EDIT 3: Остаточне рішення
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);