OpenLayers绘制线宽,以米为单位

时间:2015-12-27 17:52:58

标签: openlayers-3

想要以米为单位绘制线宽的线串

尝试样式,但它们是固定宽度(以像素为单位),并且在缩放时不会改变线条粗细

提前致谢

2 个答案:

答案 0 :(得分:1)

如果有人有兴趣:

function() {
    return [
        new ol.style.Style({
            stroke: new ol.style.Stroke({
                color: 'rgba(0,0,0,1)',
                width: 50 / ol.map.getView().getResolution()
            })
        })
    ]
}

您可以提供一个返回ol.style.Style而不是直接使用ol.style.Style的函数(例如setStyle)。

在每个渲染过程中调用此函数,您可以动态更改ol.style.Stroke的宽度。

在上面的情况下,如果使用Web墨卡托投影(EPSG:3857),则绘制一条线,其中宽度should代表现实世界中的50米。

答案 1 :(得分:0)

尝试使用Polygon,或者在drawend之后将Line更改为Polygon。