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