SciELO - Scientific Electronic Library Online

 
vol.35 número1Optimizacion de una técnica para la detección de patologías virales en Pleoticus Muelleri (Bate, 1988) en el estuario de Bahía Blanca, ArgentinaMonitoreo de la calidad de datos GPS continuo: la estacion UNSJ (San Juan, Argentina) índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Geoacta

versión On-line ISSN 1852-7744

Geoacta v.35 n.1 Ciudad Autónoma de Buenos Aires ene./jun. 2010

 

NOTA TÉCNICA

Una herramienta cartográfica digital basada en XML para la ciudad de La Plata

Nadia Kreimer y Mauricio Gende

Facultad de Ciencias Astronómicas y Geofísicas, Universidad Nacional de La Plata
kreimer@carina.fcaglp.unlp.edu.ar, mgende@fcaglp.unlp.edu.ar

RESUMEN

El trabajo presenta una aplicación específica desarrollada a partir la integración de dos herramientas informáticas: Google Maps y un lenguaje de programación de alto nivel, en nuestro caso Octave. La API de Google Maps en Javascript permite la construcción de objetos espaciales. Integrando el mismo con algoritmos originales que resuelvan la geocodificación de las calles de La Plata y el manejo de una base de datos es posible brindar un servicio de localización. El ejemplo que se presenta es el de la localización de las farmacias más cercanas a un cierto domicilio. Se le pide a los usuarios que ingresen su dirección; con estos datos le son devueltas las tres farmacias de turno más cercanas. El código resulta fácilmente adaptable a otro tipo de requerimientos: estaciones de servicio, restaurantes, etcétera siendo su única limitación que la geocodificación está desarrollada para la ciudad de La Plata.

Palabras claves: Geocodificación, SIG, Google Maps

ABSTRACT

This paper presents a specific application developed by the integration of two tools: Google Maps and a high level programming language: Octave. The Google Maps API in Javascript allows the construction of space objects. This language integrated with algorithms that solve the original geocoding of the streets of La Plata and management of a database can provide a service location. The example presented is the location of the nearest pharmacies to a certain address. Users are prompted to enter their address and the system returns the three closest pharmacies.The code is easily adaptable to other types of requirements: gas stations, restaurants, etc.; its only limitation is that the geocoding is developed for the city of La Plata.

Keywords: Geocoding, GIS, Google Maps

INTRODUCCIÓN

En 1854 el médico John Snow relacionó la existencia de la bacteria Vibrio cholerae en algunos pozos que proveían agua con la incidencia del cólera en un barrio londinense. La clave del éxito del trabajo estuvo en volcar en una carta dos datos completamente independientes: la localización de pozos de agua y de los enfermos, y relacionarlos entre sí. El trabajo del doctor Snow parece ser el primer antecedente registrado de lo que hoy se conoce como Sistema de Información Geográfico o SIG. Formalizar los conceptos asociados al SIG llevó un tiempo considerable, recién en la década del 60 aparece el primer SIG moderno en el Departamento Federal de Silvicultura y Desarrollo Rural de Canadá (Fisher, 1979) y en la del 80 los primeros productos comerciales como Environmental Systems Research Institute (ESRI).
Hoy podemos decir que un Sistema de Información Geográfico (SIG) es un sistema computarizado para desplegar mapas que trabajan con datos sobreimpuestos al mismo. Es una integración de hardware, software y datos, disenado para capturar, manipular, analizar y desplegar información geográficamente referenciada (Rhind, 1989); un esquema gráfico de SIG se presenta en la figura 1.


Figura 1
. Esquema de un SIG - Sistema de Información Geográfica

El trabajo que aquí se presenta surgió a partir de la necesidad de desarrollar un SIG original donde hubo que resolver, para un problema puntual, todas las componentes involucradas: abstracción de la realidad, selección de un modelo lógico, creación y manipulación de una base de datos, relacionar capas de información, geocodificación de datos, etc. Para eso se buscó un conjunto de herramientas informáticas modernas, simples y de dominio público. De esta manera se logró armar en forma modular un  SIG abierto sin tener que recurrir a los sistemas que habitualmente son comerciales y cerrados. La solución encontrada sigue la tendencia actual de desarrollar cartografía interactiva basada en la Internet lo que permite brindar un servicio sencillo de usar y de acceso masivo.
El problema específico a resolver es el de hallar las tres farmacias más cercanas respecto de la ubicación arbitraria de una persona. La región donde se plantea el problema será el casco urbano de la ciudad de La Plata y en todos los casos las referencias geográficas estarán dadas en el lenguaje natural para los habitantes de una ciudad: el nombre y altura de la calle. La solución consistirá en un mapa donde quede representada con diferentes símbolos tanto la ubicación de la persona como las posibles alternativas de farmacias a donde dirigirse. Para esta aplicación hubo que resolver tres cuestiones: la geocodificación de los datos, el algoritmo para encontrar la distancia mínima y el despliegue gráfico del resultado y disposición de la solución.

METODOLOGÍA

