Как центрировать карту Google на стране по названию
-
20-09-2019 - |
Вопрос
Я использую Google Maps API (v2) и хотел бы центрировать загруженную карту по стране (например, Англии).
На данный момент я центрирую карту с помощью:
map.setCenter(new GLatLng( 43.907787,-79.359741), 9);
Но для этого, очевидно, требуются долгота и широта.
Есть какой-нибудь способ сделать это, вставив название страны?
Решение
var country = "United States"
var map = new GMap2($("#map")[0]);
map.setUIToDefault();
var geocoder = new GClientGeocoder();
geocoder.getLatLng(country, function (point) {
if (!point) {
// Handle error
} else {
map.setCenter(point, 8, G_PHYSICAL_MAP);
}
});
Другие советы
Сначала вам нужно геокодировать адрес:
var geocoder = new google.maps.Geocoder();
var location = "England";
geocoder.geocode( { 'address': location }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
} else {
alert("Could not find location: " + location);
}
});
Подобное преобразование названия местоположения или адреса в широту / долготу называется геокодированием.Google Maps API теперь включает в себя эту возможность:видишь http://code.google.com/apis/maps/documentation/services.html#Geocoding
Они включают в себя образец приложения, в котором вы можете ввести адрес, и это работает, если просто ввести название страны.Я не знаю, направляются ли они точно в центр страны.