为什么Google Maps API Key无法识别我的引荐来源网址?

时间:2016-04-21 11:38:18

标签: javascript google-maps google-maps-api-3

我的网站域名(devodeliver.co.uk)上有一个html文件,该文件使用代码调用我的API密钥。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MY-KEY"></script>

在开发者控制台中,我尝试添加域名网址的每个组合,如下所示

enter image description here

但是当我加载我的网站时,它显示地图一毫秒然后返回错误&#34; Google Maps API错误:InvalidKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#invalid-key-map-error_.bb @ MY-KEY:32&#34; - 基本上说我没有授权我的网站访问该API密钥。但即使我没有设置任何引用,它也会返回相同的错误消息。我还等了5分多钟才能让API生效。拜托,我做错了什么?!我花了差不多16个小时试图解决这个问题。我似乎不能为我的生活而努力。 HELPPPP!

完整的HTML代码:

 <html>
 <head>

    <style type="text/css">
      #map
      {
        height:400px;
        width:400px;
        display:block;
      }
    </style>

    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB7-LTLEupUWBJBWl1GpOWPwkMvxzf8itQ"></script>

    <script type="text/javascript">

        function getPosition(callback) {
          var geocoder = new google.maps.Geocoder();
          var postcode = document.getElementById("postcode").value;

          geocoder.geocode({'address': postcode}, function(results, status)
          {
            if (status == google.maps.GeocoderStatus.OK)
            {
              callback({
                latt: results[0].geometry.location.lat(),
                long: results[0].geometry.location.lng()
              });
            }
          });
        }

        function setup_map(latitude, longitude) {
          var _position = { lat: latitude, lng: longitude};

          var mapOptions = {
            zoom: 16,
            center: _position
          }

          var map = new google.maps.Map(document.getElementById('map'), mapOptions);

          var marker = new google.maps.Marker({
            position: mapOptions.center,
            map: map
          });
        }

        window.onload = function() {
          setup_map(51.5073509, -0.12775829999998223);

          document.getElementById("form").onsubmit = function() {
            getPosition(function(position){

              var text = document.getElementById("text")
              text.innerHTML = "Marker position: { Longitude: "+position.long+ ",  Latitude:"+position.latt+" }";

              setup_map(position.latt, position.long);
            });
          }
        }
    </script>

 </head>
 <body>
    <form action="javascript:void(0)" id="form">
      <input type="text" id="postcode" placeholder="Enter a postcode">
      <input type="submit" value="Show me"/>
    </form>
    <div id="map"></div>
    <div id="text"></div>
 </body>
 </html>

1 个答案:

答案 0 :(得分:2)

在这里,当我测试它时,它在JS控制台上给出了错误“Google Maps API错误:ApiNotActivatedMapError”。

https://developers.google.com/maps/documentation/javascript/error-messages#deverrorcodes

上查看此问题

当您通过 Maps-Javascript-API 使用图书馆或服务并使用密钥时,您需要激活 Google Maps JavaScript API

确保为您的项目激活 Google Maps JavaScript API

此外,

查看关于启用 Google Maps Jvascript API的其他主题:Google Map error: InvalidKeyOrUnauthorizedURLMapError