La geocodificación es la asignación de un domicilio, código postal o ciudad a una localización geográfica, generalmente expresada en función de latitud y longitud geográficas. Debido a que los domicilios están a menudo asignados de manera irregular, mientras que la latitud y la longitud lo están de manera mucho más regular, ambas no coinciden de manera perfecta. Una de las finalidades más usuales es la georeferenciación de direcciones postales. Para este procedimiento se requiere de una cartografía base sobre la que referenciar los códigos geográficos. Esta capa base puede ser, por ejemplo, una grilla de calles con sus nombres y números o, como se utiliza en este trabajo, una herramienta cartográfica interactiva basada en un servicio Web: Google Maps. Las direcciones a georeferenciar suelen proceder de valores tabulados, que se posicionan mediante interpolación; a continuación el algoritmo localiza en la capa con ejes de calles el punto en cuestión más aproximado a la realidad, el que dependerá de los algoritmos particulares de geocodificación utilizados.
En la geocodificación inversa, en cambio, el proceso antes explicado es al revés. Se asigna una dirección de calle y un número (ejemplo, calle 51 número 1030) a unas coordenadas (x, y) determinadas. Este número correspondiente a un cierto domicilio es estimado por un algoritmo mediante interpolación a partir de números ya presupuestos. Debe tenerse en cuenta que la geocodificación inversa no devuelve las direcciones reales, sino sólo estimaciones de lo que debería existir en base a datos preexistentes.
En este trabajo la geocodificación se resolvió de la siguiente manera. Se partió de un marco de coordenadas planas local con ejes x e y aproximadamente coincidentes con las calles de La Plata, y con origen en uno de los extremos del casco urbano de esta ciudad, la esquina de las calles 1 y 72. Teniendo en cuenta que: 1) en La Plata  la numeración de las calles varía en 50 unidades cada cuadra, 2) que "Es importante senalar la carencia de la calle 52 en el centro de la ciudad. Todas las cuadras (desde las calles 1 a 31) que corren paralelas en sentido NW-SE tienen 120 metros de lado. Las calles transversales, que corren paralelas en sentido NE-SW, entre las calles, 32 a 44 y de 60 a72, mantienen el módulo de manzana de 120 metros de lado. Pero en la franja de calles céntricas entre la 44 hasta 51 este módulo pierde 10 metros por cuadra en los lados NE y SO, recuperándolo desde 53 a 60." (ver García, T. et. al.) , 3) que la numeración en el eje de las x comienza en calle 32 (comenzando por el número 1) y en el de las y en calle 1 (comenzando por el número 300), puede transformarse la ubicación en términos de calle y número de un cierto usuario en un par (x, y) dentro de un marco de orientación y origen arbitrario. Sabiendo el rumbo geográfico de las calles podemos generar un nuevo par (x', y') alineado con los puntos cardinales:

x' = x cos a + y sin a

y' = – x sin a + y cosa

Estas nuevas coordenadas pueden ser pensadas como incrementos lineales respecto de   la latitud y longitud geográfica del punto tomado como origen del sistema, sin necesidad de realizar una desproyección de las mismas, dado que el área comprendida por el SIG no supera los 12 km2, y no justifica tal operación. Resulta posible entonces finalizar la geocodificación calculando:

donde para la primera igualdad se ha supuesto que la coordenada x se dispone según un arco de paralelo (y que el cos f aparece debido a que los arcos se angostan a medida que la latitud aumenta hacia los polos) y que en la segunda igualdad la coordenada y se dispone según un arco de meridiano.
Estas coordenadas del usuario obtenidas a partir de la  georeferenciación del origen del marco arbitrario serán más o menos exactas según la distancia que separe el origen del usuario ya que los errores se propagan con esta distancia. Por lo tanto solo se utilizarán como una aproximación inicial. El valor final de la geocodificación se obtendrá a partir de 42 puntos georeferenciados y distribuidos homogéneamente en la ciudad, que son las plazas de la ciudad de La Plata. Dadas las coordenadas aproximadas se buscará el punto georeferenciado más cercano y se repetirá el proceso (Figura 2).


Figura 2.
Diagrama de Flujo

Búsqueda numérica de la solución
Para nuestro ejemplo específico el procesamiento numérico de los datos será muy simple.Una vez que se cuenta con las coordenadas geográficas del usuario, y contando con una base de datos con las coordenadas geográficas de las farmacias del casco urbano de La Plata (geocodificadas utilizando el algoritmo descripto en la sección anterior), la búsqueda numérica de la solución se reduce a minimizar la función "distancia". Esta función es definida como la distancia entre el usuario y cada una de las farmacias. La misma es no euclídea, dado que la manera de recorrrer calles de cualquier usuario no es atravesando las cuadras en diagonal. La manera de hallar las tres más cercanas al usuario es ordenando un vector de distancias creado para tal fin:

distancia = Dl + Df

