我试图根据位置和半径(https://developers.google.com/places/webservice/autocomplete#location_biasing)偏向google.maps.places.Autocomplete。以下内容返回结果,但是基于客户端的IP而不是我指定的位置。 Google地图自动填充功能如何正确偏向地理位置? http://jsbin.com/nazufozeyu/1/
var autocomplete = new google.maps.places.Autocomplete(
document.getElementById('address'), {
types: ['geocode'],
radius: 1000,
location:[47.64864,-122.348927]
}
);
答案 0 :(得分:3)
我确信这可以做得更好,但以下方法可行。 http://jsbin.com/vetayoreto/1/
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>google.maps.places.Autocomplete</title>
<style type="text/css">
input{width:600px; display:block;}
</style>
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
</head>
<body>
<input id="input" type="text" value="" />
<script>
var center = new google.maps.LatLng(40.7,-74);
var circle = new google.maps.Circle({
center: center,
radius: 10000
});
var autocomplete5 = new google.maps.places.Autocomplete(
document.getElementById('input'),
{
types: ['geocode']
}
);
autocomplete5.setBounds(circle.getBounds());
</script>
</body>
</html>
答案 1 :(得分:1)
因此,在检查API之后,您可能会忽略您提供的位置。您可以选择执行的操作,但需要在LatLngBounds类型的选项中提供bounds属性。请参阅自动填充选项API:https://developers.google.com/maps/documentation/javascript/reference#AutocompleteOptions
您可以提供圆形,矩形,折线等,然后从中拉出边界。无论你如何 ,你需要提供一个搜索范围,你不能只提供一个lat-long点。 @ user1032531提供了一个很好的例子,说明如何使用圆圈。
如果您想要搜索某个城市/国家/地区,则可以使用地理编码API:https://developers.google.com/maps/documentation/geocoding/
按照以下方式调用API:https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=API_KEY并且您将获得一些具有&#34;边界&#34;的JSON。键。获取您的boundbox,并将其传递给places API调用。