openlayers используют svg, так как слои не могут работать в IE11 - PullRequest
0 голосов
/ 28 сентября 2018

Когда я использую SVG в качестве слоя, я установил imageSize, но он не работает на IE11. Но на IE10 он работает.

версия openlayers: 4.6.5.

вот мое демо.

https://lucas0819.github.io/

вот мой код.

var imgWidth = 1132;
var imgHeight = 804;
var center = [0, 0];
var extent = [-566000, -402000, 566000, 402000];
var map = new ol.Map({
    view: new ol.View({
        center: center,
        zoom: 7
    }),
    target: 'map',
    controls: [],
    layers: [
        new ol.layer.Image({
            source: new ol.source.ImageStatic({
                url: 'https://upload.wikimedia.org/wikipedia/commons/f/fd/Ghostscript_Tiger.svg',
                imageSize: [imgWidth, imgHeight],
                imageExtent: extent
            })
        })
    ]
});


<div id="map" class="map"></div>
<link href="https://cdn.bootcss.com/openlayers/4.6.5/ol-debug.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/openlayers/4.6.5/ol-debug.js"></script>

1 Ответ

0 голосов
/ 29 сентября 2018

Это потому, что в IE11 он не может получить высоту изображения при создании элемента с помощью new Image(); Чтобы получить высоту изображения, я переписываю функцию defaultImageLoadFunction в опциях:

imageLoadFunction: function (image, src) {
  image.getImage().src = src;
  image.getImage().width = imgWidth;
  image.getImage().height = imgHeight;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...