Я пытаюсь создать простую карту Openlayers с векторным слоем и одной функцией, которую я могу использовать в своих тестах Jest:
document.body.innerHTML = <div id="test" style="width:500px;height:500px;"></div>;
const targetElement = document.getElementById('test');
const vectorSource = new ol.source.Vector({});
const map = new ol.Map({
layers: [
new ol.layer.Vector({
source: vectorSource,
})
],
view: new ol.View({
center: [0, 0],
zoom: 2,
}),
target: targetElement
});
const coord = [-11690933.557134805, 4804814.791959302]
vectorSource.addFeature(new ol.Feature({
geometry: new ol.geom.Point(coord),
}));
Однако, когда я пытаюсь получить пиксель, используяgetPixelFromCoordinate
, он возвращает null
:
const pixel = map.getPixelFromCoordinate(coord)
Я полагаю, это из-за того, что view
не инициализируется (map.frameState
is null
), согласно этому: https://github.com/openlayers/openlayers/issues/6647
Тогда у меня вопрос, есть ли способ использовать map.getPixelFromCoordinate
без фактического рендеринга map
или способ его рендеринга без головы?