地理编码服务与gMap搜索之间的差异结果

时间:2013-04-24 12:53:47

标签: javascript google-maps google-maps-api-3 google-geocoder

我想获得这个地址的经纬度: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

它更好(它在法国)但不是那个

该查询在网站google地图上效果很好: 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=country:FR&sensor=false

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

2 个答案:

答案 0 :(得分: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&amp; 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&amp; 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)
...

答案 1 :(得分:0)

这里有2件事情在发挥作用。

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

Boulevard de la Marne, COULOMMIERS, 77120, France

此外,我在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查询地方详情时,您会注意到route中没有address_components个组件。这表明该地点与道路没有正确关联。