2017-04-04 76 views
1

我正在使用Google Maps Places API for JavaScript,并将我的边界设置为柏林,德国Google地图自动填充边界并不总是有效

这是我的代码(我使用它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')); 
}); 

现在,当我尝试搜索附近的地方,它提供我在印度的一个地方,然后再柏林:

如果没有单词柏林: enter image description here

用字柏林: enter image description here

我的边界设置为柏林: enter image description here

所以我的问题是现在:这种行为是正常的还是我拿错东西 ?我试图只是出于好奇切换LatLng,但结果相同 。

回答

2

您应该将strictBounds设置为true以将结果限制为仅限界限。否则,你偏爱那个区域,但结果可能来自外部。

API docs

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