Google地图自动填充字段不会列出地址

时间:2016-07-06 14:36:01

标签: google-maps autocomplete google-api

我在Google api控制台上创建了一个项目并获得了一个浏览器密钥,以便显示带有Google地图自动填充功能的文本框。虽然我在浏览器控制台中没有收到任何错误,但自动完成功能不起作用。这是我的HTML

<html>
<head>
    <meta charset = "utf-8"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
</head>

<body onload = "initialize();">
<form method = "post">
    <input type = "text" id = "autocomplete" placeholder = "Η Διευθυνσή σας"/>
</form>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBmm_XsU6QttZNhw1RfxRHTpavpbN33jX0&libraries=places,geometry" async defer></script>
<script type = "text/javascript">
        var autocomplete;
        function initialize() {
          autocomplete = new google.maps.places.Autocomplete(
              /** @type {HTMLInputElement} */(document.getElementById('autocomplete')),
              { types: ['geocode'] });

        }
    </script>
</body>

这是我的测试页:http://www.lefko-cafe.gr/content/addrress_finder.php

奇怪的是,完全相同的html在另一个域中工作(密钥除外):http://www.laoskaikalamaki.gr/content/addrress_finder.php

3 个答案:

答案 0 :(得分:3)

如果您要使用Places Service,则需要更改Maps API Standard Plan,您需要启用Google Places API Web Service in the developer console

对于任何其他服务也是如此,如果您希望我们Directions您需要启用Google Maps Directions API,如果您想使用Geocoding,则需要启用Google Maps Geocoding API

最近发生了变化,因此无需抱歉。

答案 1 :(得分:1)

你的例子都不适合我。 onload事件和脚本加载的完成是两个不同的异步事件,它们可能在不同的服务器/浏览器位置以不同的顺序触发。我收到了javascript错误Uncaught TypeError: Cannot read property 'innerHTML' of null 您的API包含async defer,但没有&callback=initialize参数。

代码段

<body> <!-- remove onload = "initialize();" -->
<form method = "post">
    <input type = "text" id = "autocomplete" placeholder = "Η Διευθυνσή σας"/>
</form>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBmm_XsU6QttZNhw1RfxRHTpavpbN33jX0&libraries=places,geometry&callback=initialize" async defer></script>

&#13;
&#13;
<form method="post">
  <input type="text" id="autocomplete" placeholder="Η Διευθυνσή σας" />
</form>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places,geometry&callback=initialize" async defer></script>
<script type="text/javascript">
  var autocomplete;

  function initialize() {
    autocomplete = new google.maps.places.Autocomplete(
      /** @type {HTMLInputElement} */
      (document.getElementById('autocomplete')), {
        types: ['geocode']
      });
  }
</script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果您的域名在2016年6月22日之后,则需要

api-key。如果您只想使用谷歌自动填充功能

,则需要启用以下API
  • Google Maps JavaScript API
  • Google Places API网络服务