Клуб API Карт

Событие над объектами

mekisboun7
22 октября 2013, 14:37

Есть объект Polyline, я хочу создать еще ломанную но она должна создаваться при том условии если ее старт начинается от первой ломанной. Что бы происходила пристыковка начала ломанной к существующей.
Какое событие использовать ? 
Если мы перетаскиваем начальную точку над объектом события не отрабатывают.

5 комментариев
Подписаться на комментарии к посту

Что за точку Вы перетаскиваете и какие события не отрабатывают

Вот карта, на ней есть уже нанесенные ломанные.
Создаем еще одну ломанную.
Захватили  край ломанной и передвигаем над другим объектом.
Надо определить событие что произошло соприкосновение 2-х элементов (стыковка), и получить координаты

 

 

Я так понял вы используете редактор.

У него есть событие vertexdrag.

.get('target') от события вернет объект метки, а .properties.get("model") от метки вернет объект модели вертекса.

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/geometryEditor.model.ChildVertex.xml

 

Модель вертекса имеет все данные по индексу точки и по ее координатам.

Далее вам нужно найти ближайшую вершину одной из ваших уже существующих линий.

Точно в вершину при перетаскивании вы никогда не попадете, поэтому нужно считать с допуском.

Для этого наверно удобнее всего будет использовать метод пиесельной геометрии http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/IPixelLineStringGeometry.xml#getClosest

Т.е. сценарий у вас примерно следующий при перетаскивании вертекса вы у уже существующих линий через .geometry.getPixelGeometry().getClosest(vertex.getPixels())

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

А можно по подробнее на счет 
.geometry.getPixelGeometry().getClosest(vertex.getPixels())
или кусочек примера. 

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

Что именно вам непонятно?