Openlayers 标签重叠

Openlayers labels overlapping

我有一张带有多个标记的地图,这些标记都有一个代表该标记点数据的标签。当这些标记重叠时,标签始终位于所有标记之上。我只想显示顶部标记的标签。如果两个标记现在重叠,底部标记的标签仍显示在顶部标记上方。有谁知道如何在 openlayers 3 中解决这个问题?

您可以使用 zIndex 样式 属性 将标签粘贴到标记上。使用图层样式函数时,图层定义可能如下所示:

var style = new ol.style.Style({
  text: new ol.style.Text({
    text: '',
    // ...
  }),
  image: new ol.style.Icon({
    // ...
  })
});
var styles = [style];
var index = 0;
var vectorLayer = new ol.layer.Vector({
  style: function(feature, resolution) {
    style.getText().setText(feature.get('name'));
    style.setZIndex(index);
    index = (index == Number.MAX_VALUE) ? 0 : index + 1;
    return styles;
  }
});