Google Places API:如何使用多种类型?

时间:2015-07-25 09:38:36

标签: google-maps-api-3 google-places-api

我需要一个能够返回评级,照片,开放/关闭时间等的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']
};

5 个答案:

答案 0 :(得分:2)

根据Google Documentationpoint_of_interest属于类型2,在地点搜索的类型过滤器中不受支持,或在添加地点时在types属性中不受支持。

答案 1 :(得分:0)

最近遇到这个。答案在这里Google Places Auto-Complete

  

类型,可以指定两种显式类型之一 两种类型集合中的一种

答案 2 :(得分:0)

如果在查询字符串中使用,请使用|。分隔器。请记住,当前只有'geocode | Establishment'作为集合类型有效,这与未指定任何组合类型相同。

请参阅: https://developers.google.com/places/web-service/autocomplete#place_types

  

您可以通过传递类型参数来将“地点自动完成”请求的结果限制为特定类型。该参数指定类型或类型集合,如下面支持的类型中所列。如果未指定任何内容,则返回所有类型。通常,只允许使用一种类型。唯一的例外是您可以安全地混合地理编码和企业类型,但是请注意,这与不指定类型具有相同的效果。

答案 3 :(得分:0)

this thread部分回答了这个问题。

首先,它不支持“城市”的地点类型。您可以找到受支持的地点类型here的列表。

无法同时使用多种类型。但是,您可以两次调用API以获得相似的结果。例如:

var selectCityAutocompleteOptions1 = {
  types: ['zoo']
};
var selectCityAutocompleteOptions2 = {
  types: ['museum']
};

但是,基于您的描述,这听起来像您想要所有兴趣点结果,而无需按类型进行过滤。在这种情况下,您可能想使用Find Place Requests Place Search

答案 4 :(得分:-3)

var request = {
    bounds: map.getBounds(),
    types: ['bar','park']
      //keyword: 'best view'
  };