Я использую Openlayers для изображения, ранее переданного Zoomify, потому что оно огромно (2 ГБ +).
В дополнение к карте я использую набор полигонов, к которым я прикрепил функции javascript. Я использую их через функцию «sourceFeatures.addFeature (featurePolyXY)»;
Изображение немного меньше, чем используемое для создания полигонов.
Поскольку полигоны создаются из большого XML-файла с многочисленными значениями, идея состоит в том, чтобы увеличить карту, чтобы она соответствовала полигонам, а не изменяла координаты полигонов.
Я думал, что смогу изменить размер карты с помощью параметра "size" в ol.source.Zoomify.
хотя размерность, умноженная на 2, работает отлично, все остальные промежуточные величины не всегда рассчитываются, предлагая стандартный размер Видя, что я впервые использую openlayers, я убежден, что решение у меня под носом и что я его не замечаю ...
вот код, который я использую:
//these values are taken from the ImageProperties.xml file created by
//zoomify
var imgWidth = 33165;
var imgHeight = 33165;
var url = 'imageFolder/';
var crossOrigin = 'anonymous';
var imgCenter = [imgWidth / 2, - imgHeight / 2];
var proj = new ol.proj.Projection({
code: 'ZOOMIFY',
units: 'pixels',
extent: [0, 0, imgWidth, imgHeight]
});
var source = new ol.source.Zoomify({
url: url,
//i think here is the parameter i would like to change
size: [imgWidth, imgHeight],
crossOrigin: crossOrigin
});
//MAP
var map = new ol.Map({
layers: [
new ol.layer. Tile({
source: source
}),
layerFeatures
],
target: 'map',
view: new ol.View({
projection: proj,
center: imgCenter,
zoom: 2,
extent: [0, -imgHeight, imgWidth, 0]
})
});
О параметре:
размер: [imgWidth, imgHeight]
Я пытался ввести следующие значения
size: [33165, 33165] => изображение отображается в соответствии с оригинальным размером
size: [66330, 66330] => правильно изображение удваивает размер
size: [imgWidth * 2, imgHeight * 2] => правильно изображение удваивает размер
размер: [imgWidth * 5, imgHeight * 5] => правильно размер изображения * 5
size: [49000, 49000] => изображение отображается в соответствии с исходным размером
В консоли отсутствуют ошибки.
Есть ли возможность увеличить размер изображения не двойным или кратным, а средним, например * 1,3?