Клуб API Карт

Подскажите в 2-х словах, как сделать расчёт длинны маршрута за МКАДом?

krk8
3 мая 2011, 12:35

Если начало лежит в Москве, а конец за МКАД. Нужно узнать расстояние от МКАД до конечно точки.

Спасибо.

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

в общем случае можно поступить двумя путями.

1. не так давно vaddo писал про "зоны доставки".

Достаточно взять от туда ограничивающий полигон москвы и найти пересечение его контура и вашей линии( первый курс, аналитическая геометрия).

Далее считать растояние от этой точки.

2. Использовать роутер - он выдает путь с узловыми точками.

Каким либо образом найти точку пересечение мкада( не факт правда что она будет всегда, но вроде как должна(не проверял)) и пройдя по пути далее найти нужное растояние.

Но этот вариант работает только по "дорогам"

2 вариант не работает если маршрут лежит по прямой через МКАД.

а разве есть такие прямые участки? На карте показать можете?

ой, я уж давно не занимался апи картами, но я не совсем правильно делал, на пример начало маршрута на проспекте мира, а конец на ярославском шоссе. Там как правильно роут прописать, в одном случае точку будут только на изгибах маршрута, и вот на маршруте Проспект мира - Пушкино, первый изгиб за МКАД был достаточно далеко от границы Москвы, что не устраивало.

Где-то нашёл чтобы получить множество точек маршрута так,

j = route.getNumPoints(); // всего точек на ломанной
for (i=0; i < j; i++)
    {
    if ( !polygon.contains(route.getPoint(i)) ) // если непопадает в полигон МОСКВЫ то МКАД!
Там по маршруту в километров 10 около 300 точек получается (точно не помню),
и уже циклом каждую точку можно проверять попадает она в полигон или нет.

Я именно об этом и говорю, там столько вершин ломаной, что описывается малейшее изменение направления. Ситуации, когда на пересечении с мкад не было точек я не видел. Сейчас вожусь с http://clubs.ya.ru/mapsapi/replies.xml?item_no=19716