【问题标题】:Google reverse geocoding returning zero_results谷歌反向地理编码返回 zero_results
【发布时间】:2018-01-29 16:10:54
【问题描述】:

我有一个 android 应用程序,它可以从设备获取纬度和经度,并使用谷歌反向地理编码 api 来返回地址。一段时间以来一切正常,但现在突然间我得到了 zero_results/

我在浏览器中复制它,请求是: https://maps.googleapis.com/maps/api/geocode/json?latlng=31.783783783783782,35.22879215957073&key=MY_KEY

但如果我将其更改为: https://maps.googleapis.com/maps/api/geocode/json?latlng=31.78,35.22&key=MY_KEY

这只是将 lat&lng 缩短为小数点后 2 位,但如果我将其四舍五入到小数点后两位: https://maps.googleapis.com/maps/api/geocode/json?latlng=31.78,35.23&key=MY_KEY

没用!!!

如果不进行四舍五入,我无法对其进行轮辋,但现在我担心在另一种情况下它不会工作,我不知道 API 发生了什么,之前一切正常。

任何解决此问题的帮助将不胜感激。

谢谢

【问题讨论】:

    标签: android google-geocoding-api


    【解决方案1】:

    这是因为 Google 不支持有争议的地区(例如金门县、西岸、克里米亚等)。 ZERO_RESULTS 是预期的行为。

    您可以在https://issuetracker.google.com/issues/35826813 的谷歌公共问题跟踪器中查看问题

    【讨论】:

    • 嗨,我知道,但这个位置即使在以色列不在有争议的地区,它在我的手机上,它在我去过无数次的同一地区,我得到了耶路撒冷的位置,以色列,现在突然间它没有返回结果。
    • @Jack,你提到的坐标是在以色列 - 约旦 DMZ(漫长的疯狂历史故事)。但即使在 1949 年停战线(“绿线”)附近(最多 100-200 米),我也经历过这种情况。 31.750795、35.206923:火车站公园和 Talpiyoth 地区一直是以色列的领土(自 1949 年以来)。然而,反向地理编码仅从北约 50m 的 Gonen/Katamonim 开始工作 :-( 更奇怪的是:它曾经工作到 2018 年春季左右。
    【解决方案2】:

    坏消息,你的观点是在 DMZ。如上所述:Google 反向地理编码无法 1949 年停战线附近工作(而不是在 1949-1967 年的约旦领土上)。

    不太坏的消息:可能有某种解决方法对某些人来说是可行的:OpenStreetMap 还可以提供反向地理定位。您的坐标:

    https://nominatim.openstreetmap.org/reverse?&format=jsonv2&lat=31.779975&lon=35.227901
    

    产量

    {
      "place_id": 199263301,
      "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
      "osm_type": "relation",
      "osm_id": 7880713,
      "lat": "31.7782568",
      "lon": "35.2315827592487",
      "place_rank": 30,
      "category": "historic",
      "type": "heritage",
      "importance": 0,
      "addresstype": "historic",
      "name": "Old City of Jerusalem and its Walls",
      "display_name": "Old City of Jerusalem and its Walls, HaOmer, Jewish Quarter, Old City, Jerusalem, Jerusalem District, no, Israel",
      "address": {
        "address29": "Old City of Jerusalem and its Walls",
        "footway": "HaOmer",
        "suburb": "Old City",
        "city": "Jerusalem",
        "state": "Jerusalem District",
        "postcode": "no",
        "country": "Israel",
        "country_code": "il"
      },
      "boundingbox": [
        "31.7728081",
        "31.7837416",
        "35.2257013",
        "35.2375582"
      ]
    }
    

    如您所见,它们可能相差数百米。在这种情况下(我的意思是,选择了一个会增加问题的案例)它意味着步行 15 分钟,而不是开车。

    有些人可能会觉得可以忍受。对其他人来说,这意味着将某人送到错误的地方。

    另一方面,如前所述,我确实选择了一个令人讨厌的案例。在大多数情况下,OSM 几乎可以精确到几米。

    【讨论】:

    • 感谢 nominatim.openstreetmap.org 链接! :-)
    【解决方案3】:

    我只想补充一点,在 2018 年 1 月 29 日,我也开始遇到来自 API 的随机结果。我的代码已经运行了一年多。现在我可以发送一个具有明确定义位置的请求(不是反向;我从一个地址或十字路口开始搜索坐标和地缘政治信息),但我没有得到任何结果。我可以再次发送 - 没有结果。我可以再次发送 - 我得到结果!完全相同的查询,但响应不同。我认为我的根本原因

    【讨论】:

    • 那个惊人的悬念..
    猜你喜欢
    • 2012-09-15
    • 2015-09-27
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多