Я отображаю карту Google во всплывающем окне DevExtreme (использует Bootstrap).Карта возвращается в виде содержимого компонента ASP.NET Core View.
Карта занимает весь элемент div (логотип Google, элементы управления и т. Д.), Но сами фактические данные карты - нет.Он занимает меньшую область и просто имеет серый цвет в другом месте:
Теперь, как только я что-то сделаю с картой - слегка сдвиньте ее, увеличьтепри уменьшении масштаба карта занимает весь элемент:
Вот содержимое ViewComponent, которое создает карту:
<script>
var propertyMap = new google.maps.Map(document.getElementById('mapContainer'), {
zoom: 10,
center: { lat: 40.71, lng: -74.01 },
mapTypeId: google.maps.MapTypeId.HYBRID
});
</script>
<div id="mapContainer" style="width: 100%; height: 100%;"></div>
И функция AJAX, которая извлекает ViewComponent и помещает содержимое во всплывающее окно:
var mapPopup = $("<div />").appendTo($("body")).dxPopup({
width: 930,
height: 650,
visible: false,
closeOnOutsideClick: true
});
function showMapPopup() {
$.ajax({
type: "POST",
url: "/Maps/PropertyMap",
}).done(function (data) {
mapPopup.dxPopup({
contentTemplate: data
});
mapPopup.dxPopup("instance").show();
google.maps.event.trigger(propertyMap, 'resize');
});
}
Я попытался добавить событие google.maps.event.trigger(propertyMap, 'resize')
после показа всплывающего окна на основе более старого, похожего вопроса, но это не такничем не помог.