Клуб API Карт

Как превратить PolyLine в Polygon с отсечением свободных концов?

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

Возможно, тема не новая, но при попытке поиска по клубу открывается информация, что ya.ru закрыт. По текущей задаче - нужно дать возможность пользователю кликами на карте выбрать область, далее - будет производиться работа с объектами внутри этой области (адреса, геокодирование и т.д.). Я подумал, что было бы удобно по щелчкам на карте рисовать PolyLine, а как только после очередного щелчка ломаная замыкается - превращать ее в Polygon, при этом отсекая свободные концы линии. Соответственно, меня интересует, как определить координаты пересечения двух отрезков, заданных координатами (или установить, что пересечения нет)? В API нужных методов не нашел, нагуглить также не удалось.

6 комментариев
Дмитрий Новиков
27 января 2016, 23:37

Скорее всего вопрос решен, как-то сразу не увидел в Песочнице пример редактора многоугольника: http://api.yandex.ru/maps/jsbox/2.0/polygonEditor.

С другой стороны, вопрос о пересечении двух отрезков всё равно интересен:)

Владислав Турман
27 января 2016, 23:37

Ну, как я понимаю, тут немного геоометрии: 

http://algolist.manual.ru/maths/geom/intersect/lineline2d.php

Дмитрий Новиков
27 января 2016, 23:37

Это всё понятно, но Земля же не плоская, со всеми вытекающими! Однако, в пределах города, думаю, искажения будут крайне незначительными.

Владислав Турман
27 января 2016, 23:37

1) ну все-таки почему бы сразу не строит ьв режиме редактирвоания многоугольника, зачем ждат ьпересечения линий и только тогда делать многоугольник?

 

2) не силен в геометрии, но думаю для проверки можно ли замкнуть все это в прямоугольник точности должно хватить.

Дмитрий Новиков
27 января 2016, 23:37

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

Владислав Турман
27 января 2016, 23:37

Прошу прощения, отвечал по ссылке на почте, там изначально показывается на одно сообщение выше только :-(

 

2) можете позвать модератора клуба в тему, они с алгоритмами получше простых смертных)