Клуб API Карт

menuManager в API 2.0

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

Друзья, с Яндекс картами работаю совсем недавно, поэтому возникла проблема добавления пункта "Завершить редактирование" в меню вершины при прорисовке ломаной линии (используется режим редактирования). 

В API 1.X для этого использовался код:

polyline.setEditingOptions({

 drawing: true,
 menuManager: function (index, menuItems) {
 menuItems.push({
 id: "StopEditing",
 title: '<span style="white-space:nowrap;">Завершить редактирование<span>',
 onClick: function (polyline, pointIndex) {
 polyline.stopEditing(
 YMaps.jQuery("#coords").attr("value", polyline.getPoints().join('\n')
 }
 }
 return menuItems;
 }
 }        

 

Как подобное реализовать в API 2.0? Заранее благодарю, буду признателен, если кто-нибудь поделится примером кода.

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

Во второй версии все почти так же. Можно посмотреть здесь.

Спасибо, но подскажите пожалуйста, почему, когда я пытаюсь добавить еще один пункт в mеню вершины:

  myGeoobject.editor.options.set({

                     menuManager: function(editorItems, model) {

                                editorItems[2].title = "New";

                               return editorItems.splice(0,3);

                            }

})

 

меню раскрывается только при клике на ПЕРВОЙ вершине ломаной?

Возможно [2]-ой пункт есть только на первой вершине. На остальных это приводит к ошибке.

 

polygon.editor.options.set({

        menuManager:function(editorItems, model){

          console.log(editorItems);

          console.log(model);

          for(var i=0; i

            console.log(editorItems[i].id);

            if(editorItems[i].id==='removeVertex') editorItems[i].title='Удалить вершину';

            if(editorItems[i].id==='startDrawing') editorItems[i].title='Продолжить редактирование';

            if(editorItems[i].id==='stopDrawing') editorItems[i].title='Завершить редактирование';

            if(editorItems[i].id==='addInterior') editorItems.splice(i, 1);

          }

          return editorItems;

        }

      });