【问题标题】:Empty locality by searching some cities trouch Geocoding API通过 Geocoding API 搜索一些城市来清空位置
【发布时间】:2018-07-19 10:04:47
【问题描述】:

当我按地址搜索结果时,某些查询结果在来自Geocoding API 的 JSON 响应代码中没有locality。这就是我在搜索Houten 时在示例#1 中发生的情况。但是,当我在 example #2 中搜索像 Vianen 这样的城市时,就会有一个地方。这是 API 内部的错误吗?可以解决吗?

示例 #1

{
  "results" : [
    {
      "address_components" : [
        {
          "long_name" : "Houten",
          "short_name" : "Houten",
          "types" : [ "administrative_area_level_2", "political" ]
        },
        {
          "long_name" : "Utrecht",
          "short_name" : "UT",
          "types" : [ "administrative_area_level_1", "political" ]
        },
        {
          "long_name" : "Nederland",
          "short_name" : "NL",
          "types" : [ "country", "political" ]
        }
      ],
      "formatted_address" : "Houten, Nederland",
      [......],
      "types" : [ "administrative_area_level_2", "political" ]
    }
  ],
  "status" : "OK"
}

示例 #2

{
  "results" : [
    {
      "address_components" : [
        {
          "long_name" : "Vianen",
          "short_name" : "Vianen",
          "types" : [ "locality", "political" ]
        },
        {
          "long_name" : "Vianen",
          "short_name" : "Vianen",
          "types" : [ "administrative_area_level_2", "political" ]
        },
        {
          "long_name" : "Utrecht",
          "short_name" : "UT",
          "types" : [ "administrative_area_level_1", "political" ]
        },
        {
          "long_name" : "Nederland",
          "short_name" : "NL",
          "types" : [ "country", "political" ]
        }
      ],
      "formatted_address" : "Vianen, Nederland",
      [......],
      "place_id" : "ChIJJ8URC75jxkcRlnwIUl-xUDY",
      "types" : [ "locality", "political" ]
    }
  ],
  "status" : "OK"
}

【问题讨论】:

    标签: api google-maps geocoding google-geocoding-api


    【解决方案1】:

    这听起来像是 API 方面的评分问题。正如我们所看到的,Geocoding API 更喜欢 Administrative_area_level_2 类型的结果。由于某种原因,API 认为名称为 Houten 的行政区域比同名的 locality 更突出结果,并在响应中返回行政区域。

    您可以尝试使用过滤器类型设置为城市的地点自动完成请求来获取地点的地点 ID。

    https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Houten&types=(cities)&key=YOUR_API_KEY

    此请求作为第一个建议返回“Houten,Netherlands”,地点 ID 为 ChIJu_QGwOdmxkcRPRqtvufr2Ic,并输入 locality。现在您可以使用地理编码来获取这个城市:

    https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJu_QGwOdmxkcRPRqtvufr2Ic&key=YOUR_API_KEY

    Geocoder 工具中的结果相同:

    https://google-developers.appspot.com/maps/documentation/utils/geocoder/#place_id%3DChIJu_QGwOdmxkcRPRqtvufr2Ic

    我希望这个解决方法可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2022-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多