Все проекты являются закрытыми (имеется в виду картография, если я не прав то поправьте меня). Сложность использования из-за лицензионной политики.
Есть предложение сделать аналогичный проект но на основе OSM.
Соответственно достаточно просто реализовать различные M2M-M2H решения. Польза будет взаимовыгодной для всех.
Имеем таблицу БД с ID сегментов. ID сегментов берутся из OSM. При этом ID одного и того-же сегмента будут одинаковы вне зависимости от движка отрисовки карты (не важно что это будет за движок - или для наладонника или openlayer - для онлайн отображения);
Имеем таблицу БД в которой есть привязка ID сегмента → текущая скорость.
Дальше я думаю всё понятно - генерим через определённые промежутки времени xml (или бинарный) файл в котором и будет связка - ID и скорость.
Далее клиентская программа получает этот файл, парсит его и принимает решение о перепрокладке маршрута.
Эта задача почти решена.
Задача немного другая - есть данные с различных систем мониторинга - ездят сотни ТС. У каждого ТС есть координаты и скорость. По координатам находим ID сегмента. Набираем статистику от нескольких ТС для данного сегмента(сегментов), принимаем решение какова скорость и складываем в базу. Чем больше ТС будет задействовано тем точнее будет информация.
Сделав программу для мобильных устройств (наладонники, телефоны, GPS навигаторы (некоторые модели поддерживают передачу данных)) можно отправлять на сервер информацию и с них.
Ну во первых есть и даже две - gosmore (её использую относительно недавно) и roadmap(editor) который использую уже несколько лет (правда OSM к нему получилось прикрутить только год назад). На базе этих программ организован сервис по прокладке маршрутов для системы мониторинга. Быстродействие 4000 маршрутов в минуту (AMD64x2, 2Gb, Linux). Есть возможность учитывать и пробки но пока из-за отсутствия БД по пробкам это не реализовано.
Недостаток PocketGIS - опять-же “закрытость” т.е. сторонний пользователь не может получить доступ к информации о пробках. Тут-же предлагается вариант по типу OSM - т.е. любой желающий может получить информацию. К тому-же нет ограничения по городам - многие пользователи находятся не в Москве и не в Питере.
Пример файла xml:
есть ещё Navit. тоже с роутингом.
была у меня задумка использовать локальные osc (osmchange) файлы для подобных целей. упёрлась в то что: ограничение - путь, а не отдельный тэг/сегмент
для вашего метода в данном виде - надо резать все дороги на сегменты соответствующие роутовому графу - что не просто плохо, а очень хреново для картостоителя
ничто конечно не мешает делать это програмно чисто в софте - но это выливается в написание велосипедов вместо использование стандартных возможностей
велосипеды конечно не особо сложные… вида:
Navit тоже пробовал. Пол линухом работает замечательно, а вот под виндой ЖУТКО тормозит по сравнению с тем-же roadmap (по отзывам - сам не пробовал - негде…).
Может поступить так?:
причём fromtnode и tonode указывать только если пробка занимает часть пути-полилинии с way id
в данном случае не будем отходить от преимуществ OSM - стандартной нумерации а иначе действительно придётся строить велосипеды вида segment=“3”
вводится потому что пробка может быть только в одном направлении.
direction=0 или не указано в обе стороны
direction=1 только по направлению пути-полилинии
direction=-1 только против направления пути-полилинии
Пример пробок: Новоалексеевская ул., Москва
Полдень - пробка образовалась из-за светофора и двух “лежачих полицейских”
<?xml version='1.0' encoding='UTF-8'?>
То-же самое только в час пик. Пробка уже на всю улицу и выезды на проспект Мира как в центр так и в область:
<?xml version='1.0' encoding='UTF-8'?>
Направления не указаны т.к. односторонее движение (см. свойства путей-полилиний с указанными ID).
для roadmap пришлось нарезать OSMку на сегменты поэтому я и оперировал термином “сегменты”
P.S. давайте всё писать в UTF8 и никаких проблем с кодировкой не будет - самим-же неудобно. Как KekcuHa писал в 1251 так я и отвечал…
Программу для нарезки писал не я. Резалось от узла к узлу. Иначе роутинг в roadmap-editor не работает. При этом получается совсем другая нумерация полилиний поэтому немного изменён формат карт и сохраняется изначальная нумерация OSM - сделано именно для пробок. Если использование информации о пробках не нужно то можно ничего не менять… Хотя изначальный формат roadmap-editor не предполагает большого количества полигонов (отображение домов). http://avionics.narod.ru/pub/roadmap.png
Снимок экрана. Карта из OSM (не все значки POI нарисованы поэтому черные квадраты)
Сейчас пробую подключить пробки к gosmore. Роутинг по OSM работает нормально за исключением моментов связанных с ограничением скорости на отдельных участках (скорость задаётся в конфигурационном файле и привязана к типу дороги). Придётся менять формат т.к. так-же не сохраняются ID.