Я пытаюсь создать интерфейс OpenLayers с двумя основными возможностями:
есть фиксированные объекты на карте, и пользователи получают дополнительную информацию на странице (не всплывающие окна на карте), когда они наводят курсор на фиксированный объект;
есть одна перетаскиваемая контрольная точка, по которой пользователь может перемещаться по карте.
В настоящее время каждый из них работает независимо. У меня есть два векторных слоя, один для фиксированных объектов и один для перетаскиваемых объектов. Первый слой имеет элемент управления OL.Control.SelectFeature
с {hover:true}
, второй - элемент управления OL.Control.DragFeature
. Однако, когда я включаю элемент управления DragFeature
, элемент управления SelectFeature
больше не получает никаких событий при наведении курсора мыши на фиксированные функции. И наоборот, если я подниму z-индекс слоя с фиксированными объектами (как предложено здесь ), перетаскиваемый объект не может быть перемещен. Это говорит о том, что для взаимодействия с пользователем доступен только самый верхний слой.
Полагаю, здесь я совершаю довольно простую ошибку. Как разрешить пользователю взаимодействовать с функциями на двух уровнях? Или, в качестве альтернативы, есть ли лучший способ создания пользовательского интерфейса, о котором я говорил выше?
Другая альтернатива, которую я вижу, состоит в том, что я помещаю оба типа объектов на один слой и каким-то образом предотвращаю реакцию фиксированных объектов на взаимодействие перетаскивания. Однако, просматривая API OpenLayers, я не вижу никакого очевидного способа заставить элемент управления DragFeature отказаться от взаимодействия с перетаскиванием, инициированным пользователем.