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 个项目。 但我希望这可以帮助你。

请求的服务器端变体如下:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=120&types=(regions)&components=country%3ADE&key=YOUR_API_KEY

您可以在

阅读有关地点 API 自动完成网络服务的信息

https://developers.google.com/places/web-service/autocomplete