
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!!