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;
}
});
我有一张带有多个标记的地图,这些标记都有一个代表该标记点数据的标签。当这些标记重叠时,标签始终位于所有标记之上。我只想显示顶部标记的标签。如果两个标记现在重叠,底部标记的标签仍显示在顶部标记上方。有谁知道如何在 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;
}
});