Клуб API Карт

Метки на вершинах редактируемых многоугольников

bacardirus
6 апреля 2011, 18:50
Почему если две метки на вершинах редактируемых многоугольников имеют одни и те же координаты, при перетаскивании одной из них, перетаскивается и вторая?
Такое ощущение, что они воспринимаются как одна.
5 комментариев
Подписаться на комментарии к посту

Дайте ссылку пожалуйста.

Карта пока нигде не выложена. Постараюсь объяснить с помощью скриншотов.
Сначала создаются 2 редактируемых многоугольника.

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

Скрипт оценивает расстояние между перетаскиваемой вершиной и ближайшей вершиной соседнего многоугольника, понимает, что расстояние между ними достаточно мало и с помощью метода splicePoints устанавливает координаты перетаскиваемой вершины равными координатам ближайшей найденой точки: polygon[polyLen].splicePoints(index, 1, geoClosestPoint);

Если после этого снова передвинуть данную вершину, но уже в другую сторону, так, чтобы скрипт не стал автоматически менять её координаты, она переместится куда мы и хотели.

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

Скорее всего вы из функции geoClosestPoint возвращаете ссылку на объект YMaps.GeoPoint из множества вершин того многоугольника, с которым связываете. Таким образом возникает связь на этом уровне. Нужно возвращать копию, т.е. у этого объекта вызвать метод сopy() и вернуть результат.

Спасибо! Попробую завтра.
Помогло. Спасибо!