首页 > 解决方案 > 为什么我的新 Google Maps API 密钥不起作用?

问题描述

我有一个与谷歌 api 一起工作多年的函数。我们必须获得一个新的 api 密钥,但现在似乎没有任何效果。发生的情况是,由于 geocoder.geocode 中的代码不起作用,我在 alert(address) 行之后没有得到任何输出。没有错误,因为 geocoder.geocode 代码只是无法工作,它会跳到最后一个警报。

//in view to call the function
    <input type="button" value="calculate" id="calculate_address_lat_long" class="btn btn-info btn-block waves-effect waves-light">
     <div class="mute" id="formated_address_lat_long"></div> 

    //in layout          <script async defer src="https://maps.googleapis.com/maps/api/js?key=hidden" type="text/javascript"></script>




  $(document).on('click', '#calculate_address_lat_long', function () {
        var address = '';
        address += $('#street').val();
        address += ' ' + $('#suburb').val();
        address += ' ' + $('#postcode').val();
        address += ' ' + $('#state').val();

     //  alert( $('#street').val());


              alert(google.maps.GeocoderStatus.OK);
            alert( address);
     //geocoder function fails to run with no error      
        geocoder.geocode( { 'address': address}, function(results, status) {

            if (status == google.maps.GeocoderStatus.OK) {


                  alert('asdasd');
                  console.log(results); 
                var latitude = results[0].geometry.location.lat();
                var longitude = results[0].geometry.location.lng();
                $('#lat').val(latitude);
                $('#long').val(longitude);
                $('#formated_address_lat_long')
                    .html('<div class="alert alert-success">' + results[0].formatted_address + '</div>')
                    .fadeTo(100, 0.1).fadeTo(250, 1)
                    .css({"position": "relative","top": "15px"});
           // alert($('#lat').val(latitude));

            } else {
                  alert('qqqasdasd');

             //     alert($('#lat').val(latitude));
           // alert($('#long').val(longitude));
                $('#formated_address_lat_long')
                    .fadeTo(100, 0.1).fadeTo(250, 1)
                    .html('<div class="alert alert-error">Address Not Found</div>')
                    .css({"position": "relative","top": "15px"});
            }
        });
         alert('1111qqqasdasd');

    });

标签: javascriptjquerygoogle-mapsgoogle-maps-api-3google-api

解决方案


问题已从谷歌控制台端解决。您不仅为谷歌地图创建了一个 api 密钥,而且一个鲜为人知的事实是,您必须在谷歌地图下的谷歌云控制台中为 js 和地理定位激活/启用 api 密钥。给出的代码没有任何问题,这与 api 密钥有关,现在一切正常


推荐阅读