You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Places Autocomplete多类型筛选失效问题求助

解决Google Places Autocomplete同时筛选地址和场所的问题

嘿,我一眼就看到你代码里的问题啦!你重复写了三次types属性——在JavaScript对象里,重复的键会被最后一次赋值完全覆盖,所以你之前设置的['geocode']['address']根本没生效,最后只有最后那个types值在起作用:要么是['establishment'](只显示场所),要么是['address'](只显示地址)。

正确的配置方式

Google Places Autocomplete的types参数本身就支持传入一个包含多个类型的数组,你只需要把想要的类型都放到同一个types数组里就行,不用分开声明多次。

如果你想同时让用户搜索地址和场所,直接把addressestablishment放在同一个数组里:

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

火山引擎 最新活动