Google 地理编码器 API:查找部分邮政编码(德国)
Google geocoder API: Lookup partial postal code (Germany)
我正在尝试构建一个自动完成功能,人们可以在其中开始输入邮政编码,并在邮政编码完成之前获得有意义的建议。
现有示例
可在此处找到现有示例:https://weisse-liste.de/de/arzt/arztsuche/
在 "Ort oder Postleitzahl" 中输入“120”可获得邮政编码以“120”开头的建议列表。我不隶属于这个网站,不知道他们是否甚至在使用 Google 地理编码 API。 (请求转到他们自己的服务器,然后他们用它做一些事情。)
尝试使用 Google 地理编码 API
我能得到的最接近 Google API 的是 http://maps.googleapis.com/maps/api/geocode/json?address=120&sensor=false&components=country:DE
但这给我的唯一结果是带有 "formatted_address" 的结果:"Germany",所以整个国家。
编辑:客户端 js 与服务器端 php / 手工请求 url
现有答案建议客户端 javascript。考虑到这个问题,这是完全有效的。
看到一个给出与上面类似的手工制作的 url 的答案仍然很有趣,它可以在服务器端请求中使用。如果这不可能,没问题。通过避免对 Google 的客户端请求,访问者的隐私可能是一个优势。我什至不是说这是个好主意,但它仍然可能是有用的信息。
您现有的示例不使用 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 个项目。
但我希望这可以帮助你。
请求的服务器端变体如下:
您可以在
阅读有关地点 API 自动完成网络服务的信息
https://developers.google.com/places/web-service/autocomplete
我正在尝试构建一个自动完成功能,人们可以在其中开始输入邮政编码,并在邮政编码完成之前获得有意义的建议。
现有示例
可在此处找到现有示例:https://weisse-liste.de/de/arzt/arztsuche/
在 "Ort oder Postleitzahl" 中输入“120”可获得邮政编码以“120”开头的建议列表。我不隶属于这个网站,不知道他们是否甚至在使用 Google 地理编码 API。 (请求转到他们自己的服务器,然后他们用它做一些事情。)
尝试使用 Google 地理编码 API
我能得到的最接近 Google API 的是 http://maps.googleapis.com/maps/api/geocode/json?address=120&sensor=false&components=country:DE
但这给我的唯一结果是带有 "formatted_address" 的结果:"Germany",所以整个国家。
编辑:客户端 js 与服务器端 php / 手工请求 url
现有答案建议客户端 javascript。考虑到这个问题,这是完全有效的。
看到一个给出与上面类似的手工制作的 url 的答案仍然很有趣,它可以在服务器端请求中使用。如果这不可能,没问题。通过避免对 Google 的客户端请求,访问者的隐私可能是一个优势。我什至不是说这是个好主意,但它仍然可能是有用的信息。
您现有的示例不使用 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 个项目。 但我希望这可以帮助你。
请求的服务器端变体如下:
您可以在
阅读有关地点 API 自动完成网络服务的信息https://developers.google.com/places/web-service/autocomplete