使用Google API获取城市的州/国家建议

时间:2013-08-22 15:31:00

标签: javascript google-maps google-api

我列出了与省份和国家不一致的北美城市名单。例如:

  • Calgary AB Canada
  • CALGARY Alberta - CA
  • 加拿大卡尔加里

我想格式化每个城市,使其遵循一致的模式。因此它包括城市州/省和国家。像:

  • 加拿大卡尔加里艾伯塔省

我尝试使用Google的Places API来获取可能格式化的建议,但我能够实现的是一种验证,表明这样的城市是否存在。我想知道是否有人广泛使用Google API可以指导我如何从城市输入中获取城市/省/州/国家建议(可能是JSON格式)。

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

我试着调查geocoding,但这似乎带回了lat / log信息。

1 个答案:

答案 0 :(得分: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组件是德语(“Kanada”),因为我的浏览器语言是德语。您可以使用hl参数定义输出应该使用哪种语言。

请注意,从技术上讲,根据他们的T& C,使用地理编码API只允许准备数据以便在Google地图上显示。