2015-03-04 3 views
0

В моей карте OpenLayers3 я могу легко создавать точки или linestrings. Когда я изменяю linestrings, я могу настроить взаимодействие Modify, чтобы иметь возможность удалить вершину с помощью щелчка смены. Затем я получаю обратный вызов для функции linestring (событие «change»).OpenLayers3: Как удалить или удалить точку?

Для точек я не получаю такого обратного вызова, и на самом деле щелчок смены не удаляет точку.

Я ссылаюсь этот пример: http://openlayers.org/en/v3.2.1/examples/draw-and-modify-features.html?q=modify

Теперь, когда я думаю об этом, что я на самом деле мог бы сделать, это есть выбор взаимодействие и когда пользователь выбирает точку со сдвигом кнопки мыши, что точка будут удалены.

Неужели кто-нибудь еще решил эту проблему?

Благодаря

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

this.stationDeleter = new ol.interaction.Select({ 
         layers: [this.stationsLayer], 
         // for debugging 
         style: new ol.style.Style({ 
          image: new ol.style.Circle({ 
           radius: 12, 
           fill: new ol.style.Fill({ 
           color: 'rgba(255, 0, 0, 0.5)' 
           }) 
          }) 
          }), 
         addCondition: function(event) { 
          return ol.events.condition.shiftKeyOnly(event) 
          && ol.events.condition.singleClick(event); 
          } 
         }); 

ответ

0

Существует различие между удалением вершины объекта и удалением всей геометрии. Чтобы удалить всю геометрию, рекомендуется использовать взаимодействие Select. Как и в этом примере: http://openlayers.org/en/master/examples/modify-features.html

Если выбрана функция, вы можете отобразить элемент управления с помощью кнопки «Удалить выбранную функцию».

+0

Да, это то, что я закончил, добавляя выбранное взаимодействие; когда функции добавляются к выбранному взаимодействию, я удаляю их. –