Алгоритм поиска возможного положения точки

Бюджет: по договоренности
Необходимо рассчитать положение точки на карте на основании её скорости и других факторов. Например, посреди леса стоит человек, и мы знаем его среднюю скорость в отдельные промежутки времени. Нужно расчитать где он может находиться на протяжении какого-то времени. Однако в лесу есть болота, непроходимые скалы, которые снижают / зануляют скорость передвижения. В какие-то моменты времени человек вообще не двигается (спит).
Первый скриншот – начало движения, никаких препятствий.
Второй скриншот – видно что зеленый полигон непроходим, а коричневый проходим, но с трудом.

Язык – JavaScript, входные данные задаются объектом
{
  time_periods: [{
    from: 2012-12-12T20:00:00,
    to: 2012-12-12T22:00:00,
    speed: 5
  }, {}],
  objects: [{
    geodata: POLYGON(...),
    speed_modifier: 0.5
  }, {}]
}

Так скажем, уже есть алгоритм но он валится на самопересекающихся полигонах. То есть либо пишем с нуля, либо дорабатываем существующий.
Опубликован 03.03.2016 в 19:05

Выберите способ верификации:

Обновите страницу после прохождения верификации.