2

我有一份与省和国家配对不一致的北美城市列表。例子:

  • 加拿大卡尔加里
  • 卡尔加里阿尔伯塔 - 加利福尼亚
  • 加拿大卡尔加里

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

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

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

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

我尝试研究地理编码,但这似乎带回了纬度/日志信息。

4

1 回答 1

4

地理编码 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 地图上显示。

于 2013-08-22T15:36:31.987 回答