jabadia/bdc-wrapper — pull request #13 by jabadia (2014-09-13 15:21:20+00:00)
Title: Revisión

Raul,

Le he dedicado un rato este fin de semana a revisar el bdc-wrapper... he metido unos cuantos cambios en una rama llamada "revision": la deberías poder mergear directamente sobre integracion-bdc y seguir trabajando sobre esta rama

resumiendo:

1. he quitado las promesas para hacerlo todo con async... si te gustan más las promesas, es muy fácil cambiarlo de nuevo para usar promesas

puedes comparar estas versiones

# todo con async
git checkout a542517b027cbe868aca27de195b55e285e64d0a

# exactamente lo mismo, pero con promises
git checkout 9a09fb984817b33b7a460424315b37419227e435

como puedes ver, la filosofía es exactamente la misma y la estructura del código queda muy parecida

después de hacer esta prueba, he seguido trabajando en la rama en la que tenía todo con async, pero si te gusta más usar promesas, no cuesta nada cambiarlo, aplicando los mismos cambios que he hecho entre estas dos versiones. Lo que si tenemos que hacer es elegir una de las dos formas y usarla para todo, no mezclar.

¿Por que se te quedaba tostado? En realidad no era problema de las promesas... El problema es que hay casos en los que no llama(ba)s a renderView(). Siempre hay que terminar la request devolviendo una response, aunque vaya vacía. Ahora mismo funciona bien casi siempre (lo he arreglado en el commit 00323f76d073d4222b1738f0a21b87f5ac4aaa49), pero sigue habiendo casos en los que no se controlan bien los candidatos... ¿Calle Alcala / Puerta de Alcala?

2. projectPoint() le he metido bastante mano:
a) en la misma llamada REST se pueden enviar varios puntos, y de hecho es lo recomendable... he cambiado la funcion para que se reproyecten todos los candidatos en una sola llamada
b) he cambiado de GET a POST, para poder enviar muchos candidatos sin limitaciones
c) he tenido en cuenta la transformación de datum... sin esto, la conversión de coordenadas es erronea
d) lamentablemente el servidor de ArcGIS Online no hace bien la transformación de datum!! he tenido que poner el host a nuestro servidor de demos

3. visor de pruebas: aunque no lo usamos mucho, le he metido alguna mejora
a) ver el json de respuesta
b) poder especificar cuantos candidatos quiero, y ver cuantos me devuelve
c) algún atajo para probar los distintos ejemplos
d) tamaño de fuente de las etiquetas más pequeño
e) mejora del pop-up
f) no hacer conversión de coordenadas... ya deberían venir bien del servidor

4. pruebas, he arreglado las que había y he añadido más pruebas, échales un vistazo, y mantenlas actualizadas y completas

5. NDPs: he relajado las condiciones para detectar un NDP en la dirección que llega ahora puede ser un número solo, o un número de más de 6 digitos (para no coger los códigos postales) con texto delante y detrás