4

我想得到这个地址的经纬度:Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France

我正在将 api 添加到我的页面:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>

当我使用 gmaps 时,结果很好,但是当我想通过 API 检索它时:

 geocoder = new google.maps.Geocoder();
 geocoder.geocode({ 'address': myAdress, 'region': 'FR'}, function (results, status) {...});

它执行以下请求:

https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sBoulevard%20de%20la%20Marne%20%20Zone%20industrielle%20%20COULOMMIERS%2077120%20&7sUS&9sfr-FR&callback=_xdc_._lsoj9s&token=53058

结果在巴马科附近......

如果我使用视口边界,它会执行以下请求:

https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sBoulevard%20de%20la%20Marne%20%20Zone%20industrielle%20%20COULOMMIERS%2077120%20&6m6&1m2&1d40.513799&2d-5.844727000000034&2m2&1d51.727028&2d10.854491999999936&7sUS&9sfr-FR&callback=_xdc_._c84svr&token=29019

它更好(它在法国),但事实并非如此

该查询在网站谷歌地图上运行良好: https ://maps.google.fr/maps?q=Boulevard+de+la+Marne++Zone+industrielle,++COULOMMIERS,+77120&hl=fr&ll=48.487486,3.922119&spn =1.541855,4.22699&sll=50.485474,25.620117&sspn=23.748757,67.631836&hq=Boulevard+de+la+Marne++Zone+industrielle,++COULOMMIERS,+77120&radius=15000&t=m&z=9

似乎获得它的唯一方法是执行以下请求: http://maps.googleapis.com/maps/api/geocode/json?address=Boulevard%20de%20la%20Marne%20Zone%20industrielle, %20COULOMMIERS ,%2077120&components=国家:FR&sensor=false

我不明白为什么当我使用视口而不是国家时结果不同(这两个结果都在视口的范围内)

4

2 回答 2

1

Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France 不是一个地址,而是一个“地方”。

地理编码器从该输入中找到 Via De La Marne 的位置:

http://www.geocodezip.com/v3_example_geo2.asp?addr1=Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France&geocode=1

Found 1 results for Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France
[ 0 ]: Av De La Marne, Bamako, Mali (12.6417952, -7.988396299999977)

Places API 的第一个结果看起来更正确:

http://www.geocodezip.com/v3_example_geo2.asp?addr1=Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France&place=1

Found 20 results for Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France
[ 0 ]: Zone Industrielle, Boulevard de la Marne, Coulommiers, France (48.804329, 3.0923729999999523)
[ 1 ]: Boulevard de la Marne, Coulommiers, France (48.803048, 3.092110000000048)
[ 2 ]: 21 Boulevard de la Marne, Coulommiers, France (48.806634, 3.0937430000000177)
...
于 2013-04-24T23:04:01.300 回答
0

这里有两件事在起作用。

由于“Zone industrielle”部分,“Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France”未被地理编码 API 识别为地址。如果您删除该部分,它就可以正常工作:

Boulevard de la Marne, COULOMMIERS, 77120, 法国

此外,我在 Google 地图数据中发现了一个看起来像(一个罕见的例子)的问题,但我认为修复它不会有助于解决上述问题。

该地点由 Places API 文本搜索找到:

https://maps.googleapis.com/maps/api/place/textsearch/json?radius=50000&location=0,0&query=Boulevard%20de%20la%20Marne%20Zone%20industrielle,%20COULOMMIERS,%2077120&key=YOUR_API_KEY

您会注意到,在通过 place_id 查询 Places Details 时没有任何route组件。address_components这表明该地点与道路没有正确关联。

于 2016-07-14T14:43:53.167 回答