У меня есть векторный слой со стилем в настоящее время определяется как:OL3/Openlayers3: изменения радиуса окружности при увеличении
var styles = new ol.style.Style({
image: new ol.style.Circle({
radius: 4,
fill: new ol.style.Fill({color: 'red'}),
stroke: new ol.style.Stroke({color: 'black', width: 1})
})
Я хочу, чтобы радиус динамически изменяться, основываясь на уровне масштабирования карты - что-то вроде:
радиус: (увеличение/2) +1
Как бы я идти об этом?
ОБНОВЛЕНИЕ: Комментарий Джонатаса помог мне направить меня в правильном направлении. Я закончил с использованием следующих:
map.getView().on('change:resolution', function(evt) {
var zoom = map.getView().getZoom();
var radius = zoom/2 + 1;
var newStyle = new ol.style.Style({
image: new ol.style.Circle({
radius: radius,
fill: new ol.style.Fill({color: 'red'}),
stroke: new ol.style.Stroke({color: 'black', width: 1})
})
})
vectorLayer.setStyle(newStyle);
});
Спасибо - это помогло мне начать. – bramb84