6 votos

¿Editar la clase de característica usando ArcObjects?

Estoy trabajando con algunas clases de características. Creo esas clases de características utilizando mi complemento. El usuario puede añadir/borrar características de estas clases de características haciendo clic en los botones "añadir", "borrar" y seleccionando las características. He añadido características utilizando el siguiente código:

void AddFeature(IFeatureClass featureClass, IGeometry geometry)
{
    IFeature feature = featureClass.CreateFeature();
    feature.Shape = geometry;
    feature.Store();
}

Y las características eliminadas utilizando el siguiente código:

void DeleteFeaturesWithinPolygon(IFeatureClass featureClass, IPolygon polygon)
{
    List<IFeature> features = GetFeaturesWithinPolygon(featureClass, polygon);
    foreach (var feature in features)
        feature.Delete();
}

La cosa es que no utilicé la sesión del editor. Y en realidad, no pensé en ello antes. pero hoy viendo esta pregunta pienso en la sesión de edición. Sé que puedo hacer estas ediciones, sin sesión de edición. De hecho lo estoy haciendo ahora mismo.

0 votos

Después de trabajar con IEditor Creo que lo más sorprendente de esto es la disminución de la cantidad de tiempo. Cuando actualicé 13k características, el tiempo se reduce de 20 minutos a 1 minuto.

6voto

saint_groceon Puntos 2696

Recomiendo comenzar y terminar todas las ediciones dentro de una operación de edición dentro de un try bloque, donde un catch llamaría a AbortOperation .

Algo que siempre me he preguntado es si tiene sentido antes de iniciar una operación de edición comprobar si ya hay una operación en curso, mediante IWorkspaceEdit2.IsInEditOperation .

0 votos

Pero si edito de la manera que lo estoy haciendo ahora, ¿está mal o hay algún tipo de problema?

5voto

Hameno Puntos 129

La ventaja de iniciar una sesión de edición es que puedes utilizar los diferentes editar escuchas de eventos para controlar el flujo de trabajo de edición si es necesario. También tiene la posibilidad de deshacer las ediciones si una característica fue eliminada por error.

3voto

Bauna Puntos 176

Creo que este documento le proporcionará una buena fuente de conocimientos: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#//000100000340000000

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X