首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenLayers 3从同一图层选择多个要素

OpenLayers 3从同一图层选择多个要素
EN

Stack Overflow用户
提问于 2016-02-23 04:21:08
回答 2查看 2.5K关注 0票数 0

我有一个具有重叠特征的层(例如,边界框)。在OL2中,选择控件似乎选择了预期的特征(例如,具有较小表面积的特征)。在OL3中,情况似乎并非如此。虽然我可以获得特定像素上的所有特征,但我更希望select控件返回与单击相交的所有特征。有办法做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2016-12-02 20:49:29

您可以将ol.interaction.Selectmulti成员设置为true (它允许选择您单击的坐标处的所有要素),并添加一个事件以选择要在所有重叠要素中选择的要素:

代码语言:javascript
运行
复制
var select = new ol.interaction.Select({
  multi: true
});

var fnHandler = function (e) {
  e.selected; // array of selected features
  e.target; // select interaction
  var feature = e.selected.filter(function (feature) {
    // do some filtering to choose what feature do you want
  })[0];
  e.target.getFeatures().clear(); // unselect all features
  e.target.getFeatures().push(feature); // select the feature you filtered
};

select.on('select', fnHandler);
票数 3
EN

Stack Overflow用户

发布于 2016-02-23 10:58:46

为了获得与鼠标点击相交的图层中的所有特征,我这样做:

代码语言:javascript
运行
复制
map.on("click", function(event) {
    var coordinate = event.coordinate;
    var features = myVectorLayer.getSource().getFeaturesAtCoordinate(coordinate);
    // Do something with the features that were clicked here...
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35563046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档