根據文檔,我發現這個: geocoder.setBaseCountryCode(countrycode);如何根據國家/地區代碼管理谷歌地圖?
然而,即使我硬編碼的國家代碼(兩種情況:小資本),這並沒有工作。
任何幫助?
根據文檔,我發現這個: geocoder.setBaseCountryCode(countrycode);如何根據國家/地區代碼管理谷歌地圖?
然而,即使我硬編碼的國家代碼(兩種情況:小資本),這並沒有工作。
任何幫助?
geocoder.setBaseCountryCode()
不會顯示在地圖中心。這將爲地理編碼奠定基礎,因此如果您嘗試對「普利茅斯」進行地理編碼,它將區分英國和馬薩諸塞州的城市。
如果要手動指定國家或地區代碼,你可以使用GClientGeocoder
如下:
var country_code = "ES"; // Change the country code here
function initialize() {
if (GBrowserIsCompatible()) {
var map = null;
var geocoder = null;
map = new GMap2(document.getElementById("map_canvas"));
geocoder = new GClientGeocoder();
if (geocoder) {
geocoder.getLatLng(
"Country: " + country_code,
function(point) {
if (point) {
map.setCenter(point, 13);
}
}
);
}
}
}
沒有必要使用設定在這種情況下,setBaseCountryCode()
,因爲國家代碼顯然是獨一無二的。
如果您使用的是谷歌地圖API第3版,您可能需要使用google.loader.ClientLocation
自動顯示在地圖中心到客戶端的國家在這個Google Demo。這使用客戶端的IP地址來確定國家。
的代碼會是這個樣子:
function initialize() {
// Initialize default values
var zoom = 3;
var latlng = new google.maps.LatLng(37.4419, -100.1419);
// If ClientLocation was filled in by the loader, use that info instead
if (google.loader.ClientLocation) {
zoom = 13;
latlng = new google.maps.LatLng(google.loader.ClientLocation.latitude,
google.loader.ClientLocation.longitude);
}
var myOptions = {
zoom: zoom,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map"), myOptions);
}
注意,從IP地址的地理位置是不是一個非常可靠的科學。您將獲得ISP的位置,這可能相當遙遠,此外,IP到位置數據庫並不總是與最新更改保持一致,因此您可能沒有任何特定IP的數據地址。然而,由於你只是在檢查國家,所以誤差幅度會很小。
從獲取信息this Country database。
選擇所需國家的首都城市並圍繞該地圖居中。
以防萬一,如果你正在尋找具有ISO國家代碼(包括2首第3個字符)SQL文件,那麼你也可能想看看@http://27.org/isocountrylist/
感謝您的回覆,我送國家代碼作爲一個變量,下面的部分與我的工作: geocoder.getLatLng( 「國家」 + COUNTRY_CODE, 功能(點){ 如果( point){ map.setCenter(point,13); } } ); – Luci 2010-01-22 12:39:02
非常好! .... – 2010-01-22 12:45:21
@DanielVassallo今天仍然適用嗎?我也想把谷歌地圖集中到用戶的國家。我試圖調用google.loader控制檯顯示「google.loader未定義」 – aidonsnous 2017-05-01 08:23:03