2010-12-10 3 views

Antwort

43

Sie können die Geocodierung verwenden, um die Breite/Länge des Landes nachzuschlagen.
Werfen Sie einen Blick auf diese sample von Google.

Im Grunde brauchen Sie so etwas wie dies zu tun:

var country = "Germany"; 
var geocoder; 

geocoder.geocode({'address' : country}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
    } 
}); 

In Ihrem Initialisierungsfunktion müssen Sie den Wert des Geocoder Objekts einzustellen, wie folgt aus:

geocoder = new google.maps.Geocoder(); 

, würden Sie Sie müssen eine geeignete Zoomstufe berechnen und diese dann festlegen, nachdem Sie die Karte zentriert haben.

+0

Ich denke, das ist der sauberste und einfachste Weg, um die Karte neu zu positionieren ... Danke :) –

0

Der einzige Weg, ich weiß, wie es geht, wäre eine Liste der Länder und ihre jeweiligen Lat und Lng, mit dieser Information bekannt, könnten Sie den folgenden Code verwenden.

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); 

Aus Neugier, wie würdest du es in v2 tun?

+0

Sie den Namen des Landes an den Geocoder in der API und verwenden Sie die resultierende lat/lon so wie Sie es getan haben, zur Verfügung gestellt passieren könnte. – RYFN

1

Dieser Code funktioniert für mich:

 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); 
      } 
     });