4 votos

¿Cómo seleccionar características que se cruzan pero no se tocan (usando ArcObjects)?

¿Y cómo lo hago? La función de ArcMap Seleccione por ubicación selecciona también todas las características que tocan, pero sólo necesito las que en realidad se cruzan en la zona.

Actualmente utilizo esriSpatialRelEnum.esriSpatialRelIntersects y no parece haber una opción para lo que necesito. esriSpatialRelOverlaps no es una opción porque no cubre el caso en el que las geometrías son excatamente del mismo tamaño y una sobre otra. esriSpatialRelCrosses tampoco funciona porque no admite la intersección Área/Area.

Entonces, ¿es esto posible?

5voto

Michael La Voie Puntos 56

En su lugar, debe utilizar esriSpatialRelEnum.esriSpatialRelation y establecer el SpatialRelDescription propiedad a pSFilter.SpatialRelDescription = "T***F****" . Esto sólo devolverá las características que tienen los interiores que se cruzan.

1voto

saint_groceon Puntos 2696

Probablemente esto debería ser un comentario, en lugar de una respuesta, pero no puedo incluir imágenes en los comentarios.

La página de ayuda de Uso de la selección por ubicación dice:

Un elemento de destino se seleccionará si la intersección de su geometría con la característica de origen no está vacía, pero la intersección de sus interiores está vacía . Esta es la definición del operador Clementini touch por lo que si la característica de destino toca (según la definición de Clementini) la característica de origen, se selecciona.

Pero la imagen de la derecha muestra (¿incorrectamente?) que un polígono con una intersección interior está seleccionado - el polígono amarillo del medio está delineado con cian, cuando no debería estarlo.

enter image description here

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