2013-08-22 180 views
1

我有一份與各省和國家不一致的北美城市列表。例如:使用Google API獲取城市的國家/國家建議

  • 卡爾加里AB加拿大
  • 阿爾伯塔省卡爾加里 - CA
  • 加拿大卡爾加里

我想每個城市格式化,以它遵循一個統一的模式。這包括城市州/省和國家。像:

  • 阿爾伯塔省卡爾加里加拿大

我使用谷歌的Places API的獲得可能的格式化建議嘗試,但所有我能做到的,是一種驗證,表明如果這樣的城市存在。我想知道是否有人廣泛使用Google API可以指導我如何從城市輸入中獲取城市/省份/州/國家建議(可能採用JSON格式)。

var input = "City Name"; 
var service = new google.maps.places.AutocompleteService(); 
service.getQueryPredictions({ input: input }, callback}); 

我試圖調查geocoding,但似乎帶來了緯度/日誌信息。

回答

3

地理編碼API是你想要的。

嘗試

http://maps.googleapis.com/maps/api/geocode/json?address=Calgary,%20Alberta&sensor=false 

它會返回在幾個方面完全格式化的地址信息(由分裂行政級別,格式化爲一個地址等)

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "Calgary", 
       "short_name" : "Calgary", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Division No. 6", 
       "short_name" : "Division No. 6", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "Alberta", 
       "short_name" : "AB", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "Kanada", 
       "short_name" : "CA", 
       "types" : [ "country", "political" ] 
      } 
     ], 
     "formatted_address" : "Calgary, Alberta, Kanada", 

formatted_address組件是在德國(「加拿大」),因爲我的瀏覽器的語言是德語。您可以使用參數hl來定義輸出的語言。

請注意,在技術上,根據其T & C,僅允許使用地理編碼API準備數據以便在Google地圖上顯示。

+0

謝謝!它做到了。我有多接近自己,這有點令人尷尬...... –