Sunday, September 17, 2006

Conector universal de Google Earth a servidores WMS / Universal connector from Google Earth to WMS servers

Como prometí en mi primer post, aquí está el conector universal que permite dibujar cualquier servicio WMS en Google Earth.

Sé que la versión 4 de Google Earth (versión beta ahora mismo) trae un conector WMS (bastante escondido entre los menús y cuadros de diálogo), pero lo he probado y no ajusta bien los mapas. Y como este conector lo tengo hecho desde abril, me he decidido a hacerlo público.

Me he inspirado en los blog de Chris Tweedie, de Perth, Australia, y en los posts de Jeremy Bartley en mapdex.org, si bien el código es completamente mío. La diferencia es que esta nueva versión del script WMS reflector es independiente de su ubicación con respecto a los servidores, recibiendo el servidor WMS como un parámetro más.

La arquitectura es mucho más sencilla que en el caso de ArcIMS, puesto que una petición WMS GetMap es ya una imagen que se puede superponer en Google Earth, así que el script WMS reflector no tiene más que traducir las peticiones de Google Earth en peticiones WMS GetMap.

Este script WMS reflector está ubicado físicamente en http://www12.asphost4free.com/ogomez2/GE/wms_reflector.asp, y debe recibir obligatoriamente como parámetros el servidor y las coordenadas BBOX definidas automáticamente por el objeto NetworkLink en Google Earth. Opcionalmente puede recibir otros tres parámetros para definir las capas que debe mostrar, si debe mostrarse con el fondo transparente, y el formato de imagen.

Como en el caso del conector para ArcIMS, he creado una aplicación como ejemplo, que permite configurar lo que mostrar en Google Earth a partir de un servidor WMS. Esta aplicación es:

http://www12.asphost4free.com/ogomez2/GE/wms2ge.asp

Es importante tener en cuenta que en dicha página se proporciona una lista muy corta de servidores WMS, hay muchos más que puedes probar.

Esta aplicación ofrece tres posibilidades para configurar el mapa en Google Earth:

  • Mapa simple: como en el ejemplo de ArcIMS, todas las capas se muestran dentro de un solo objeto Network Link de Google Earth.
  • Quad tiles: carga el mapa en un mosaico, resultado de dividir la extensión del mapa en cuatro partes; es más lento, pero proporciona mayor calidad de imagen.
  • Lista de capas: crea un objeto Network Link en Google Earth por cada capa del servicio WMS seleccionada. Es mucho más lento para mostrar todas las capas, pero permite seleccionar las capas que mostrar en Google Earth y cambiar el orden de las mismas.

Que la disfrutéis!

English version

As I promised in my very first post, here you are the universal connector that allows overlaying WMS server's data in Google Earth.

I know that the new Google Earth version (currently beta) includes a quite hidden menu for adding layers from WMS servers. But I tried it, and the maps were not overlaid correctly, so I decided to publish this connector that I actually made in April, this year.

I found my inspiration in Chris Tweedie's blog, from Perth, Australia; and in Jeremy Bartley's posts in mapdex.org; the diference with the original WMS reflector script is that I made it independent from its location over the Internet, because it will receive the server name as another parameter.

The architecture (shown in the diagram above) is much simpler than in the case of the ArcIMS connector, because a WMS GetMap request is actually an image, so there is no need to parse the response back from the WMS server. Google Earth will be able to overlay it just having the correct WMS request.

The WMS reflector script is located in http://www12.asphost4free.com/ogomez2/GE/wms_reflector.asp; it should be invoked with the mandatory parameters WMS server name and BBOX (automatically sent by Google Earth). Optional parameters are the layers to be shown, the transparency of the background, and the map image format.

Just like in the case of the ArcIMS connector. I have created a sample application that allows configuring what to show in Google Earth from a WMS server:

http://www12.asphost4free.com/ogomez2/GE/wms2ge.asp

This example shows a very reduced list of WMS servers, but remember that you can try any WMS compliant server.

This application allows three different ways for creating WMS links for Google Earth:

  • Simple map: like in the ArcIMS example, shows a map with the selected layers in one single Network Link object.
  • Quad tiles: when refreshing, it will divide the map in four tiles to improve the map quality
  • List of layers: it adds one overlay per selected layer to allow turning layers on and off within Google Earth

Enjoy!

4 comments:

geomensura said...

mapserver valle callampa

geomensura said...

mapserver valle callampa

Anonymous said...

Buenas.. Como es que el WMS embebido en GE no ajusta bien los mapas??? podrias especificar el(los) servidor WMS donde has visto este efecto? No seria problema del WMS Server en lugar de GE???

Un saludo.-

Alpinaut said...

Fantástico artículo!