谷歌地理编码器API:查找部分邮政编码(德国)

时间:2016-06-27 22:40:23

标签: google-maps google-maps-api-3 geocoding google-geocoder google-geocoding-api

我正在尝试构建一个自动填充功能,人们可以开始输入邮政编码,并在邮政编码完成之前获得有意义的建议。

现有示例

现有示例可在此处找到:https://weisse-liste.de/de/arzt/arztsuche/

打字" 120"在" Ort oder Postleitzahl"获取邮政编码以" 120"开头的建议列表。我不隶属于此网站,也不知道他们是否使用Google地理编码API。 (请求进入他们自己的服务器,然后他们用它做一些事情。)

尝试使用Google地理编码API

我最接近Google API的是http://maps.googleapis.com/maps/api/geocode/json?address=120&sensor=false&components=country:DE

但是这给了我的唯一结果就是" formatted_address" :"德国",所以整个国家。

编辑:客户端js vs服务器端php /手工制作请求URL

现有答案提出了客户端javascript。鉴于这个问题,这是完全有效的。

看到答案提供类似于上面的手工制作的网址仍然很有趣,可以在服务器端请求中使用。如果这是不可能的,没问题。通过避免向Google提出客户端请求,优势可能是访问者的隐私。我甚至不是说这是一个好主意,但它仍然是有用的信息。

2 个答案:

答案 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)