如何在现有代码中配置Google Maps Autocomplete新西兰国家限制
解决方案
要把Google地图自动补全限定为新西兰(NZ),需要在两个关键位置添加地域限制配置:
1. 配置Autocomplete组件的地域限制
在setupInputListenersInput函数中,Autocomplete的初始化逻辑已经引用了gmapContext.settings.autocompleteOptions,你可以通过两种方式添加限制:
方式一:修改插件初始化配置
在调用locationpicker插件的初始化代码中,更新autocompleteOptions参数:
// 示例插件初始化代码 $('.your-location-element').locationpicker({ enableAutocomplete: true, autocompleteOptions: { componentRestrictions: { country: 'NZ' } }, // 其他原有配置项... });
方式二:直接修改Autocomplete初始化代码
如果找不到插件初始化的配置位置,可直接修改setupInputListenersInput函数内的代码:
// 替换原Autocomplete初始化行 gmapContext.autocomplete = new google.maps.places.Autocomplete( inputBinding.locationNameInput.get(0), Object.assign({}, gmapContext.settings.autocompleteOptions, { componentRestrictions: { country: 'NZ' } }) );
2. 配置失焦事件中的地理编码限制
代码中开启enableAutocompleteBlur后,输入框失焦时会触发Geocoder解析地址,这部分也需要添加地域限制,避免返回其他国家结果:
// 修改geocode调用的参数 gmapContext.geodecoder.geocode({ address: address, componentRestrictions: { country: 'NZ' } // 添加该行 }, function(results, status) { // 原有回调逻辑保持不变 });
完成以上修改后,自动补全和失焦解析都会仅返回新西兰境内的地点结果。
内容的提问来源于stack exchange,提问作者Phil Wood
相关产品推荐
相关产品推荐

