
有一个需求,给的数据可以用linestring画出来,但是边框需要按照途中标注的用曲线表示,有点类似linedash的只是把虚线要绘制成途中的样式,各位有好的方法吗。openlayers的ol.style.stroke目前看来只找到了用canvas画布来自定义边框但是效果不理想..canvas设置的边框样例http://viglino.github.io/ol-ext/examples/style/map.style.strokepattern.html

有一个需求,给的数据可以用linestring画出来,但是边框需要按照途中标注的用曲线表示,有点类似linedash的只是把虚线要绘制成途中的样式,各位有好的方法吗。openlayers的ol.style.stroke目前看来只找到了用canvas画布来自定义边框但是效果不理想..canvas设置的边框样例http://viglino.github.io/ol-ext/examples/style/map.style.strokepattern.html
关注引自强大而免费的微信小程序:皆我百晓生。
在OpenLayers中,可以使用ol.style.Stroke来设置面或者线的边框样式。ol.style.Stroke包含以下属性可供自定义:
color:边框的颜色,可以是CSS颜色字符串或者RGBA数组。width:边框的宽度。lineDash:边框的虚线样式。要实现按照途中标注的样式来绘制边框,可以使用ol.style.Stroke的lineDash属性。根据你的需求,你可以将lineDash属性设置为包含曲线样式的数组,例如 [5, 5] 表示5像素实线和5像素空白(间隔)。
以下是一个示例代码,展示如何设置面的边框样式:
var fill = new ol.style.Fill({
color: 'rgba(255, 255, 255, 0.6)'
});
var stroke = new ol.style.Stroke({
color: 'rgba(0, 0, 255, 1)',
width: 2,
lineDash: [5, 5] // 曲线样式:5像素实线和5像素空白
});
var style = new ol.style.Style({
fill: fill,
stroke: stroke
});
var feature = new ol.Feature(...); // 创建一个要素,例如线的几何图形
feature.setStyle(style); // 设置要素的样式
你可以根据实际需求调整color、width和lineDash属性的设置。
希望对你有所帮助!