Hola Joaquin,

Gracias por los comentarios. Ayer por la tarde subí al GitHub, de nuevo, el 
código rehecho. Efectivamente, la regla que estoy implementando es el 
equivalente a la que mencionas. También, he empezado, como comentas, con una 
simplificación para líneas (no multilíneas) con dos extremos. Con la idea 
general que comentas, 

“Para cada linea, compruebo si el extremo solapa (habra que ver que es 
solapa, podriamos asumir que solapa=intersecta inicialmente) con alguna linea 
del dataset (incluida ella misma). Si no solapa con nadie se considerara un 
error.
Y esto habra que hacerlo con los dos extremos.”

estoy de acuerdo. Ahora bien, respecto a los términos solapar e intersectar lo 
que hecho es comprobar si los vértices de cada línea a analizar son iguales a 
los vértices de otras líneas, y me explico. En cada invocación al método check 
para cada feature1, línea, a analizar, en el caso de índices espaciales, he 
creado un diccionario considerando, a priori, todos los vértices de la línea 
como colgados. Tras realizar el query sobre la línea, comparo cada vértice de 
esa línea con todos los vértices de las líneas resultantes del filtro. En el 
caso de que haya vértices iguales, se modifica el diccionario poniendo ese 
vértice como no colgado . Por último, se recorre cada una de las listas 
generadas y se notifica como error el vértice colgado.

Respecto a lo que comentas del query, ayer me ocurrió una circunstancia con el 
dataset de líneas (testLine2) disponible en el repositorio. La capa tiene 3 
líneas A, B y C. El código analiza A con B y C, B con A, y C con A. No 
considera analizar B con C ni C con B. Entiendo que esto se debe a que el 
filtro descarta estas opciones por no estar “próximas”. No he considerado, 
todavía, poner un buffer. Sin embargo, ¿no habría un riesgo en el código aún 
definiendo un buffer y darse una situación similar a la comentada?

Tampoco he considerado, todavía, el caso de que el extremo de una línea toque 
alguna parte de sí mismo. De hecho, lo he descartado en el código. Habría que 
cambiarlo.

Respecto a las acciones, las comentaré más adelante.

Un saludo

Héctor

_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de 
baja en esta lista, acuda a la siguiente dirección: 
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores

Responder a