Клуб API Карт

Кастомизация вершин редактора

Швалёв Дмитрий
10 января, 16:45

Очень хочется разобраться с кастомизацией вершин редактора полигона. В документации geometryEditor.Polygon-docpage описаны параметры options.edgeLayout и options.vertexLayout, которые принимают класс макета.

Есть 2 похожие темы:
https://yandex.ru/blog/mapsapi/46436https://yandex.ru/blog/mapsapi/39780, но они не дают ответа, точнее не получается повторить решения описанные там.

Пробовал передавать созданный templateLayoutFactory:

  var myPolyline = new ymaps.Polyline([
    [55.80, 37.50],
    [55.80, 37.40],
    [55.70, 37.50],
    [55.70, 37.40]
  ], {}, {
    strokeColor: "#00000088",
    strokeWidth: 4,
    editorVertexLayout: ymaps.templateLayoutFactory.createClass('<div class="map-editor-vertex"></div>'),
    editorEdgeLayout: ymaps.templateLayoutFactory.createClass('<div class="map-editor-edge"></div>'),
  });

 или изменять параметр  options:
 

myPolyline.editor.options.set('edgeLayout', ymaps.templateLayoutFactory.createClass('<div class="map-editor-vertex"></div>'));

myPolyline.editor.options.set('vertexLayout', ymaps.templateLayoutFactory.createClass('<div class="map-editor-vertex"></div>'));

Но никакой реакции. Версия API 2.1

Наброски в песочнице: https://jsfiddle.net/dmitry_shvalyov/jfoehhtL/7/

4 комментария
Спасибо за сообщение.
Мы посмотрим в чем проблема, я отпишу в эту тему
Еще раз спасибо за сообщение.
Сейчас работают опции vertexIconLayout и edgeIconLayout. В следующей версии эта проблема будет исправлена и будут работать оба варианта. Как vertexIconLayout и edgeIconLayout, так и vertexLayout и edgeLayout.
Швалёв Дмитрий
31 января, 12:33
sanarise,
Спасибо за ответ, но снова возвращаясь к вопросу:  внешний вид вершин изменить удалось (пример: https://jsfiddle.net/jfoehhtL/8/), но вот функциональность перетаскивания потерялась. Это так задумано, что мы подменяем на свой макет вершины полностью? Можно каким-то образом сохранить функциональность заменив внешний вид?
Обновлено 31 января, 12:33
Швалёв Дмитрий,
 Да, можно. Пример: https://jsfiddle.net/cnc1p0pr/