Como centralizar o mapa do Google em um país pelo nome
-
20-09-2019 - |
Pergunta
Estou usando a API do Google Maps (V2) e gostaria de centralizar o mapa Onload em um país (por exemplo, Inglaterra).
No momento, centralizo o mapa usando:
map.setCenter(new GLatLng( 43.907787,-79.359741), 9);
Mas isso obviamente requer longitude e latitude.
Alguma maneira de fazer isso inserindo o nome de um país?
Solução
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);
}
});
Outras dicas
Você precisa geocodificar o endereço primeiro:
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);
}
});
Transformando um nome ou endereço de localização em uma latitude/longitude como essa é chamada de geocodificação. A API do Google Maps agora inclui esta capacidade: ver http://code.google.com/apis/maps/documentation/services.html#geocoding
Eles incluem um aplicativo de amostra em que você pode digitar um endereço e funciona para simplesmente digitar um nome de país. Não sei se eles estão indo para o centro exato do país.