У меня есть приложение Cordova, в котором я отображаю карту Google в нескольких представлениях.
Я создаю экземпляр карты в div через
mapElement = document.createElement('div');
mapElement.style.width = '100%';
mapElement.style.height = '100%';
mapElement.setAttribute("id", "map");
map = new google.maps.Map(mapElement, {
center: SYDNEY,
zoom: 16,
disableDefaultUI: true,
gestureHandling: 'greedy'
});
Я добавляю это mapElement
для родительского элемента div, когда мне нужно отобразить карту.
Кажется, он работает в настольном браузере, Android, даже в Safari на Mac.Но это не работает на симуляторах iPhone и iOS.
В симуляторах iPhone и iOS карта кажется серой, пока я ее не трогаю, если я ее немного перетаскиваю, она отображается правильно.
Я создал минимальное решение для своего кода https://codepen.io/anon/pen/pGGMBq
Примечание : Кажется, это вызвано недавним обновлением API Карт, я полагаю,потому что тот же подход работал несколько дней назад.
Вот сценарий
https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyBXwFGK-MgYDbrQU0uLBmN372VefginLIU&libraries=geometry,drawing
То, что я пробовал
- Запуск изменения размера с помощью google.maps.event.trigger (map, "resize");
- Изменение высоты контейнера с помощью jQuery.
- Несколько других настроек