OpenLayers 绘制线宽以米为单位的线串

OpenLayers draw line string with line width in meters

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

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

提前致谢

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

如果有人感兴趣:

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

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

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

在上面的例子中画了一条线,如果您使用 Web Mercator 投影 (EPSG:3857),其中宽度 should 代表现实世界中的 50 米。