Google maps 谷歌地图自动完成和边界
我只想从墨西哥自动完成结果,为此,我尝试下面的代码,并添加边界,以确保将墨西哥放在一个矩形中,但我仍然得到来自国外的结果 我怎样才能解决这个问题 以下是相同的代码,相同的代码如下:Google maps 谷歌地图自动完成和边界,google-maps,Google Maps,我只想从墨西哥自动完成结果,为此,我尝试下面的代码,并添加边界,以确保将墨西哥放在一个矩形中,但我仍然得到来自国外的结果 我怎样才能解决这个问题 以下是相同的代码,相同的代码如下: <!DOCTYPE html> <html> <head> <title>Google Maps JavaScript API v3 Test: Places Autocomplete</title> <script src="ht
<!DOCTYPE html>
<html>
<head>
<title>Google Maps JavaScript API v3 Test: Places Autocomplete</title>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"
type="text/javascript"></script>
<style type="text/css">
body {
font-family: sans-serif;
font-size: 14px;
}
#map_canvas {
height: 1px;
width: 1px;
display:hidden;
}
#searchTextField{
width:500px;
}
</style>
<script type="text/javascript">
function initialize() {
var options = {
bounds: google.maps.LatLngBounds( google.maps.LatLng(33.1613, -118.4766), google.maps.LatLng(14.3770, -84.8145) )
};
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input, options);
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(autocomplete, 'place_changed', function() {
infowindow.close();
var place = autocomplete.getPlace();
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<input id="searchTextField" type="text" size="50"> <div id="map_canvas"></div>
</body>
</html>
谷歌地图JavaScript API v3测试:放置自动完成
身体{
字体系列:无衬线;
字体大小:14px;
}
#地图画布{
高度:1px;
宽度:1px;
显示:隐藏;
}
#searchTextField{
宽度:500px;
}
函数初始化(){
变量选项={
边界:google.maps.LatLngBounds(google.maps.LatLng(33.1613,-118.4766),google.maps.LatLng(14.3770,-84.8145))
};
var input=document.getElementById('searchTextField');
var autocomplete=new google.maps.places.autocomplete(输入,选项);
var infowindow=new google.maps.infowindow();
google.maps.event.addListener(自动完成,'place\u changed',函数(){
infowindow.close();
var place=autocomplete.getPlace();
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
设置边界不是位置偏移的方式。请参阅本文档中的“位置偏差”:
通过传递一个位置和一个参数,可以将结果偏移到指定的圆
半径参数。这样做会指示Place服务选择
在该范围内显示结果;超出定义范围的结果
区域仍可能显示
另外,请看下面的示例:
我还应该注意,我不认为只指定“仅限墨西哥”是可能的。您可以在半径范围内进行搜索,但不能仅指定一个国家 正如前面的答案所暗示的,正如它在中所说的,你只能对一组结果产生偏见。我建议在墨西哥中部甚至墨西哥城的某个地方做一个较小的界限,以使偏见变得更强。 < P>现在你可以实现你想要的:
componentRestrictions: {country: 'mx'}
在选项
参数中,构建自动完成
对象
这是一个硬限制,不同于
边界
。这只适用于国家,但这正是你想要的。我认为你关于位置偏见的第一句话不适用于V3。的文档确实说使用边界来对结果进行偏差。这是只从一个国家获得结果的更好方法。您的解决方案无效,因为边界设置不正确。
var options = {
types: ['geocode'],
componentRestrictions: {country: "mx"}
};