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
            });