Необходимо рассчитать положение точки на карте на основании её скорости и других факторов. Например, посреди леса стоит человек, и мы знаем его среднюю скорость в отдельные промежутки времени. Нужно расчитать где он может находиться на протяжении какого-то времени. Однако в лесу есть болота, непроходимые скалы, которые снижают / зануляют скорость передвижения. В какие-то моменты времени человек вообще не двигается (спит).
Первый скриншот начало движения, никаких препятствий.
Второй скриншот видно что зеленый полигон непроходим, а коричневый проходим, но с трудом.
Язык JavaScript, входные данные задаются объектом
{
time_periods: [{
from: 2012-12-12T20:00:00,
to: 2012-12-12T22:00:00,
speed: 5
}, {}],
objects: [{
geodata: POLYGON(...),
speed_modifier: 0.5
}, {}]
}
Алгоритм должен иметь следующие настройки
1. Временной шаг (через какие временные интервалы строится максимально возможное положение)
2. Максимальное и минимальное расстояние между вершинами полигона (smooth edges)
Результат работы алгоритма задается объектом
{
stages: [{
time: 0,
polygon: MULTIPOLYGON(..) (WKT format)
}, {
time: 10, //Step in seconds
polygon: MULTIPOLYGON(..) (WKT format)
}, {..}]
}
Так скажем, уже есть алгоритм но он валится на самопересекающихся полигонах. То есть либо пишем с нуля, либо дорабатываем существующий.
Опубликован 21.03.2016 в 06:56 Последнее изменение: 18.08.2016 в 04:35
Заказ находится в архиве