Почему не отображается карта с Google Maps? — Хабр Q&A

Почему не отображается карта с Google Maps? — Хабр Q&A

Почему не отображается карта с google maps?

Имеется карта Google

в модальном окне

, но она отображается не корректно. Выводится серым цветом.

5a131b0359219004510200.png

Но если ресайзнуть окно браузера, то карта становится более менее приемливо, но остается только баг с меткой (см. скрин).

5a131b40288b3862834838.png

Ключ API прописан. Код следующий:

<div class="modal-content">
                        <script src='https://maps.googleapis.com/maps/api/js?v=3.exp&key=AIzaSyBEdI95UsiiGhjDAsICADwKsQ5-bjR7WVM'></script>
                        <div style='overflow:hidden;height:340px;width:100%;'>
                            <div id='gmap_canvas' style='height:440px;width:100%;'></div>
                            <style>
                                #gmap_canvas img {
                                    max-width: none!important;
                                    background: none!important
                                }

                            </style>
                        </div>
                        <script type='text/javascript'>
                            function init_map() {
                                var myOptions = {
                                    zoom: 17,
                                    center: new google.maps.LatLng(49.988952, 36.26895860000002),
                                    mapTypeId: google.maps.MapTypeId.ROADMAP
                                };
                                map = new google.maps.Map(document.getElementById('gmap_canvas'), myOptions);
                                marker = new google.maps.Marker({
                                    map: map,
                                    position: new google.maps.LatLng(49.988952, 36.26895860000002)
                                });
                                infowindow = new google.maps.InfoWindow({
                                    content: '<strong>Leo Dent</strong><br>г.Харьков, пр.Московский, 137<br>'
                                });
                                google.maps.event.addListener(marker, 'click', function() {
                                    infowindow.open(map, marker);
                                });
                                infowindow.open(map, marker);
                            }
                            google.maps.event.addDomListener(window, 'load', init_map);

                        </script>
                    </div>

В другой теме

Почему некоректно отображаются карты Google Map?

с похожей проблемой советуют перерисовывать карту. А так же, всегда вызывать этот метод при изменении размеров окна (window resize).

google.maps.event.trigger(MapInstance,'resize')

Не совсем понял как этот метод применить в моем случае.

Добавлено:
Добавил

google.maps.event.addDomListener(window, 'click', init_map);

в код карты и всё стало хорошо отображаться, но карта перерисовывается после каждого клика, как сделать чтобы перерисовывалась только по клику на определенную ссылку?

Почему google map временами выдает ошибку?

Всем привет. Подключил на сайт гугл карты.

Подключаю в конце страницы, самым первым скриптом.

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDwOV3ft4xXnuj9f7aCPTcdKF_bTn6g25A&amp;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(), что вроде как обязывает дождаться загрузки. Но карта все равно работает через раз.
Вот сам сайт.
карта в самом низу

Сейчас ищут техподдержку:  Почему js скрипт не выполняется если он описан в отдельном файле, а не в разметке? — Хабр Q&A
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Оставьте комментарий

Adblock
detector