Google Maps api3 con ejemplos
Esta es la primera parte de un manual sobre el Api 3 de google maps. Simplemente es una primera guia para cómo, a partir de pocas lineas de código, poder implementar una aplicación interesante en tu web.
Aportar información geolocalizada está hoy a la orden del día, yo voy a basarme en los ejemplos que proporciona google añadiendo variaciones que amplian su funcionamiento. Para hacerlo de forma más comoda voy a utilizar jQuery 1.4.2 en algunos casos.
Ejemplo ligeramente modificado con jquery:
-muestra un mapa. se puede insertar longitud y latitud numerica y actualizar el mapa. Despues una lista de las propiedades de google.maps
<html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="./jquery.1.4.2.js"></script> <script type="text/javascript"> var myOptions, latlng, map; function initialize() { latlng = new google.maps.LatLng(-34.397, 150.644); myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); } $(document).ready(function(){ $("#buttonver").click(function(){ var latVar,lonVar; latVar = $("#lat").val(); lonVar = $("#lon").val(); latlng = new google.maps.LatLng(latVar, lonVar); myOptions.center=latlng; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); }); }); </script> </head> <body onload="initialize()"> <div id="map_canvas" style="width:400px; height:400px"></div> <label for="lat">latitud</label><input type="text" id="lat" name="lat" value="38.5"/> <label for="lon">longitud</label><input type="text" id="lon" name="lon" value="-0.5"/> <input type="button" id="buttonver" value="ver" />
</body> </html>
Añadimos evento cuando haga click para que muestre la longitud y latitud:
*MEJORA: no hacemos un new Map cuando cambiamos las coordenadas. Usamos el método map.setCenter(latlng)
<html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="./jquery.1.4.2.js"></script> <script type="text/javascript"> var myOptions, latlng, map; function initialize() { latlng = new google.maps.LatLng(-34.397, 150.644); myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); google.maps.event.addListener(map, 'click', function(event) { alert(event.latLng); }); } $(document).ready(function(){ $("#buttonver").click(function(){ var latVar,lonVar; latVar = $("#lat").val(); lonVar = $("#lon").val(); latlng = new google.maps.LatLng(latVar, lonVar); myOptions.center=latlng; map.setCenter(latlng); }); }); </script> </head> <body onload="initialize()"> <div id="map_canvas" style="width:400px; height:400px"></div> <label for="lat">latitud</label><input type="text" id="lat" name="lat" value="38.5"/> <label for="lon">longitud</label><input type="text" id="lon" name="lon" value="-0.5"/> <input type="button" id="buttonver" value="ver" /> </body> </html>
Reseña sobre los eventos posibles:
– ‘click’
– ‘dblclick’
– ‘mouseup’ -> no me va
– ‘mousedown’ -> no me va
– ‘mouseover’
– ’mouseout’
En estos eventos se les pasa un event a la funcion calback que contiene una variable latLng.
– ‘zoom_change’ -> el callback no recibe parámetros
– ‘bounds_changed’
– ‘center_changed’
Enlaces de referencia:
-Tutorial:
http://code.google.com/intl/es/apis/maps/documentation/javascript/tutorial.html
-Referencia:
http://code.google.com/intl/es/apis/maps/documentation/javascript/reference.html
-Ejemplos:
http://code.google.com/intl/es/apis/maps/documentation/javascript/examples/