未捕获的ReferenceError:未定义谷歌

use*_*941 13 javascript geolocation

我想使用地理定位和方向功能,但有google is not defined错误.代码如下:

function loadScript() {
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = "https://maps.googleapis.com/maps/api/js?key=mykey&sensor=true" + "&callback=initialize";
            document.body.appendChild(script);
        }
Run Code Online (Sandbox Code Playgroud)

似乎loadScript不起作用!

var mapOptions = {
                zoom : 13,
                mapTypeId : google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
Run Code Online (Sandbox Code Playgroud)

错误从这里跳出来.谁知道如何解决这个问题?我需要使用密钥来获取地理定位服务,所以我不能使用简单的

<script src="https://maps.googleapis.com/maps/api/js?sensor=true"></script>
Run Code Online (Sandbox Code Playgroud)

Pil*_*anz 11

我用这个代码自己尝试了 - 它对我来说很好

用钥匙动态

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        html {  height: 100%; }
        body
        {
            height: 100%;
            margin: 0px;
            padding: 0px;
        }
        #map_canvas { height: 100%;}
    </style>
    <script type="text/javascript">
        function initialize() {
            var latlng = new google.maps.LatLng(-34.397, 150.644);
            var myOptions = {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
        }
        var myKey = "ENTER_YOUR_KEY_HERE";
        function loadScript() {
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = "https://maps.googleapis.com/maps/api/js?key=" + myKey + "&sensor=false&callback=initialize";
            document.body.appendChild(script);
        }
    </script>
</head>
<body onload="loadScript()">
    <div id="map_canvas" style="width: 100%; height: 100%">
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

静态无键

  ...
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false">
</script>
</head>
<body onload="initialize()">
   ...
Run Code Online (Sandbox Code Playgroud)

当我在网上冲浪时,我翻过一个重要的音符!

Google Maps JavaScript API v3

Google Maps JavaScript API v3不需要API密钥即可正常运行.不过,我们强烈建议您使用API​​控制台键加载Maps API,以便监控应用程序的Maps API使用情况.了解如何使用API​​控制台密钥.

请参阅Google Maps API

所以,显然你不再需要开发人员密钥了!我尝试了它 - 静态无键和动态键 - 两者都有效.


Far*_*bas 11

如果您在控制台中遇到错误,那么这里是我应用的简单解决方案.

包含给定顺序的脚本文件..

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

你必须首先包括'maps.googleapis.com/maps/api/js?sensor=false'然后去jquery库并从下面删除它(它会工作.)我希望它肯定会有效.