2011-08-15 45 views
4

我不想翻譯地理編碼,並獲得兩種語言的地址,阿拉伯語和英語,所以我想用一種語言獲取它,然後更改API的語言並獲取其他語言的地址,因爲我無法找到要發送給地理編碼器以確定語言的參數。 有什麼建議嗎?如何在運行中更改Google地圖的語言?

回答

13

當你通過追加language=XX到API的網址,讓XX是兩個字符的語言代碼(en英語,ar阿拉伯語等)的API調用的URL加載API語言可以選擇。有關文檔,請參閱http://code.google.com/apis/maps/documentation/javascript/basics.html#Localization

這不會讓你在飛行中改變它,我不認爲你可以做到這一點。在用一種語言獲取所需的初始信息後,您可以再次嘗試加載API。但這似乎可能會導致問題。

更簡單的方法可能是創建一個單獨的頁面,爲您提供一種Web服務。它接受兩個參數:語言代碼和地址。它使用請求的語言代碼加載API,並反向地址解析地址,提供結果。你的頁面會將這個類似於Web服務的東西調用兩次,每種語言調用一次,然後根據需要使用結果。

+1

哦「Googloids」,不敢相信這仍然是正確的,他們可以解決任何數學問題,並做到這一點。在2017年無法找到此更新(通過此答案後6年)。不能動態改變語言,不能動態設置API密鑰等等。 @trott你知道今天如何做得更好嗎? – Rantiev

1

正如已經指出的,一旦地圖加載這個不能改變,但是,對於那些誰能夠負擔得起刷新頁面,這可能是工作:

HTML

<script type="text/javascript"> 
    //load map based on current lang 
    var scriptTag = document.createElement('script'); 

    var currentLang = window.localStorage && window.localStorage.getItem('language'); 
    var scriptSrc = '//maps.googleapis.com/maps/api/js?libraries=drawing,places&key=YOUR_KEY_HERE'; 
    if (currentLang) 
     scriptSrc = '//maps.googleapis.com/maps/api/js?language=' + currentLang + '&libraries=drawing,places&key=YOUR_KEY_HERE'; 

    scriptTag.setAttribute('src', scriptSrc); 
    scriptTag.setAttribute('async', ''); 
    document.head.appendChild(scriptTag); 
</script> 

JS

function changeLangAndReload(lang) { 
    window.localStorage.setItem('language', lang); 
    window.location.reload();//or use your preferred way to refresh 
} 
1

以下示例顯示日語地圖並將地區設置爲日語一:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&language=ja&region=JP"> 
</script> 

Source