Alf*_*nse 3 javascript jquery twitter-bootstrap-3 openlayers-3
当试图在模态中显示ol3地图时,看起来有一个奇怪的错误.地图位于模态中,但不显示.然后手动调整窗口大小会强制显示.这是一个尝试看看我的意思的链接.单击每个地图中的设置下拉菜单.点击"获取功能信息".这将切换模态中的地图(但不显示).调整窗口大小.瞧!
我尝试了很多方法来使用javascript和jQuery来触发调整大小事件:
$('#featinfo').on('shown.bs.modal', function () {
ol.Map.event.trigger(map5, "resize"); //borrowed from google.maps.event. How to do this in ol3?
});
Run Code Online (Sandbox Code Playgroud)
救命?
小智 6
我有同样的问题.在模态打开后,您需要强制加载地图.尝试在地图中使用一个函数:
function loadMap () {
var map = new ol.Map({
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}).extend([mousePositionControl]),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
}
Run Code Online (Sandbox Code Playgroud)
并且,一旦打开模态,shown.bs.modal就会被触发
<script>
$('#GazModal').on('shown.bs.modal', function () {
loadMap();
})
</script>
Run Code Online (Sandbox Code Playgroud)
你有没有尝试过:
map.updateSize();
Run Code Online (Sandbox Code Playgroud)