получить / удалить вершины при наведении в OpenLayers - PullRequest
0 голосов
/ 14 апреля 2020

Я в настоящее время внедряю инструмент редактирования карты в openlayers и имею следующее требование:

Когда выбран элемент карты (Линия, Точка, Полигон), клавиша удаления на клавиатуре должна

  • Удалить текущий элемент функции, находящийся в данный момент при наведении курсора мыши на один
  • По умолчанию удаляется полный объект, когда узел не находится

Поведение по умолчанию для элемента Элемент управления OpenLayers Modify позволяет щелкать и удалять вершины, вызывая метод removePoint (), который удаляет последний нажатый узел. Мне бы хотелось, чтобы этот метод активировался и применялся только к узлу зависания, поэтому go измените условие для выбора удаляемого узла.

Вот некоторый код, чтобы дать вам представление о том, что я Я делаю, в настоящее время работает, только когда я явно нажимаю на узел, который я хочу удалить:

deleteHandler(evt) {
    let features;

    // Returns true if the removePoint() method successfully removes node.
    // This function should remove hovered, not last clicked
    if (this.modifyInteraction.removePoint()) {
      return;
    } else {
      if (this.selectModify.getFeatures().getArray().length > 0) {
        features = this.selectModify.getFeatures();
      }

      // Delete selected features using delete key
      if (features) {
        // Loop delete through selected features array
        features.getArray().forEach((feature, i) => {
          this.source.removeFeature(features.getArray()[i]);
        });
        features.clear();

        // Prevent browser history back button action on IE 11
        evt.stopPropagation();
        evt.preventDefault();
      }
    }
  }

Есть ли способ обнаружить зависший узел и удалить его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...