Google Places Autocomplete多类型筛选失效问题求助
解决Google Places Autocomplete同时筛选地址和场所的问题
嘿,我一眼就看到你代码里的问题啦!你重复写了三次types属性——在JavaScript对象里,重复的键会被最后一次赋值完全覆盖,所以你之前设置的['geocode']和['address']根本没生效,最后只有最后那个types值在起作用:要么是['establishment'](只显示场所),要么是['address'](只显示地址)。
正确的配置方式
Google Places Autocomplete的types参数本身就支持传入一个包含多个类型的数组,你只需要把想要的类型都放到同一个types数组里就行,不用分开声明多次。
如果你想同时让用户搜索地址和场所,直接把address和establishment放在同一个数组里:
var searchInputStart = 'start_address'; start_address = new google.maps.places.Autocomplete((document.getElementById(searchInputStart)), { types: ['address', 'establishment'] // 把多个类型合并到一个数组中 }); google.maps.event.addListener(start_address, 'place_changed', function () { var place_start = start_address.getPlace(); document.getElementById('loc_lat_start').value = place_start.geometry.location.lat(); document.getElementById('loc_long_start').value = place_start.geometry.location.lng(); //get_directions to address set_route(); });
补充说明
geocode类型其实已经包含了address,所以如果你加了address,可以不用额外加geocode;当然如果加上也不会有问题,只是有点冗余。- 这样修改后,用户输入关键词时,Autocomplete就会同时返回地址类结果和场所类结果了。
内容的提问来源于stack exchange,提问作者DRodrigues




