Google地方信息自动填充功能会将place_id与错误的地点相关联

时间:2018-01-22 09:12:18

标签: google-places-api

https://maps.googleapis.com/maps/api/place/autocomplete/json?language=fr&input=5+avenue+de+l%27union+p&radius=50000&location=48.2%2C2.3

此调用返回:

{
    'description': u "5 Avenue de l'Union, Paray-Vieille-Poste, France",
    'place_id': 'EjA1IEF2ZW51ZSBkZSBsJ1VuaW9uLCBQYXJheS1WaWVpbGxlLVBvc3RlLCBGcmFuY2U',
    'id': '0762652b32b4b27a6be6c89d706c1e1279073e9f',
...
}

然后,在请求地点详情时

https://maps.googleapis.com/maps/api/place/details/json?placeid=EjA1IEF2ZW51ZSBkZSBsJ1VuaW9uLCBQYXJheS1WaWVpbGxlLVBvc3RlLCBGcmFuY2U

它返回一个 不是预期的地方。显然是在另一个城市与同一街道名称的混淆(" Juvisy" vs" Paray-Vieille-Poste"):



 {
     'status': 'OK',
     'html_attributions': [],
     'result': {
         'utc_offset': 60,
         'name': u "5 Avenue de l'Union",
         'reference': 'CpQBkAAAAKfctAfslcVNWK_kGk6gzecawbnBT8JD5Tchnyheh0SyULvlV6XlyZpjkExmykkL3_2lvm5ZoHRAxqO7GPra2vt11osAzE2RJdcT7Fc7c069IpHgvsdJpmNvWb3FjMIrn092DmQj-GKlfAmA9pvvAw6zyKJfd1XQFK88Kl09CULdpxM9vMb-AIfHhGwUe6KP7RIQ2r3XA3Xjax5iCDWbuiZqNBoUqy-PYeUYY9xA_I65wZjdQLQXsVE',
         'geometry': {
             'location': {
                 'lat': 48.69058269999999,
                 'lng': 2.3692054
             },
             'viewport': {
                 'northeast': {
                     'lat': 48.6919374802915,
                     'lng': 2.370557630291501
                 },
                 'southwest': {
                     'lat': 48.6892395197085,
                     'lng': 2.367859669708498
                 }
             }
         },
         'adr_address': '<span class="street-address">5 Avenue de l&#39;Union</span>, <span class="postal-code">91260</span> <span class="locality">Juvisy-sur-Orge</span>, <span class="country-name">France</span>',
         'place_id': 'EjI1IEF2ZW51ZSBkZSBsJ1VuaW9uLCA5MTI2MCBKdXZpc3ktc3VyLU9yZ2UsIEZyYW5jZQ',
         'vicinity': 'Juvisy-sur-Orge',
         'url': 'https://maps.google.com/?q=5+Avenue+de+l%27Union,+91260+Juvisy-sur-Orge,+France&ftid=0x47e5df5943bfe633:0x24dc923a0494f142',
         'scope': 'GOOGLE',
         'address_components': [{
             'long_name': '5',
             'types': ['street_number'],
             'short_name': '5'
         }, {
             'long_name': u "Avenue de l'Union",
             'types': ['route'],
             'short_name': u "Avenue de l'Union"
         }, {
             'long_name': 'Juvisy-sur-Orge',
             'types': ['locality', 'political'],
             'short_name': 'Juvisy-sur-Orge'
         }, {
             'long_name': 'Essonne',
             'types': ['administrative_area_level_2', 'political'],
             'short_name': 'Essonne'
         }, {
             'long_name': '\xcele-de-France',
             'types': ['administrative_area_level_1', 'political'],
             'short_name': '\xcele-de-France'
         }, {
             'long_name': 'France',
             'types': ['country', 'political'],
             'short_name': 'FR'
         }, {
             'long_name': '91260',
             'types': ['postal_code'],
             'short_name': '91260'
         }],
         'formatted_address': u "5 Avenue de l'Union, 91260 Juvisy-sur-Orge, France",
         'id': 'f63ea1e7a3679ec740d0041fa0166161493ace38',
         'types': ['street_address'],
         'icon': 'https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png'
     }
 }
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

如下所述:https://developers.google.com/places/place-id#id-overview

你可以有两种类型的place_id,一种较短的盯着像:

ChIJrTLr-GyuEmsRBfy61i59si0

和你开始使用E的时间更长,如:

EisxMyBNYXJrZXQgU3RyZWV0LCBXaWxtaW5ndG9uLCBOQyAyODQwMSwgVVNB

总结一下,当时间越长表示插值时,这意味着谷歌会尝试猜测(计算)地址所在的位置。我的观点是,较短的一个更准确,而较长的一个不太可行。

我是否应该建议将此报告为问题跟踪器中正确API中的错误。

https://issuetracker.google.com

快乐编码:)