【问题标题】:Google Places Autocomplete boundaries doesn't always workGoogle 地方信息自动填充边界并不总是有效
【发布时间】:2017-04-04 13:06:28
【问题描述】:

我正在使用适用于 JavaScript 的 Google Maps Places API,并将我的边界设置为 德国柏林

这是我的代码(我正在使用一个 npm 模块,但正如您在 console.log 中看到的,边界被正确传递):

import React from 'react';
import ReactDOM from 'react-dom';
import Autocomplete from 'react-google-autocomplete';

document.addEventListener('DOMContentLoaded', function() {
  ReactDOM.render(<Autocomplete
        style={{width: '90%'}}
        onPlaceSelected={(place) => {
          console.log(place);
        }}
        types={[]}
        bounds={new window.google.maps.LatLngBounds(
                      new window.google.maps.LatLng(51.2, 13.41),
                      new window.google.maps.LatLng(52.5200, 10.40)
                    )}
      />, document.getElementById('mount'));
});

现在,当我尝试搜索附近的地点时,它会先为我提供印度的地点,然后是柏林:

没有柏林这个词:

用柏林这个词:

我的边界设置为柏林:

所以我现在的问题是:这种行为正常还是我得到了什么 错误的?出于好奇,我尝试切换 LatLng,但同样 结果。

【问题讨论】:

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


    【解决方案1】:

    您应该将strictBounds 设置为true 以将结果限制在范围内。否则,您会偏爱该领域,但结果可能来自外部。

    来自API docs

    • bounds 是一个 google.maps.LatLngBounds 对象,用于指定搜索地点的区域。结果偏向但不限于这些范围内的位置。
    • strictBounds 是一个布尔值,用于指定 API 是否必须仅返回严格在给定边界定义的区域内的那些位置。 API 不会返回该区域以外的结果,即使它们与用户输入匹配。

    【讨论】:

      【解决方案2】:

      使用这些界限:

      new google.maps.LatLngBounds(
          new google.maps.LatLng(52.35, 13.1),
          new google.maps.LatLng(52.65, 13.8),
      )
      

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 2014-03-28
        • 2015-06-15
        • 1970-01-01
        • 2015-07-13
        • 1970-01-01
        • 2020-08-04
        • 2012-11-20
        • 2016-11-30
        相关资源
        最近更新 更多