Openlayers 3从同一位置的两个不同图层中选择两个要素

时间:2017-02-07 20:16:38

标签: openlayers-3

我有一个带标记的图层和一个带折线的图层。标记位于折线的末尾。我喜欢拖动任何与折线的末端(过度绘制)同步的标记。

var features = new ol.Collection();
var featureOverlay = new ol.layer.Vector({source: new ol.source.Vector({features: features}),style:styles});
featureOverlay.setMap(map);

var markers = new ol.Collection();
var markerOverlay = new ol.layer.Vector({source: new ol.source.Vector({features: markers}),style:styles});
markerOverlay.setMap(map);

var modify = new ol.interaction.Modify({features: features});
map.addInteraction(modify);


var modifyn = new ol.interaction.Modify({features: markers});
map.addInteraction(modifyn);

它没有同步工作。我必须拖动折线的末端和标记分开。

如何同时拖动两个?

感谢您的帮助! 安德烈亚斯。

1 个答案:

答案 0 :(得分:1)

我明白了!

我实时收集鼠标位置的所有功能并将它们保存在一个集合中。此集合是修改中的功能。

干杯!

var allFeaturesAtPixel = new ol.Collection();
var modify = new ol.interaction.Modify({features: allFeaturesAtPixel});
map.addInteraction(modify);

map.on('pointermove', function (evt) 
{
 allFeaturesAtPixel.clear();
 map.forEachFeatureAtPixel(evt.pixel, function (feature) {allFeaturesAtPixel.push(feature);});
});