Как центрировать карту Google по стране, если у вас есть только название страны

У меня есть страница о походах по разным странам. Я пытаюсь создать такую ​​​​страницу для каждой страны, но не знаю, как автоматически центрировать карту Google по стране, а также настроить фокус в зависимости от размера страны.

Вот мои проблемные страницы:

http://www.comehike.com/outdoors/country.php?country_id=6&country_name=Беларусь< /а>

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

Вы видите, как центрирование и размер фокуса статичны? Это потому, что я в настоящее время использую этот код для центрирования карты:

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);
}

Но это только потому, что я не знаю, как это сделать по названию страны и настроить размер автоматически. Как я могу сделать все это, передав название страны в функцию инициализации?

Спасибо!


person Genadinik    schedule 22.05.2011    source источник


Ответы (1)


Вы можете преобразовать название страны в координаты, используя службу геокодирования. Пример, предоставленный Google, центрирует карту, но не увеличивает ее. Чтобы увеличить его, вы должны использовать метод map.fitBounds(), используя объект LatLngBounds, возвращаемый геокодером. Это пример кода:

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);
    }
});
person Yuri Stuken    schedule 22.05.2011
comment
yuri Я все еще получаю некоторые ошибки JS. Вот пример страницы: comehike.com/outdoors/ - person Genadinik; 22.05.2011
comment
У вас ошибка из-за этого: <body onload="initialize( United States ); ">, вы должны добавить кавычки: <body onload="initialize('United States'); "> - person Yuri Stuken; 22.05.2011