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);

Это не работает синхронно. Я должен перетащить конец полилинии и маркер отдельно.

Как я могу перетащить оба одновременно?

Спасибо за помощь! Andreas.

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);});
});
Другие вопросы по тегам