Клуб API Карт

Клик по vertex многоугольника в режиме рисования

Пост в архиве.

Здравствуйте.

Могу ли я как-нибудь перехватить клик по одной из вершин полигона в режиме рисования.

В моем случае я хотел бы по клику на первую вершину многоугольника автоматически оставнавливать режим рисования полигона БЕЗ контекстного меню с пунктом «Завершить».

 

Спасибо.

4 комментария

Вы можете задать свой editorMenuManager. Вторым аргументом он получает модель вершины и из нее вы можете получить индекс вершины. Т.о. для первой вершины нужно возвращать пустой массив. Тогда меню появляться не будет. А дальше слушать клик и делать что нужно.

Артур Покрашенко
27 января 2016, 22:43

Так и сделал. Спасибо!

obj.editor.options.set({

      menuManager: function (items, model) {

        var idx = model.getIndex();

        if (idx === 0) {

          obj.editor.stopDrawing();

        }

       return [];

      }

    });

Артур Покрашенко
27 января 2016, 22:43

Не могли бы вы также подсказать как получить модель первой вершины многоугольнкика в режиме рисования? Из документации я не понял как мне до нее достучаться. Мне нужно менять у нее иконку.

Пробовал через событие 'vertexadd', но через event можно получить только родительскую модель e.get('parentModel').

 

Спасибо!

Если через vertexadd, то в событии еще приходит vertexindex и у parentModel можно спросить getVertexModels и взять нужную вершину. Но иконку нужно менять не у модели, а у отображения.

Чтобы добраться до нужного отображения используйте методы getVertexPlacemarks. Индексы контуров/вершины можно спрашивать у моделей - они соответствуют.

Т.е. берете индекс вершины, и индекс родительского контура. Потом getVertexPlacemarks.get(индекс_контура).get(индекс вершины) - получаете отображение вершины, в которое можно задать нужные вам опции.