Javascript 从Google自动完成设置邮政编码/ZIP
我试图编码,当我在一个文本框中输入一个地址时,它会显示该地址,然后缩短为只有邮政编码-很像下面的gif 遇到此链接,但似乎不起作用-但在正确的线路上Javascript 从Google自动完成设置邮政编码/ZIP,javascript,html,google-maps,google-maps-api-3,google-places-api,Javascript,Html,Google Maps,Google Maps Api 3,Google Places Api,我试图编码,当我在一个文本框中输入一个地址时,它会显示该地址,然后缩短为只有邮政编码-很像下面的gif 遇到此链接,但似乎不起作用-但在正确的线路上 google.maps.event.addDomListener(窗口“加载”,初始化); 函数初始化() { var input=document.getElementById('autocomplete_search'); 变量选项= { 组件限制:{国家:'gb'} }; var autocomplete=new google.maps.
google.maps.event.addDomListener(窗口“加载”,初始化);
函数初始化()
{
var input=document.getElementById('autocomplete_search');
变量选项=
{
组件限制:{国家:'gb'}
};
var autocomplete=new google.maps.places.autocomplete(输入,选项);
var input=document.getElementById('autocomplete_search');
//var autocomplete=new google.maps.places.autocomplete(输入);
autocomplete.addListener('place\u changed',function(){
var place=autocomplete.getPlace();
//place变量将包含您要查找的所有信息。
$('#lat').val(place.geometry['location'].lat());
$('#long').val(place.geometry['location'].lng());
});
}
谷歌在没有显示地图的情况下放置自动完成输入框示例-Tutsmake.com
.集装箱{
填充:10%;
文本对齐:居中;
}
Google在不显示地图的情况下放置自动完成输入框示例
当输入像内维尔路这样的地址时,它不会显示邮政编码(这就是我想要的)。是否有办法从自动完成地址获取邮政编码
目前无法仅在邮政编码上过滤位置自动完成预测。看看谷歌的问题追踪器 但您可以选择在搜索框中仅显示选定地点的邮政编码,而不是完整地址。在您的示例中,您可以按如下方式更改
place\u changed
侦听器:
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
$('#lat').val(place.geometry['location'].lat());
$('#long').val(place.geometry['location'].lng());
let postcode;
for (let i = 0; i < place.address_components.length; i++) {
let types = place.address_components[i].types;
for (let type of types) {
if (type === "postal_code") {
postcode = place.address_components[i].long_name;
}
}
}
if (!postcode) {
postcode = place.formatted_address;
}
$('#autocomplete_search').val(postcode);
});
autocomplete.addListener('place\u changed',function(){
var place=autocomplete.getPlace();
$('#lat').val(place.geometry['location'].lat());
$('#long').val(place.geometry['location'].lng());
让邮政编码;
for(设i=0;i
正在工作(添加API密钥以运行它)
使用上述代码实现,现在如果您在文本字段中键入“Nevile Road”,并选择第一位预测,即英国索尔福德Nevile Road,Salford,UK,您将获得其邮政编码前缀
作为唯一值,即M7
同样,如果您开始键入完整的邮政编码,例如“M7 3PP”,您将获得英国萨尔福德内维尔路M7 3PP位置建议,选择它将为您提供M7 3PP
但是,请注意,这并不总是有效的,因为有许多地址没有一个单一的、特定的邮政编码。例如,“英国伦敦”根本不会返回任何邮政编码(因为它显然不能)
希望这有帮助
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
$('#lat').val(place.geometry['location'].lat());
$('#long').val(place.geometry['location'].lng());
let postcode;
for (let i = 0; i < place.address_components.length; i++) {
let types = place.address_components[i].types;
for (let type of types) {
if (type === "postal_code") {
postcode = place.address_components[i].long_name;
}
}
}
if (!postcode) {
postcode = place.formatted_address;
}
$('#autocomplete_search').val(postcode);
});