Cómo utilizar imágenes de Open Street Maps

Jueves 4 de diciembre de 2008, por Horacio González Diéguez

Estoy intentando hackear las imágenes de la capa Osmarender de Open Street Maps, para poder utilizarlas en aplicaciones desarrolladas en Processing. Basándome en el trabajo previo desarrollado en Google Maps (Hackear las imágenes de los mapas) he intentado hacer un script que relacione las coordenadas de un punto con la posición X e Y de la imagen que le corresponde en el array de imagenes del mapa.

Sin embargo Open Layers mide las coordenadas en píxeles de los puntos a partir de la esquina superior izquierda del mapa visible y no de toda la red de imágenes que lo componen, de modo que no hay una forma directa de calcular que posición ocuparía considerando el origen el punto situado en el extremo superior izquierdo del array de imagenes del mapa.

  • map.getPixelFromViewPortPx(); => Devuelve las coordenadas en píxeles de un punto en relación a la esquina superior izquierda del div del mapa.
  • map.getLonLatFromViewPortPx(); => Devuelve la latitud y longitud de un punto.
  • map.getTileSize(); => Devuelve el tamaño de las imágenes del mapa.
  • map.baseLayer.maxExtent(); => Devuelve las coordenadas hasta las cuales se extiende la totalidad del mapa, defecto cualquier capa de mapa abarcará el mundo entero.
  • map.baseLayer.getTileBounds(); => Devuelve las coordenadas hasta las cuales se extienden las imágenes precargadas en el div del mapa.

Se podría establecer la diferencia en grados que hay entre dos puntos distantes entre si 256 píxeles y utilizar esta diferencia para calcular el número de imágenes que debería tener el mapa en función de su extensión en grados. El problema es que en una proyección cartográfica la relación entre píxeles y coordenadas geográficas no mantiene la misma proporción en todos los lugares del planeta (para todas las latitudes y longitudes), en función de la proyección escogida determinadas zonas del planeta estarán sujetas a una mayor o menor deformación.

Como solución temporal para ir trabajando con las imágenes de la capa Osmarender he utilizado DOM y jquery para averiguar la URL de una imagen cuando pulso sobre la misma (open_street_map_jquery).

2015 VHPLab. I 2014 I 2013 I
English I Galego