#google-maps #map #google-maps-api-3 #geo
#google-карты #словарь #google-maps-api-3 #география
Вопрос:
У меня есть страница о походах в разных странах. Я пытаюсь создать подобную страницу для каждой страны, но не уверен, как автоматически расположить карту Google по центру страны, а также настроить фокус в зависимости от размера страны.
Вот мои проблемные страницы:
http://www.comehike.com/outdoors/country.php?country_id=6amp;country_name=Belarus
http://www.comehike.com/outdoors/country.php?country_id=1amp;country_name=United States
Вы видите, что центрирование и размер фокуса являются статическими? Это потому, что в настоящее время я использую этот код для центрирования карты:
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);
}
Но это только потому, что я не уверен, как сделать это по названию страны и автоматически настроить размер. Как я могу сделать все это, передав название страны в функцию инициализации?
Спасибо!
Ответ №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);
}
});
Комментарии:
1. юрий, я все еще получаю некоторые ошибки JS.. вот пример страницы: comehike.com/outdoors /…
2. Из-за этого возникает ошибка:
<body onload="initialize( United States ); ">
вам следует добавить кавычки:<body onload="initialize('United States'); ">