12 jul. 2010

Acceso abierto a Google Maps desde OpenLayers


Ya se puede acceder con OpenLayers a las nuevas capas de Google Maps API V.3., para las que no es necesario disponer de una clave.
Para ello hay que incorporar el siguiente script a nuestra página:

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>

Por el momento tenemos que utilizar el API de OpenLayers que se encuentra en la siguiente dirección:

<script src="http://www.openlayers.org/dev/OpenLayers.js"></script>

La forma de construir las capas difiere un poco de la versión anterior y se debe hacer como se indica a continuación:

var gphy = new OpenLayers.Layer.Google(
"Google Physical",
{type: google.maps.MapTypeId.TERRAIN}
);

var gmap = new OpenLayers.Layer.Google(
"Google Streets", // the default
{numZoomLevels: 20}
);

var ghyb = new OpenLayers.Layer.Google(
"Google Hybrid",
{type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20}
);

var gsat = new OpenLayers.Layer.Google(
"Google Satellite",
{type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22}
);

Las nuevas capas vienen en la proyección Spherical Mercator por lo que tendremos que transformar las coordenadas de Latitud y Longitud a dicha proyección:

map.setCenter(new OpenLayers.LonLat(10.2, 48.9).transform(
new OpenLayers.Projection("EPSG:4326"),
new OpenLayers.Projection("EPSG:900913")
), 5);

A futuro OpenLayers prepara una nueva capa OpenLayers.Layer.Google.v3 que vendrá preconfigurada con la proyección Spherical Mercator a la manera de las capas de OSM.

Puedes consultar un ejemplo completo en el siguiente enlace: google-v3.html

Para consultar información ampliada sobre el tema puedes ojear las siguientes páginas:
Google Maps V3 for OpenLayers
Google Maps Javascript API V.3

Publicado por Santiago Higuera
http://ingemoral.es/wordpress

1 comentario:

Santiago Higuera dijo...

Desde el día 10 de Septiembre de 2010 está activa la version OpenLayers 2.10 que incorpora las carácteristicas mencionadas en el artículo. Por lo tanto se puede acceder a ellas a través del enlace normal de OpenLayers:
http://www-openlayers.org/api/OpenLayers.js

Fdo.: Santiago Higuera