我有用户绘制功能的地图。在用户自定义输入地图比例后,我需要能够根据此比例调整所有现有地图要素的大小。
在OL 3中执行此操作的方法是什么?我在OL 2中看到过,有一个geometry.resize函数。
感谢。
答案 0 :(得分:0)
您可以使用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];
}
});
因此,您可以为任何分辨率范围定义要素的大小。请注意,style属性也适用于ol.layer.Vector
图层。
答案 1 :(得分:-1)
您可以使用API:map.updateSize()
。
参考:http://openlayers.org/en/latest/apidoc/ol.Map.html#updateSize