繁体   English   中英

OpenLayers 3图片和文字样式zindex

[英]OpenLayers 3 Image and Text style zindex

我注意到,文本和图像样式在渲染时似乎并不遵循其图层顺序。 例如,当许多具有这些样式的要素靠近在一起时,所有文本都会呈现在其他重叠的矢量要素之上。 有没有办法禁用或覆盖此行为? 谢谢。

myFeature.setStyle(new ol.style.Style({
  image: new ol.style.Icon({
    src: '/images/myImage.png',
    anchor: [0.5, 1],
    anchorXUnits: 'fraction',
    anchorYUnits: 'fraction'
  })
}));

myOtherFeature.setStyle(new ol.style.Style({
  image: new ol.style.Circle({
    fill: new ol.style.Fill({
      color: 'rgb(255,200,77)'
    }),
    stroke: new ol.style.Stroke({
      color: 'rgba(0,0,0,.2)',
      width: 1
    }),
    radius: 14
  }),
  text: new ol.style.Text({
    font: 'light 10px Arial',
    text: '1',
    fill: new ol.style.Fill({color: 'black'}),
    stroke: new ol.style.Stroke({color: 'black', width: 0.5})
  })
}));

在将点符号与文本堆叠时,如果希望文本粘贴到符号上,则需要给每个点自己的zIndex(递增)。 参见http://jsfiddle.net/8g1vayvc/ 您也可以在样式函数中执行此操作:

var myStyle = new ol.style.Style({/*...*/});
var zIndex = 0;
function styleFunction(feature, resolution) {
  myStyle.setZIndex(zIndex++);
  return myStyle;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM