Клуб API Карт

Редактор многоугольников: открытие и сохранение. Uncaught TypeError: Cannot read property 'isLeaf' of undefined

darkdaemon1
7 июня 2016, 01:15

Здравствуйте! Делаю простой редактор многоугольгиков с возможностью открытия и сохранения координат. В целом все работает, но при повторном открытии карты и наведении мышки на промежуточную точку между двух вершин выходит ошибка:

Uncaught TypeError: Cannot read property 'isLeaf' of undefined

Вот пример. Попробуйте сделать многоугольник, чтобы координаты сохранились в текстовое поле, а потом отредактировать его:

https://jsfiddle.net/jat6eomk/1

Пробовал делать myMap и myPolygon глобальными переменными - не помогло. Принудительное удаление этих объектов при открытии координат на карте - не помогло. Пробовал отказаться от события drawingstop и вынес функцию на отдельную кнопку - тоже не помогло.

4 комментария
1. При любых проблемах подключайте API в mode=debug
2. На вход подавались координаты в текстовом виде, да и еще не полностью обработанные (с "дыркой")
см рабочий пример - https://jsfiddle.net/jat6eomk/3/
thekashey,
Благодарю за ответ, но ошибка не ушла :( Кроме "Cannot read property 'isLeaf' of undefined" в примере №3 вылезла еще одна ошибка: "GeoToGlobalPixels.toGlobalPixels: не передан параметр point"


Координаты подавались без дырки. После функции split у массива poly последний элемент - пустой, поэтому его и игнорировал через "poly.length - 1". Заметил, что первый и последний элементы массива координат - одинаковые. Это играет какую-то роль при построении многоугольника?
thekashey,
Вот пример (я убрал отслеживание события "drawingstop", ошибка возникает и без него) :
https://jsfiddle.net/jat6eomk/5/
レクセイ
8 июня 2016, 14:49
darkdaemon1,
Некорректно сформирован массив координат `poly` (присутствует пустая строка)