我的新项目需要从Google地图获取地址信息,但是我们的服务只能从堪培拉的所有酒店接送。
我的问题是我如何限制自动完成仅选择堪培拉的酒店。

这是我的代码:

var defaultBounds = new google.maps.LatLngBounds(
  new google.maps.LatLng(-35.3345571, 149.0334956, 15),
  new google.maps.LatLng(-35.1910655, 149.1817188, 12));

    var options = {
        bounds: defaultBounds,
        types: ['establishment'],
        keyword:'hotel',
        componentRestrictions: {
            country: 'au'
        }
    };

var input = document.getElementById('dropoff_address2Fromgoogle');

var autocomplete = new google.maps.places.Autocomplete(input,options);

google.maps.event.addListener(autocomplete, 'place_changed', function () {
    var place = autocomplete.getPlace();
    document.getElementById('dropoff_address2Fromgoogle').value = place.name
     + ", " + place.formatted_address
      + ", " + place.address_components[5].short_name;

});


我使用边界来定义堪培拉中的区域,但搜索结果仍会返回其他区域,而Type过滤器只有设置似乎并没有返回更多结果。

最佳答案

这是sample code,用于搜索所选城市中的酒店。

基本上,示例代码分两个阶段调用Google Maps API:一个阶段搜索城市(称为onPlaceChanged()),另一个阶段搜索酒店。在后面的搜索中,您将调用Places对象上的nearbySearch(),该对象具有城市搜索中的bounds参数和值为types'lodging'参数。

关于javascript - Google Maps Places API V3自动完成-仅允许选择堪培拉的酒店,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27496168/

10-12 07:37