我有一个带标记的图层和一个带折线的图层。标记位于折线的末尾。我喜欢拖动任何与折线的末端(过度绘制)同步的标记。
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);
它没有同步工作。我必须拖动折线的末端和标记分开。
如何同时拖动两个?
感谢您的帮助! 安德烈亚斯。
答案 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);});
});