Клуб API Карт

Добавление внутреннего контура многоугольника после нажатия на RadioButton

Пост в архиве.
aolho
8 апреля 2013, 17:58

Требуется реализовать добавление внутреннего контура в многоугольник после нажатия на внешнюю кнопку (не на вершину внешнего контура). То есть, после нажатия на кнопку, допустим, "добавить внутренний контур", происходит то же самое (в плане программы), что произошло бы, если бы пользователь открыл контекстное меню вершины многоугольника и нажал на "добавить внутренний контур".
Как реализовать такую кнопку и возможно ли это вообще?

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

YMaps.PolygonEditingOptions.drawNewInteriors? Программно это как выглядит? 
$('button').click(
  function () {
polygon..PolygonEditingOptions.drawNewInteriors 
});
Что-то типа этого?

я думал что Вы про АПИ 2.0 спрашиваете. в 1.х я уже и не помню как. А зачем Вам старое?

Я только начинаю изучать АПИ, но документация написана очень уж сжато, много непоняток. Я так и не нашла, как реализовать задуманное. О каком методе вы говорите и как это должно выглядеть в коде? Насчёт того, что можно включить редактирование или добавление внутреннего контура через клик по вершине я знаю, а можно ли реализовать добавление внутреннего контура через нажатие на внешнюю кнопку (добавленную как элемент управления карты)?

можно в 2.0. но как это делать в старом я не помню

Расскажите, пожалуйста, как это реализовать в 2.0
Я весь день пытаюсь найти и так и не добилась успеха : (

Расскажите, пожалуйста, подробнее что именно в документации "сжато" и вызывает "много непоняток".

Чтобы Вы не тратили еще один день, я сделал Вам пример.

Рассказываю (для сравнения возьмём API JQuery):
1) Нет примеров написания той или иной опции\метода\функции. Новичка это вводит в ступор: пишешь правильно, а не работает. А то, что надо писать не somename({someoptions});, а somename({}, {someoptions}); - нигде не написано, приходится методом проб и ошибок и анализом скупых примеров вытягивать это самой.

2) Описания как методов, так и опций очень скупы. К примеру, ваш insert - не написано, куда, что, как добавляет этот контур, как это применять, к чему применить можно, к чему нельзя, что означает "заданный индекс" и как его применять, писать, как он работает. Нет ни единого примера, нет описанных исключений\областей применения, где этот метод мог бы не работать.И так далее. Это уже только на личном опыте, методом проб и ошибок, по прошествии огромного количества времени осознаётся само.

3) Описания общего синтаксиса нет вообще. Я конечно понимаю, что чтобы использовать ваш АПИ надо знать JS, но в вашем АПИ свой синтаксис, который изучаешь, опять же, по редким примерам и чужим открытым кодам.

Из примера API JQ - все функции на одном листе, поиск по ним гораздо проще, чем по навигации АПИ яндекса, описание каждой функции подробное, с 2-3 примерами для разных случаев применения, общео синтаксиса тоже нет, но там ситуация иная - по JQ много учебников, по Я.Картам - только ваше АПИ, из которого выжать весь функционал новичку - непосильная задача.
Вот такой вышел рассказ, ничего личного, лишь моё мнение, как новичка, столкнувшегося с проблемами при использовании АПИ.

 

 

 

 

 

 

Спасибо за фидбек, почаще бы так писали :)

Подскажите, что это за метод? В АПИ нет такого метода, есть только метод, позволяющий добавить новую вершину

Может мы разные документации смотрим?

у меня все есть.

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/geometry.Polygon.xml

 

insert(index, path)IPolygonGeometryAccessДобавляет новый контур с заданным индексом.

Унаследован от IPolygonGeometryAccess.

Спасибо. За пример - отдельное спасибо, всё работает.