OpenLayers 多线画线消失
OpenLayers Multi-line drawing lines disappear
通常情况下,代码通过计算将在每次地图移动中出现的线串来绘制。但是在某种收敛中绘制的线条消失了。示例代码中,绿线是主线,并没有消失,但是放大后,它外面的线就消失了。你可以试着靠近代码上的线。
代码示例如下:JSFiddle
var lineString = new ol.style.LineStrings({
valLine:7,
valDistance:150,
color: 'green',
width: 4,
widthLines:4,
colorArray: ['blue', 'red', 'white', 'black', 'orange', 'blue', 'red', 'white', 'black', 'orange'],
}
这可能是什么原因,如何解决?
您将中心线(真实特征)设计为七条线(不是真实特征,只是用于造型的几何图形)。如果真实要素不在地图视口和层的渲染缓冲区所覆盖的区域中,则不会对其进行样式设置(尽管在平移时它可能仍然可见,因为样式功能不会重新运行,除非分辨率发生变化)。为避免外围样式线在高缩放级别消失,您需要将图层上的 renderBuffer
设置为非常大的数字,例如
var vectorLayer = new ol.layer.Vector({
source: vectorSource,
renderBuffer: 1e10,
style:lineString
});
通常情况下,代码通过计算将在每次地图移动中出现的线串来绘制。但是在某种收敛中绘制的线条消失了。示例代码中,绿线是主线,并没有消失,但是放大后,它外面的线就消失了。你可以试着靠近代码上的线。
代码示例如下:JSFiddle
var lineString = new ol.style.LineStrings({
valLine:7,
valDistance:150,
color: 'green',
width: 4,
widthLines:4,
colorArray: ['blue', 'red', 'white', 'black', 'orange', 'blue', 'red', 'white', 'black', 'orange'],
}
这可能是什么原因,如何解决?
您将中心线(真实特征)设计为七条线(不是真实特征,只是用于造型的几何图形)。如果真实要素不在地图视口和层的渲染缓冲区所覆盖的区域中,则不会对其进行样式设置(尽管在平移时它可能仍然可见,因为样式功能不会重新运行,除非分辨率发生变化)。为避免外围样式线在高缩放级别消失,您需要将图层上的 renderBuffer
设置为非常大的数字,例如
var vectorLayer = new ol.layer.Vector({
source: vectorSource,
renderBuffer: 1e10,
style:lineString
});