OpenLayers:如何将自定义 ID 分配给集群以在单击时检索



我们使用带有ol-ext扩展的OpenLayers 4.6.4来显示漂亮的集群。到目前为止,这一切都很好,但我们需要用自定义信息链接每个集群(比如在集群对象中放入一个简单的字段(,一旦集群在地图上被点击,我就想用回调中提供的参数来检索它。

我找不到一个简单的例子来将自定义字段放在集群中,并在地图上单击后检索它们。

我添加侦听器的事件由ol.interaction.SelectCluster从ol-ext 处理

有什么想法吗?

您无法如此容易地更改集群特性,但实际上这并不是获取有关它的信息所必需的

集群只是一个层源,它集群(谁会猜到(一个底层源。它会创建Features,而Features又将所表示的Features存储在特性features中。

ol-ext示例演示了如何读取包含的功能:

var selectCluster = new ol.interaction.SelectCluster(.....);
selectCluster.getFeatures().on(['add'], function (e)
{   var c = e.element.get('features');
if (c.length==1)
{   var feature = c[0];
$(".infos").html("One feature selected...<br/>(id="+feature.get('id')+")");
}
else
{   $(".infos").text("Cluster ("+c.length+" features)");
}
})

在没有任何交互的情况下,你可以这样做:

map.on('singleclick', function(evt) {
const feature = map.forEachFeatureAtPixel(
evt.pixel,
function(someFeature){ return someFeature; }, // stop at the very first feature
);
const containedFeatures = feature.get('features');
});

相关内容

  • 没有找到相关文章

最新更新