我想要仅从墨西哥获得自动完成结果,为此我正在尝试下面的代码并添加边界以确保将墨西哥放在一个矩形中,但我仍然可以从国外获得重新开始。
我该如何解决这个问题?
以下是html,相同的代码如下:
<!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>
答案 0 :(得分:7)
现在你可以用你想要的东西来完成:
componentRestrictions: {country: 'mx'}
在options
参数中构建Autocomplete
对象。
与bounds
不同,这是一个严格的限制。这只适用于国家,但无论如何,这都是你想要的。
答案 1 :(得分:2)
var options = {
types: ['geocode'],
componentRestrictions: {country: "mx"}
};
答案 2 :(得分:1)
设置边界不是您如何进行位置偏移。请参阅本文档中的“位置偏差”:
http://code.google.com/apis/maps/documentation/places/autocomplete.html#location_biasing
您可以通过传递位置和a来将结果偏向指定的圆圈 半径参数。这样做会指示Place服务更喜欢 在该圈内显示结果;超出定义的结果 区域可能仍会显示。
另外,请在此处查看此示例:
http://gmaps-samples-v3.googlecode.com/svn/trunk/places/places-search.html
我还应该注意,我认为不可能只指定“仅限墨西哥”。您可以在半径范围内进行搜索,但不能仅指定国家/地区。
答案 3 :(得分:0)
正如之前的回答所建议的那样,正如API所述,您只能偏向一组结果。我建议根据墨西哥中部或墨西哥城的某个地方制作较小的界限,以使偏见更强。