[Gvsig_desarrolladores] [SoC] New rules for the Topology Framework in gvSIG Desktop - Reporte semanal - semana 2

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Dom Jun 9 20:11:32 CEST 2019


El vie., 7 jun. 2019 a las 14:50, Mauro Carlevaro (<mauroctecno en gmail.com>)
escribió:

> Hola comunidad, envío el reporte semanal correspondiente al periodo del 3
> al
> 9 de Junio.
>     Qué pude completar esta semana?
> En esta semana pude hacer las siguientes tareas:
>        * Testear y depurar el código desarrollado.
>        * Avanzar en la integración de la regla Must be coincident with con
> el framework de topología.
>
>     Qué voy a hacer la próxima semana?
>        * Terminar la integración de la regla con el framework. Estimo que
> para el 9th ya estará terminada
>        * Hacer la regla: Must be covered by endpoint of
>        * Testear y depurar el código desarrollado
>        * Continuar documentando
>
>     Hay algún problema, bloqueo?
>     No hay ningún problema, ni bloqueo. Sin embargo, hacer la
> implementación
> me ha llevado más tiempo del que pensé inicialmente, pero al hacer la
> primera integración era previsible que lleve más tiempo. Para no atrasar
> los
> demás sprints se planea dedicar más horas en el fin de semana.
>
>
Hola Mauro,
he echado un vistazo a lo que estas haciendo y te dejo
aqui algunos comentarios:

En la pagina "Must be coincident with" del wiki "gvsig-gsoc2019-topology"
[1]
Comentas los pasos que has seguido en el desarrollo de la regla; pero no
veo
donde describes lo que has hecho u obtenido en ellos. Por ejemplo...
"Algorithm
design to solve the problema"... ¿ donde explicas cual va a ser o ha sido
la
aproximacion a la solucion del problema ?
- Que datos de entrada tienes
- Como lo vas a abordar
- Que vas a obtener como salida (lo que va a ir al reporte de errores)
- Que acciones vas a implementar para corregir los errores
No se si no lo encuentro o es que aun no lo has puesto.

Por otro lado algunos comentarios sobre el codigo.
Hay algunos detalles que harian que la regla fallase durante la ejecucion,
bueno,
probablemente no llegaria ni a ejecutarse; pero supongo que es que te falto
algo
por subir a GitHub. Dejando esas cosas a porte, te comento sobre la clase
"MustBeCoincidentWithPointRule" [2].

- Estas usando un punto cuando llamas al query y otro (con un buffer)
cuando
  llamas a instersects.
  Probablementet cuando llamas al query deberias usar tambien el buffer
  del punto.

- Cuando construyes la geometria que identifica al error estas haciendo
  un disjoin entre el punto con buffer y sin el... uff, no se si eso
  es lo adecuado... piensalo, probablemente que pongas el punto (sin buffer)
  sea mas adecuado.

- Echa un vistazo a las lineas 92 y siguientes...
  Si ese codigo llega a ejecutarse se producira un error tal cual esta.
  Mi consejo es que cambies:

    if theDataSet2.getSpatialIndex() != None:

  Por algo como:

    if False: #theDataSet2.getSpatialIndex() != None:

  Para asi probar la ejecucion del else.


Comentar tambien sobre por que el "if" ese de si dispongo de indice
espacial.
Normalmente si estamos trabajando con un shape, se creara el indice
espacial
de forma automatica y se rellenara cuando vallamos a usarlo de forma
implicita o
a traves del metodo "query" del DataSet. El problema es que si en lugar de
estar usando un shape, estas usando una tabla de BBDD (H2, postgres,...) no
se crearan indices espaciales en local. Es cuestion de que esten definidos
en la propia BBDD, y entonces, simplemente componiendo el filtro adecuado,
normalmente con el "expressionBuilder", ya los usara la BBDD. Si solo
implementamos
la solucion usando el "query", la regla no ira con tablas de BBDD.

Otra cosa mas, en el fichero json, has dejado acciones vacias... mejor que
definas
solo las acciones que toquen y no dejes entradas vacias que en un momento
dado
pueden quedarse ahi y fallar mas adelante.



[1]
https://github.com/Maureque/gvsig-gsoc2019-topology/wiki/Must-be-coincident-with
[2]
https://github.com/Maureque/TopologyRuleMustBeCoincidentWithPoint/blob/master/mustBeCoincidentWithPointRule.py

Un saludo
Joaquin


> Referencias:
> Guía base desarrollada por Óscar Martínez para realizar las reglas y la
> integración con el módulo de topología. Topology Rules for gvSIG Desktop:
> Development guide. Link:
>
> https://docs.google.com/document/d/1th0CVKOr918ltBI9czTJsRKAYSGnY6xpiY1R2415QMU
> )
>
> TopologyRuleMustBeCoincidentWithPoint código de la integración link:
> https://github.com/Maureque/TopologyRuleMustBeCoincidentWithPoint
>
> GiitHub wiki link:
>
> https://github.com/Maureque/gvsig-gsoc2019-topology/wiki/New-rules-for-the-Topology-Framework-in-gvSIG-Desktop
> OSGeo wiki link:
>
> https://wiki.osgeo.org/wiki/New_rules_for_the_Topology_Framework_in_gvSIG_Desktop
>
> Cordiales saludos,
> Mauro Carlevaro.
>
>
>
> --
> Sent from:
> http://osgeo-org.1560.x6.nabble.com/gvSIG-desarrolladores-f4163512.html
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en 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
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
gvSIG Association
www.gvsig.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20190609/14e05893/attachment.html>


Más información sobre la lista de distribución gvSIG_desarrolladores