我正在尝试构建一个自动填充功能,人们可以开始输入邮政编码,并在邮政编码完成之前获得有意义的建议。
现有示例可在此处找到:https://weisse-liste.de/de/arzt/arztsuche/
打字" 120"在" Ort oder Postleitzahl"获取邮政编码以" 120"开头的建议列表。我不隶属于此网站,也不知道他们是否使用Google地理编码API。 (请求进入他们自己的服务器,然后他们用它做一些事情。)
我最接近Google API的是http://maps.googleapis.com/maps/api/geocode/json?address=120&sensor=false&components=country:DE
但是这给了我的唯一结果就是" formatted_address" :"德国",所以整个国家。
现有答案提出了客户端javascript。鉴于这个问题,这是完全有效的。
看到答案提供类似于上面的手工制作的网址仍然很有趣,可以在服务器端请求中使用。如果这是不可能的,没问题。通过避免向Google提出客户端请求,优势可能是访问者的隐私。我甚至不是说这是一个好主意,但它仍然是有用的信息。
答案 0 :(得分:2)
您现有的示例不使用Google Geocoder,它有自己的查询: https://weisse-liste.de/api/zip/suggest?term=120
您也可以这样做,例如使用PHP和MySQL,但是你应该有完整的邮政编码列表。而且我认为那将是另一个话题。
我可以在此处向您显示地方自动填充javascript示例:https://jsfiddle.net/5377x9y8/
var input = document.getElementById('pac-input');
var options = {
types: ['(regions)'],
componentRestrictions: {'country': 'de'}
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
var address = '';
if (place.address_components) {
address = [
(place.address_components[0] && place.address_components[0].short_name || ''),
(place.address_components[1] && place.address_components[1].short_name || ''),
(place.address_components[2] && place.address_components[2].short_name || '')
].join(' ');
}
document.getElementById('addr').innerHTML = '<div><strong>' + place.name + '</strong><br>' + address;
});
不幸的是,它没有给出整个邮政编码列表,因为结果仅限于5个项目。 但我希望这可以帮助你。
答案 1 :(得分:1)