如何使用OpenLayers 4在多边形上绘制内部缓冲区或内部笔划

时间:2017-08-03 10:41:34

标签: openlayers openlayers-3 cartography

我想重新创建OSM在编辑多边形时使用的相同样式。我称之为“内部中风”或“内部缓冲”。

OSM示例:

enter image description here

我知道我可以使用ol.style.Style数组,其中一个发送回geometry作为内部缓冲区。但是,创建新几何图形似乎非常耗费资源,只是为了用缓冲区来表示原始几何体。这是推荐的方式吗?我可以以某种先进的方式使用ol.style.Stroke吗?

另一个特点是“内部笔触”的屏幕像素宽度是一个恒定的量,与缩放级别无关。例如,这是多边形缩小并在:

Zoomed out Zoomed in

1 个答案:

答案 0 :(得分:0)

这与我在项目中使用的类似。我从http://openlayers.org/en/latest/apidoc/ol.style.html获得了这段代码如果你想要一个更粗的边框,你可以增加笔画的宽度。

var fill = new ol.style.Fill({
    color: 'rgba(255,255,255,0.4)'
});
var stroke = new ol.style.Stroke({
    color: '#3399CC',
    width: 1.25
});
var style = new ol.style.Style({
    fill: fill,
    stroke: stroke
});