Всем привет. Подключил на сайт гугл карты.
Подключаю в конце страницы, самым первым скриптом.
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDwOV3ft4xXnuj9f7aCPTcdKF_bTn6g25A&callback=initMap" async=""></script>
А потом уже файл со своими скриптами.
Внутри данного файла подключение выглядит так:
$(function() {
$(document).ready(function(){
window.initMap = function() {
var myLatLng = {lat: 45.1201, lng: 39.0096};
var map = new google.maps.Map(document.getElementById('map'), {
center: myLatLng,
scrollwheel: false,
zoom: 18
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
}
});
});
Но время от времени я ловлю такую ошибку: Uncaught InvalidValueError: initMap is not a function
Я догадываюсь, что это происходит по причине того, что код выполняется раньше подключения файла гугл карт, но почему так происходит? Я подключаю этот файл первым (пробовал и асинхронный вариант и простой), внутри своего кода пишу $(document).ready(), что вроде как обязывает дождаться загрузки. Но карта все равно работает через раз.
Вот сам сайт.
карта в самом низу