Isso é algo que pode ser feito?
Por exemplo, se eu criei uma sobreposição em um mapa e a salvei como um arquivo de forma , quero editar esta sobreposição ( arquivo preexistente. ) ... Adicionar pontos / remover pontos, alterar cor / estilo de preenchimento / etc.
Idealmente, quero evitar criar um novo shapefile e excluir o antigo.
Pensamentos?
Edit 1: OK, agora que alguém disse que isso pode ser feito. A pergunta óbvia é: como você edita o shapefile (no ArcObjects de forma programática)?
Edit 2: Olhando para os comentários, parece que preciso fazer algo assim, mas não tenho certeza.
Atualmente, tenho um shapefile básico que quero editar no ArcObjects em C #.
Eu criei um shapefile criando um FeatureClass, Workspace e, obviamente, passando na minha forma. Nesse caso, é apenas uma polilinha simples com alguns pontos. O que eu gostaria de fazer é ter a capacidade de atualizar esse shapefile.
Estou assumindo que preciso reutilizar esse FeatureClass, Workspace e passar em uma nova forma. No entanto, o que estou fazendo não parece funcionar. Aqui é onde estou na edição - qualquer conselho seria ótimo.
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: Solução final
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);
fonte
Respostas:
Criei e manipulei um shapefile programaticamente - então talvez isso possa fornecer algumas dicas para adicionar pontos: salve o IGeometry em disco como um arquivo de camada
Quanto à coloração de uma camada, isso é bem simples.
fonte