Вы можете сделать это, используя StyleFunction.
Посмотрите на следующий пример: http://openlayers.org/en/v3.4.0/examples/vector-layer.html
Если вы увеличите карту, вы увидите, что метки появляются с определенным разрешением. Это контролируется внутри функции стиля. Вот фрагмент:
var featureOverlay = new ol.FeatureOverlay({
map: map,
style: function(feature, resolution) {
// === SEE THIS NEXT LINE ===
var text = resolution < 5000 ? feature.get('name') : '';
if (!highlightStyleCache[text]) {
highlightStyleCache[text] = [new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 1
}),
fill: new ol.style.Fill({
color: 'rgba(255,0,0,0.1)'
}),
text: new ol.style.Text({
font: '12px Calibri,sans-serif',
text: text,
fill: new ol.style.Fill({
color: '#000'
}),
stroke: new ol.style.Stroke({
color: '#f00',
width: 3
})
})
})];
}
return highlightStyleCache[text];
}
});
Таким образом, вы можете определить размер, который вы хотите, чтобы функции имели для любого диапазона разрешений. Обратите внимание, что свойство стиля также применяется к слою ol.layer.Vector
.
person
Alexandre Dubé
schedule
08.04.2015