Google maps como herramienta para visualizar y distribuir la resolución del problema
Uno de los últimos pasos en la cadena de tareas de un SIG es el despliegue de una imagen con la resolución del problema planteado. En este punto se ha llegado a armar un mapa "a medida" con la respuesta requerida en forma gráfica.
Si no es necesario difundir el resultado, la solución gráfica puede terminar en la pantalla del monitor del usuario del SIG, pero en caso contrario es necesario encontrar un medio o soporte físico donde poner la información a ser distribuida. El soporte físico de distribución más corriente en estos días es óptico (DVD o CDROM) si se tiene un archivo digital, o impresión sobre papel, si se desea utilizar un medio que una persona pueda usar en forma directa. Una manera alternativa y mucho más potente a las anteriores es la distribución de la información a través de Internet y en particular a través del protocolo de transferencia de hipertexto HTTP, o dicho de manera más sencilla, mediante el uso de navegadores Web.
El uso de la Web se ve potenciado por la interfaz de programación de aplicaciones (API), que no es otra cosa que la posibilidad de incrustar un programa específico dentro de una página Web. En nuestro caso particular ese programa será Google Earth y  la API resultante se llama Google Maps (GM). GM está basado en un conjunto simple de comandos en el lenguaje JavaScript que se escriben como parte del código fuente de una página Web cuando se utiliza algún lenguaje de marcado de hipertexto, como HTML o XHTML.
No vamos a desarrollar aquí en forma completa ni exhaustiva los detalles específicos de programación con GM, los que se pueden obtener en Gibson (Gibson, 2006) o Brown (Brown, 2006). Daremos sí un esquema conceptual de los elementos usados para realizar nuestro trabajo, los que fueron:  Objetos básicos de un mapa: Representados por la carga del mapa en sí mismo en la página Web que despliega el navegador al usuario, el lugar físico que va a ocupar el mapa en la página, las coordenadas donde está centrada la imagen del mapa, el tipo de imagen a mostrar: raster satelital, objetos vectoriales, relieve o mixta y una ventana de información con texto sobreimpresa sobre el mismo.  En nuestro caso la figura que se despliega es un mapa vectorial y no una imagen satelital raster ya que esta última requiere que el usuario la interprete, la misma está centrada en las coordenadas del usuario y se sobreimpone una ventana de información con texto que indica dónde se encuentra el usuario, y las tres farmacias más cercanas. Eventos de mapa: Son las posibles interacciones del usuario mediante el teclado y el ratón cuando este último recorre el mapa o cuando algún botón del ratón es presionado sobre un sitio en particular. En este trabajo se resolvió desplegar por defecto un globo con la localización del usuario y en el caso de las farmacias es posible saber su orden de prioridad cuando se presiona el ratón sobre el símbolo de las mismas.
Controles de mapa: Permiten desplazar la región del mapa, cambiar la escala del mismo ("hacer zoom") y cambiar el tipo de imagen (raster, vectoriales, relieve o mixta). Todos estos controles fueron incluidos en nuestro trabajo. Superposiciones de mapa: Las posibles capas a superponer son las típicas del formato vectorial: puntos (con la posibilidad de ser representados por íconos), polilíneas y polígonos, o una imagen propia de Google Earth (raster, vectoriales, relieve o mixta). Para este desarrollo se superponen solo objetos puntuales (íconos) para el usuario y las farmacias.         

CONCLUSIONES

Se realizó un prototipo de SIG mediante la combinación de herramientas informáticas sencillas y de dominio público. Un problema particular ha sido resuelto mediante este SIG, el que se puede adaptar fácilmente a otros requerimientos como localización de otros lugares o servicios (hospitales, restaurantes, hoteles)  siguiendo diversos criterios (distancia mínima, tipo de comida o precios en un menú, acceso para personas con discapacidad).  La geocodificación del casco urbano de la ciudad de La Plata ha sido resuelta como requisito previo para hallar cualquier solución y se ha mostrado la potencialidad de las API asociadas a Google Earth.
 El disenado modular del trabajo lo hace fácilmente adaptable para otros propósitos y el hecho de que tenga una licencia de código abierto (GPL) libera a quien quiera tomar el proyecto para nuevos desarrollos de los problemas del copyright. La principal limitación del trabajo es que la geocodificación ha sido resuelta solo para una ciudad de diseno altamente geométrico, siendo la solución planteada no apta para otros sitios.

REFERENCIAS

1. Brown, M.C., 2006. Hacking Google Maps and Google Earth. Wiley.         [ Links ]

2. Fisher, T., and Fisher, C., 1979. An Overview of the Canada Geographic Information System (CGIS). in International Symposium On Cartography and Computing: Applications in Health and Environment. Reston, Virginia.         [ Links ]

3. García, T. and Viera, L. M., "I Jornada Histórico Geográfica y Genealógica de Berazategui. La Plata: Una Reflexión Sobre La Ciudad y Su Sociedad", Facultad de Arquitectura y Urbanismo de la Universidad Nacional de La Plata.         [ Links ]

4. Gibson, R. and Erle, S., 2006. Google Maps Hacks. O'Reilly Media. 3pp 66.         [ Links ]

5. Rhind, D.W., 1989. Cartography Past, Present and Future. Elsevier Science & Technology.         [ Links ]

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons