может кто-нибудь сказать мне, как сосредоточиться на стране по имени на Google Maps api v3? Я знаю, как это сделать в v2, но нужно сделать это в v3.
Ура!
Ответ 1
Вы можете использовать геокодирование для поиска Lat/Lng в стране.
Взгляните на образец из Google.
В основном вам нужно сделать что-то вроде этого:
var country = "Germany";
var geocoder;
geocoder.geocode( {'address' : country}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
}
});
В вашей функции инициализации вам нужно установить значение объекта геокодера, например:
geocoder = new google.maps.Geocoder();
Вам нужно будет поработать над тем, каким будет соответствующий уровень масштабирования, а затем установить это, когда вы центрируете карту.
Ответ 2
Этот код работает для меня:
let geocoder = new google.maps.Geocoder();
let 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);
}
});
Ответ 3
Единственный способ, которым я знаю, как это сделать, - это иметь список стран и их соответствующих Lat и Lng, с той информацией, которую вы знаете, вы можете использовать следующий код.
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);