Usando mapas WMS en TangoGPS


Hace una semana me fui de vacaciones a Torroella de Montgri y dado que OSM no tiene mucho nivel de detalle de la zona me plantee usar otras fuentes de mapas para usar el , Neo asi fue como encontre el Institut Cartografic de Catalunya y su servidor de geoservicios.
Esos servicios utilizan el estandard OGC WMS 1.1.1 mientras que el software que utiliza el Neo, TangoGPS ( y otros como Omgps) utilizan el sitema de cuadriculas (tiles) que utiliza OSM para descargarse los mapas.
Asi que he realizado un "traductor" entre entre los dos sistemas para que estos programas puedan descargarse directamente los mapas de los servidores WMS.
Es un script en PHP que pasandole como parametros las numeracion la cuadricula a descargar (x,y) y el nivel de zoom , lanza la peticion corresondiente al servidor WMS con coordenadas UTM, y devuelve la imagen tal como haria OMS.
El primer problema que me encontre es que todo el mundo esta de acuerdo en que la Tierra es redonda pero no se acaban de poner de acuerdo cuan redonda es. Las primera pruebas me daban un decalage de unos 250 metros en el eje y 75 en e eje x.
Haciendo algo de investigacion descubri lo siguiente:
Los dispositivos GPS, Neo incluido, suelen usar el sistema de referencia WGS84 mientras que los servidores WMS europeos utilizan ED50, para hacer cambio de sistemas de referencia ( o cambio de datum) se utilizan una serie de equaciones matematica con unos paremtros dependiendo de la zona donde se este ubicado. en nuestro caso España.
Gracias a $DEITY encontre una clase en PHP bajo licencia GPL que realiza la mayoria de estos calculos, cambio de sistemas de coordenadas latitud-logitud<->UTM, y cambios de datum pero tuve que crear un metodo en la clase para hacer cambio de datum de < WGS84<->ED50 España
Aun asi me seguia dando un decalaje de 170 metros en el eje Y y 5 en el eje X asi que falto de tiempo y conocimientos opte por hacer la cuenta de la vieja contando pixeles y forzando un offset en las coordenadas antes de hacer una peticion al servidor.
Aqui podeis descargar el script PHP y la clase modificada , el scritp es bastante sencillo y lo he dejado preparado para poder incluir mas fuentes de Mapas WMS.
Tambien he creado en el script dos servicios virtuales para el servidor de ICC, "orto", y "topo" que combina los diferentes servicios del WMS para que dependiendo del nivel de zoom introducido utilize el mas adecuado para la resolucion en cuestion.
Es una lastima que Tango no pueada llegar a mas nivel de zoom que 17 ya que estimo que el servicio WMS del ICC permitiria llegar al menos al nivel 18 o 19 dada la resolucion que es capaz.
No lo he colgado on line para su uso directo todavia, los mapas del ICC son libremente descargables siempre que no sea para uso comercial, pero al ser Tuxbrain una empresa, quiesiera hablarlo directametne con el jefe del departamento de servicios Web para que no haya mal entedidos , hasta dentro de un par de semanas el jefe del dpto. no esta accesible, aun asi me han autorizado para publicar el codigo fuente del script con los datos de conexion al ICC como ejemplo de WMS . Solo teneis que ponerlo en vuestro servidor para hacelo funcionar.
una url de ejemplo seria la sigiente
http://vusestro.servidor.ejm/tiletoUMT.php?WMS_server=ICC&WMS_service=orto&z=16&x=33140&y=24452
en tango gps
http://vusestro.servidor.ejm/tiletoUMT.php?WMS_server=ICC&WMS_service=orto&z=%d&x=%d&y=%d
Bueno espero que pueda ser de utilidad para alguien mas que a mi :)
Sitios interesantes con informacion sobre Geografia , Cartografia y GPS:
Institut de Cartografia de Catalunya
http://www.icc.cat
Conversión de datum con el modelo de 7 parámetros Bursa-Wolf
http://recursos.gabrielortiz.com/index.asp?Info=064
GPS y datums
http://www.elgps.com/documentos/consejos/SeleccionDatum.html
















Comments
Post new comment