2009-11-16 23 views
13

我正在使用谷歌地圖API(v2)並希望將地圖放在一個國家(例如英格蘭)的中心。如何將谷歌地圖按照名稱居中國

目前我中心使用地圖:

map.setCenter(new GLatLng(43.907787,-79.359741), 9); 

但這顯然需要經度和緯度。

任何方式通過插入一個國家的名字做到這一點?

+0

這個問題涉及到谷歌地圖API第2版,現在已過期。 Mabe我們應該編輯它以保持它最新? – 2017-08-30 11:56:37

回答

16
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); 
    } 
}); 
+0

我接受的問題我實際上首先使用它來實現它,但後來我轉移到您的代碼,它在我的設置中效果更好......謝謝 – 2009-11-16 20:04:54

+0

將此更改爲接受的答案,因爲它只是公平的它是最終實現的那個 – 2009-11-16 20:11:03

+1

geocoder還返回包含目標的建議大小的ExtendedData。 [請注意,該框不適合目標位置。它只是在那裏提供合理的縮放。]但是,這可能正是你在這種情況下需要的,所以當你以英格蘭爲中心時,你會得到不同的縮放比當你以俄羅斯爲中心時。 請參閱http://econym.org.uk/gmap/example_geo3.htm – 2009-11-17 08:10:59

5

將位置名稱或地址轉換爲緯度/經度,這稱爲地理編碼。 Google Maps API現在包含以下功能:請參閱http://code.google.com/apis/maps/documentation/services.html#Geocoding

它們包含一個示例應用程序,您可以在其中輸入地址,並且它的作用僅僅是輸入國家/地區名稱。我不知道他們是否會去國家的中心。

+0

+1幫助答案 – 2009-11-16 20:11:34

9

您需要首先進行地址解析地址:

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

這是使用Google Maps API v3完成此操作的正確方法。 (v2將於2013年5月停止工作)。 – 2013-02-23 23:02:52

+1

或者不使用Geocoder API調用,您可以使用此[國家/地區列表](https://github.com/mihai-craita/countries_center_box「list」)及其對應的座標 – 2014-06-23 05:51:44

相關問題