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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top