我需要一个POI API来返回评级,照片,开放/关闭时间等等,我认为Google Places API似乎做了我想要的,但我在过滤方面遇到了一些问题:我想使用多种类型的自动完成功能过滤。
这是我有的:
var map;
var selectAttractionAutocomplete;
var selectCityAutocompleteOptions = {
types: ['(cities)']
};
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(-33.8665433, 151.1956316),
zoom: 15
});
var inputsearchedCity = document.getElementById('input-searched-city');
selectCityAutocomplete = new google.maps.places.Autocomplete(inputsearchedCity, selectCityAutocompleteOptions);
selectCityAutocomplete.bindTo('bounds', map);
google.maps.event.addListener(selectCityAutocomplete, 'place_changed', function () {
console.log(selectCityAutocomplete.getPlace());
});
我怎样才能使用多种类型?
我试过管道,逗号,括号......没有用:
var selectCityAutocompleteOptions = {
types: ['cities|point_of_interest']
};
根据Google Documentation,类型2的point_of_interest
is,在地点搜索的类型过滤器中不支持,或在添加地点时在types属性中。
如果您在查询字符串中使用,请使用|分隔器。请记住,只有'geocode | establishment'当前作为集合类型有效,这与未指定任何组合类型相同。
见:https://developers.google.com/places/web-service/autocomplete#place_types
您可以通过传递types参数将Place Autocomplete请求的结果限制为某种类型。该参数指定类型或类型集合,如下面支持的类型中所列。如果未指定任何内容,则返回所有类型。通常只允许一种类型。例外情况是您可以安全地混合地理编码和建筑类型,但请注意,这与指定无类型具有相同的效果。
最近遇到这个。答案在这里Google Places Auto-Complete
types,可以指定两个显式类型之一,也可以指定两个类型集合之一。
var request = {
bounds: map.getBounds(),
types: ['bar','park']
//keyword: 'best view'
};