我有一个需要查找坐标的数千个位置的列表。我正在为此使用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周...
答案 0 :(得分:0)
这似乎是一个错误,最好在https://issuetracker.google.com/code/p/gmaps-api-issues/的Google Maps API公共问题跟踪器中进行报告