<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El vie., 7 jun. 2019 a las 14:50, Mauro Carlevaro (&lt;<a href="mailto:mauroctecno@gmail.com">mauroctecno@gmail.com</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hola comunidad, envío el reporte semanal correspondiente al periodo del 3 al<br>
9 de Junio.<br>
    Qué pude completar esta semana?<br>
En esta semana pude hacer las siguientes tareas:<br>
       * Testear y depurar el código desarrollado.<br>
       * Avanzar en la integración de la regla Must be coincident with con<br>
el framework de topología.<br>
<br>
    Qué voy a hacer la próxima semana?<br>
       * Terminar la integración de la regla con el framework. Estimo que<br>
para el 9th ya estará terminada<br>
       * Hacer la regla: Must be covered by endpoint of<br>
       * Testear y depurar el código desarrollado<br>
       * Continuar documentando<br>
<br>
    Hay algún problema, bloqueo?<br>
    No hay ningún problema, ni bloqueo. Sin embargo, hacer la implementación<br>
me ha llevado más tiempo del que pensé inicialmente, pero al hacer la<br>
primera integración era previsible que lleve más tiempo. Para no atrasar los<br>
demás sprints se planea dedicar más horas en el fin de semana.<br>
<br></blockquote><div><br></div><div>Hola Mauro,<br>he echado un vistazo a lo que estas haciendo y te dejo <br>aqui algunos comentarios:<br><br>En la pagina &quot;Must be coincident with&quot; del wiki &quot;gvsig-gsoc2019-topology&quot; [1]<br>Comentas los pasos que has seguido en el desarrollo de la regla; pero no veo <br>donde describes lo que has hecho u obtenido en ellos. Por ejemplo... &quot;Algorithm <br>design to solve the problema&quot;... ¿ donde explicas cual va a ser o ha sido la <br>aproximacion a la solucion del problema ? <br>- Que datos de entrada tienes<br>- Como lo vas a abordar<br>- Que vas a obtener como salida (lo que va a ir al reporte de errores)<br>- Que acciones vas a implementar para corregir los errores<br>No se si no lo encuentro o es que aun no lo has puesto.</div><div><br></div><div>Por otro lado algunos comentarios sobre el codigo.<br>Hay algunos detalles que harian que la regla fallase durante la ejecucion, bueno,<br>probablemente no llegaria ni a ejecutarse; pero supongo que es que te falto algo <br>por subir a GitHub. Dejando esas cosas a porte, te comento sobre la clase<br>&quot;MustBeCoincidentWithPointRule&quot; [2].<br><br>- Estas usando un punto cuando llamas al query y otro (con un buffer) cuando <br>  llamas a instersects.<br>  Probablementet cuando llamas al query deberias usar tambien el buffer<br>  del punto.<br>  <br>- Cuando construyes la geometria que identifica al error estas haciendo<br>  un disjoin entre el punto con buffer y sin el... uff, no se si eso <br>  es lo adecuado... piensalo, probablemente que pongas el punto (sin buffer)<br>  sea mas adecuado.<br><br>- Echa un vistazo a las lineas 92 y siguientes...<br>  Si ese codigo llega a ejecutarse se producira un error tal cual esta.<br>  Mi consejo es que cambies:<br><br>    if theDataSet2.getSpatialIndex() != None:<br>  <br>  Por algo como:<br>  <br>    if False: #theDataSet2.getSpatialIndex() != None:  <br>  <br>  Para asi probar la ejecucion del else.<br><br>  <br>Comentar tambien sobre por que el &quot;if&quot; ese de si dispongo de indice espacial.<br>Normalmente si estamos trabajando con un shape, se creara el indice espacial <br>de forma automatica y se rellenara cuando vallamos a usarlo de forma implicita o<br>a traves del metodo &quot;query&quot; del DataSet. El problema es que si en lugar de<br>estar usando un shape, estas usando una tabla de BBDD (H2, postgres,...) no<br>se crearan indices espaciales en local. Es cuestion de que esten definidos<br>en la propia BBDD, y entonces, simplemente componiendo el filtro adecuado,<br>normalmente con el &quot;expressionBuilder&quot;, ya los usara la BBDD. Si solo implementamos<br>la solucion usando el &quot;query&quot;, la regla no ira con tablas de BBDD.<br><br>Otra cosa mas, en el fichero json, has dejado acciones vacias... mejor que definas<br>solo las acciones que toquen y no dejes entradas vacias que en un momento dado<br>pueden quedarse ahi y fallar mas adelante.<br><br><br><br>[1] <a href="https://github.com/Maureque/gvsig-gsoc2019-topology/wiki/Must-be-coincident-with">https://github.com/Maureque/gvsig-gsoc2019-topology/wiki/Must-be-coincident-with</a><br>[2] <a href="https://github.com/Maureque/TopologyRuleMustBeCoincidentWithPoint/blob/master/mustBeCoincidentWithPointRule.py">https://github.com/Maureque/TopologyRuleMustBeCoincidentWithPoint/blob/master/mustBeCoincidentWithPointRule.py</a><br><br>Un saludo<br>Joaquin<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Referencias:<br>
Guía base desarrollada por Óscar Martínez para realizar las reglas y la<br>
integración con el módulo de topología. Topology Rules for gvSIG Desktop:<br>
Development guide. Link:<br>
<a href="https://docs.google.com/document/d/1th0CVKOr918ltBI9czTJsRKAYSGnY6xpiY1R2415QMU" rel="noreferrer" target="_blank">https://docs.google.com/document/d/1th0CVKOr918ltBI9czTJsRKAYSGnY6xpiY1R2415QMU</a>)<br>
<br>
TopologyRuleMustBeCoincidentWithPoint código de la integración link:<br>
<a href="https://github.com/Maureque/TopologyRuleMustBeCoincidentWithPoint" rel="noreferrer" target="_blank">https://github.com/Maureque/TopologyRuleMustBeCoincidentWithPoint</a><br>
<br>
GiitHub wiki link:<br>
<a href="https://github.com/Maureque/gvsig-gsoc2019-topology/wiki/New-rules-for-the-Topology-Framework-in-gvSIG-Desktop" rel="noreferrer" target="_blank">https://github.com/Maureque/gvsig-gsoc2019-topology/wiki/New-rules-for-the-Topology-Framework-in-gvSIG-Desktop</a><br>
OSGeo wiki link:<br>
<a href="https://wiki.osgeo.org/wiki/New_rules_for_the_Topology_Framework_in_gvSIG_Desktop" rel="noreferrer" target="_blank">https://wiki.osgeo.org/wiki/New_rules_for_the_Topology_Framework_in_gvSIG_Desktop</a><br>
<br>
Cordiales saludos,<br>
Mauro Carlevaro.<br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://osgeo-org.1560.x6.nabble.com/gvSIG-desarrolladores-f4163512.html" rel="noreferrer" target="_blank">http://osgeo-org.1560.x6.nabble.com/gvSIG-desarrolladores-f4163512.html</a><br>
_______________________________________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" target="_blank">gvSIG_desarrolladores@listserv.gva.es</a><br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br></div></div></div></div></div></div>