2011-05-22 21 views
6

Tengo una página sobre senderismo en varios países. Intento crear una página como esta para cada país, pero no estoy seguro de cómo centrar automáticamente el mapa de Google en un país y también hacer que ajuste el enfoque según el tamaño del país.Cómo centrar un mapa de Google en un país si solo tiene el nombre del país

Éstos son mis páginas problemáticas:

http://www.comehike.com/outdoors/country.php?country_id=6&country_name=Belarus

http://www.comehike.com/outdoors/country.php?country_id=1&country_name=United%20States

se ve cómo el centrado y se centran tamaño es estática? Esto es así porque Actualmente utilizo este código para centrar el mapa:

function initialize() 
{ 
    var myLatlng = new google.maps.LatLng(37.775, -122.4183333); 

    var myOptions = 
    { 
     zoom: 2, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
} 

pero eso es sólo porque no estoy seguro de cómo hacer que el nombre del país, y ajustar el tamaño automáticamente. ¿Cómo puedo hacer todo esto pasando el nombre de un país a la función de inicialización?

Gracias!

Respuesta

11

Puede transformar el nombre del país a las coordenadas usando Geocoding service. Ejemplo proporcionado por Google centros un mapa, pero no lo acerca. Para ampliarlo, debe usar el método map.fitBounds() utilizando el objeto LatLngBounds devuelto por el geocodificador. Este es un ejemplo de código:

var myLatlng = new google.maps.LatLng(37.775, -122.4183333); 

var myOptions = 
{ 
    zoom: 2, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

var address = "Belarus"; 
var geocoder = new google.maps.Geocoder(); 
geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     map.fitBounds(results[0].geometry.bounds); 
    } else { 
     alert("Geocode was not successful for the following reason: " + status); 
    } 
}); 
+0

yuri todavía estoy recibiendo algunos errores JS .. aquí es una página de ejemplo: http://www.comehike.com/outdoors/country.php?country_id=1&country_name=United % 20States – Genadinik

+1

Tiene un error debido a esto: '', debe agregar comillas: '' –

Cuestiones relacionadas