将 Google 地方信息接口限制为特定国家/地区
Restrict Google Places API to specific country
我试图将自动完成限制在特定国家/地区,即美国。我该怎么做?我在下面尝试了以下方法,通过将变量选项作为参数传递到初始化函数中:
<script>
var autocomplete = {};
var autocompletesWraps = ['test', 'test2'];
var test_form = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' };
var test2_form = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' };
function initialize() {
var options = {
types: ['(cities)'],
componentRestrictions: {country: "us"}
};
$.each(autocompletesWraps, function(index, name) {
if($('#'+name).length == 0) {
return;
}
autocomplete[name] = new google.maps.places.Autocomplete($('#'+name+' .autocomplete')[0], { types: ['geocode'] }, options);
google.maps.event.addListener(autocomplete[name], 'place_changed', function() {
var place = autocomplete[name].getPlace();
var form = eval(name+'_form');
for (var component in form) {
$('#'+name+' .'+component).val('');
$('#'+name+' .'+component).attr('disabled', false);
}
for (var i = 0; i < place.address_components.length; i++) {
var addressType = place.address_components[i].types[0];
if (typeof form[addressType] !== 'undefined') {
var val = place.address_components[i][form[addressType]];
$('#'+name+' .'+addressType).val(val);
}
}
});
});
}
</script>
您没有正确传递options
。 Autocomplete
需要两个参数,而你通过了三个参数。
具体来说,在这一行中:
autocomplete[name] = new google.maps.places.Autocomplete(
$('#'+name+' .autocomplete')[0], { types: ['geocode'] }, options);
您的 options
参数未使用,因为您已将{ types: ['geocode'] }
作为选项传递。
因此,删除多余的参数:
var options = {
types: ['geocode'], // or '(cities)' if that's what you want?
componentRestrictions: {country: "us"}
};
autocomplete[name] = new google.maps.places.Autocomplete(
$('#'+name+' .autocomplete')[0], options);
如果您想仅将 Google 地址 API 与英国地址集成。请找到以下地址:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=API_KEY&libraries=places" async defer></script>
<script type="text/javascript>
var autocomplete;
function initialize() {
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('txtpostcode')),
{ types: ['geocode'] });
autocomplete.setComponentRestrictions(
{'country': ['uk']});
google.maps.event.addListener(autocomplete, 'place_changed', function() {
});
}
</script>
相关文章:
- Possibile使用Manifest v2下的HTML5地理位置API将lat/long转换为国家/地区
- 无法使用国家/地区选择中的状态动态填充下拉列表
- 使用自动完成服务()将 Google 地图地点限制为特定国家/地区
- Magento:根据所选国家/地区隐藏/显示输入字段
- 仅在引导程序表单助手国家/地区选取器中显示国家/地区子集文本
- 如何从特定国家/地区重定向用户
- 根据国家/地区更改货币
- 如何将 gmap 搜索自动完成功能限制为有限的国家/地区
- 带有标志和文本的国家/地区建议列表
- 选择国家/地区时更改颜色
- 相对于选定的地区中心缩放SVG国家/地区地图
- Three.js地球仪-使国家/地区可点击
- javascript从所选国家/地区值中选择城市
- 如何获得用户'的国家/地区,并转发到URL
- 下拉菜单,用于选择国家/地区,然后选择州
- 如果在JavaScript w/HTML中选择了特定国家/地区,如何要求邮政编码为数字
- 我如何限制谷歌地图API's的搜索框将搜索到一个国家/地区
- 如何制作验证电话号码中国家/地区代码的正则表达式
- 如何防止谷歌地理编码器从其他国家/地区返回结果
- 如何读取钛合金中的当地国家/地区电话代码xml