miércoles, 7 de abril de 2010

Un nuevo módulo para Mapstraction

En los últimos días hemos estado trabajando en un nuevo módulo para Mapstraction. Es el módulo de geocodificación. Este módulo ya estaba disponible en la versión inicial de la librería, pero lo hemos refactorizado para que se pueda integrar dentro de la nueva arquitectura.

Hasta ahora no había hablado en el blog de arquitecturas y otras interioridades de Mapstraction, por lo que esto os puede sonar un poco a chino, así que si os interesa, os podéis pasar por la página de IDELab, en la que se comentan los objetivos de este proyecto, así como en la página dedicada de lleno al desarrollo del mismo pasra conocer todas sus particularidades. Otra buena opción es acercarse al blog de uno de los creadores de la librería, Andrew Turner.

Después de esta dosis de literatura sobre los orígenes de la librería, voy a explicar de forma general el trabajo que hemos realizado para dar lugar a este módulo. El módulo de geocodificación es el encargado de comunicarse con los diferentes sistemas de geocodificación existentes. Estos servidores se encargan de, a partir de una información textual (Dirección, código postal) obtener una información geográfica relacionada (coordenadas). De forma sencilla, es lo que hace el cuadro de texto que vemos en la página de Google Maps que al escribir una dirección, nos centra el mapa en ella.

Al igual que sucede con los mapas, hay múltiples servidores que nos proporcionan este tipo de servicios, algunos privados (Google) y otros libres (Cartociudad). Y de la misma forma, cada uno de ellos tiene un API diferente. Por ello, este módulo para Mapstraction pretende crear una capa de abstracción similar para que el desarrollador de mashups geográficos pueda utilizar indistíntamente un servicio de geocodificación u otro, tan sólo indicando el nombre del proveedor como parámetro.

Este servicio ya estaba integrado en la versión inicial de Mapstraction, pero nadie se había dedicado a integrarlo en la nueva arquitectura, labor a la que nos hemos dedicado los últimos días. El proceso seguido ha sido relativamente sencillo porque hemos seguido los mismos pasos que se siguieron para el módulo de mapas. Crear un script en el que se defina la parte común de todas las funcionalidades, y a continuación, diferentes scripts para cada uno de los proveedores integrados. Además de integrar los proveedores de la librería original, he añadido el servicio de Cartociudad, que ya había sido desarrollado para la librería original previamente en otro proyecto del grupo.

De esta manera se integra este módulo dentro de la librería, homogeneizándola, y además aprovechando todas las ventajas que ofrece esta nueva arquitectura, como la modularidad y la orientación a objetos. Además, su uso es muy sencillo y se puede añadir fácilmente a cualquier aplicación. Por ejemplo ya ha sido añadido al módulo Mapstraction CCK para Drupal para mejorar la experiencia del usuario

Este nuevo módulo ya ha sido enviado a la lista oficial de Mapstraction para que sea integrado en la versión oficial de la librería, pero ya se puede disfrutar desde el repositorio público de IDELab.

Espero que lo probéis y sobre todo, que os sea de utilidad!!

No hay comentarios:

Publicar un comentario