Подтвердить что ты не робот

Uncaught ReferenceError: google не определен

Я хочу использовать функцию геолокации и направления, но есть ошибка 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);
        }

Кажется, что loadScript не работает!

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

Здесь выскочит ошибка. Кто-нибудь знает, как это понять? Мне нужно использовать ключ, чтобы получить услугу геолокации, поэтому я не могу использовать простой

<script src="https://maps.googleapis.com/maps/api/js?sensor=true"></script>
4b9b3361

Ответ 1

Я попробовал это самостоятельно с помощью этого кода - он отлично работал у меня

Динамический с ключом

<!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>

Статический без ключа

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

При серфинге через сеть я упал на важную заметку!

API JavaScript Google Maps v3

API Google Maps JavaScript v3 не требует ключа API для правильно функционируют. Однако мы настоятельно рекомендуем вам загрузить API Карт с помощью ключа консоли API, который позволяет вам отслеживать ваши использование API Карт приложения. Узнайте, как использовать ключ консоли API.

См. API Карт Google

Итак, очевидно, вам больше не нужен ключ разработчика! Я попробовал это с обоими - статический ключ и динамик с ключом - оба работали.

Ответ 2

Если вы получаете ошибку в консоли, то вот простое решение, которое я применил.

включают файлы script в заданной последовательности.

<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>

Сначала вы должны сначала включить "maps.googleapis.com/maps/api/js?sensor=false", затем перейти на jQuery-библиотеку и удалить ее снизу (это будет работать.) Я надеюсь, что это определенно сработает.

Ответ 3

Google не определен, означает, что ваша библиотека карт google не загружается, что означает, что вы находитесь на https или http, и вы запрашиваете через http ot https, чтобы изменить его на https или http.... если вы находитесь на http, то

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

означает, что если вы находитесь на https, то

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>