为什么我得到的Google Geocode API结果非常不一致?

时间:2018-07-11 15:40:51

标签: google-api geocoding google-geocoder google-geocoding-api

我有一个需要查找坐标的数千个位置的列表。我正在为此使用Google Geocode API。

我所掌握的信息类似于“美国,加利福尼亚,纳帕谷”

所以我的地理编码调用看起来像这样:

https://maps.googleapis.com/maps/api/geocode/json?address=Napa+Valley,California,USA&key=<apikey>

(我将它们以相反的顺序放置,并用“ +”字符替换空格)

我当然最感兴趣的是在['results'][0]['geometry']['location']键(可以在其中找到经度和纬度)下找到的值。

现在,在很多情况下,我只需要等待几个小时或1天,然后再次拨打电话,即可获得截然不同的结果。我使用完全相同的数据,相同的参数,所有相同的内容进行调用

通常,坐标相差一个角度或至多1.0-1.5度。例如,昨天的39.8纬度变为今天的40.4纬度。然后变成40.1。然后第二天回到39.8。然后是40.25。等等...

但是在某些极端情况下,差异很大。

实际示例:

https://maps.googleapis.com/maps/api/geocode/json?address=Côtes+du+Rhône-Brézème,Northern+Rhône,Rhône,France&key=<apikey>

结果将类似于:

{
    "results": [
        {
            .....
            "formatted_address": "Rhône",
            "geometry": {
                .........
                "location": {
                    "lat": 44.952398,
                    "lng": 6.4840823
                }
            },
            "partial_match": true,
            ......
        }
    ],
    "status": "OK"
}

因此,它在法国的罗纳河地区被正确识别。

但是,如果我只等几分钟再打一次电话,我会得到:

{
   "results" : [
      {
        ......
         "formatted_address" : "148 Chambers St A, New York, NY 10007, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.715666,
               "lng" : -74.009906
            },
            ......
         },
         .....
      }
   ],
   "status" : "OK"
}

罗纳河(Rhone)/法国何时接近纽约?

这是令人讨厌的部分:我对URL保持不变。我只是隔了几分钟就拨打了完全相同的电话。

我的想法是这是由于我未正确编码URL造成的。

但是,尽管这可能是正确的,但我发现这种情况发生在根本不使用特殊字符的查询中,例如Clarksburg,California,USA之类的查询。在这种情况下,尽管我在加利福尼亚州,彼此之间相距约200英里,都得到2个不同的结果(坐标)。


为什么会这样?我需要此API提供一致的结果。我不需要极高的精度或类似的东西。但是至少有一些强一致性。

我不能只浏览几千个位置并将它们手动放置在Google Maps网站中以找到其坐标。我需要不间断工作1周...

1 个答案:

答案 0 :(得分:0)

这似乎是一个错误,最好在https://issuetracker.google.com/code/p/gmaps-api-issues/的Google Maps API公共问题跟踪器中进行报告