我正在尝试在表单中添加Google Geocode自动填充字段。
我能够让它限制返回到国家(AU)的结果,但如果我可以将结果限制到州,那就更好了。 (新南威尔士州/新南威尔士州)
这是我目前的initialize()
功能:
function initialize() {
var options = {
types: ['geocode'],
componentRestrictions: {country:"AU"}
};
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
}
我已阅读文档,发现您可以使用types
参数来限制结果,但我无法弄清楚确切的代码应该是什么。
只需将其更改为:
types: ['administrative_area1':'NSW'], // OR 'New South Wales'
以及与上述相似的各种组合(=代替:等)没有奏效..
有人能指出我正确的方向,以实现我想要达到的实际语法吗?
感谢。
答案 0 :(得分:2)
在应用中保留状态纬度/长度边界列表,并使用它们限制自动完成。
var stateBounds={
ca: ["32.812736", "-119.216815", "34.608128", "-117.039301"]
// lat/long boundaries list for states/provinces.
};
function getStateBounds(state) {
return new google.maps.LatLngBounds(
new google.maps.LatLng(stateBounds[state][0],
stateBounds[state][1]),
new google.maps.LatLng(stateBounds[state][2],
stateBounds[state][3])
);
}
new google.maps.places.Autocomplete(document.getElementById('search'), {
types: ['address'],
componentRestrictions: {country: 'us'},
bounds: getStateBounds('ca') // get LatLngBounds for ca.
});