OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2009-01-06 13:10:10

AndrewKo
Member
Registered: 2009-01-05
Posts: 11

Пробки...

Привет всем участникам OSMки!

Есть много проектов по генерации информации о пробках:
www.probki.net
http://maps.yandex.ru/help.xml?section=probki#about
и т.д.

Все проекты являются закрытыми (имеется в виду картография, если я не прав то поправьте меня). Сложность использования из-за лицензионной политики.

Есть предложение сделать аналогичный проект но на основе OSM.
Соответственно достаточно просто реализовать различные M2M-M2H решения. Польза будет взаимовыгодной для всех.

Есть желающие поучаствовать?

Offline

#2 2009-01-06 18:24:56

KekcuHa
Member
From: Moscow
Registered: 2008-05-26
Posts: 607
Website

Re: Пробки...

Есть проект pocketgis (www.pocketgis.biz), как раз прорабатывается вопрос об использовании картосновы OSM.

Offline

#3 2009-01-06 22:53:59

AndrewKo
Member
Registered: 2009-01-05
Posts: 11

Re: Пробки...

Я имел ввиду немного другое:
1. Имеем таблицу БД с ID сегментов. ID сегментов берутся из OSM. При этом ID одного и того-же сегмента будут одинаковы вне зависимости от движка отрисовки карты (не важно что это будет за движок - или для наладонника или openlayer - для онлайн отображения);
2. Имеем таблицу БД в которой есть привязка ID сегмента -> текущая скорость.
Дальше я думаю всё понятно - генерим через определённые промежутки времени xml (или бинарный) файл в котором и будет связка - ID и скорость.
Далее клиентская программа получает этот файл, парсит его и принимает решение о перепрокладке маршрута.
Эта задача почти решена.

Задача немного другая - есть данные с различных систем мониторинга - ездят сотни ТС. У каждого ТС есть координаты и скорость. По координатам находим ID сегмента. Набираем статистику от нескольких ТС для данного сегмента(сегментов), принимаем решение какова скорость и складываем в базу. Чем больше ТС будет задействовано тем точнее будет информация.
Сделав программу для мобильных устройств (наладонники, телефоны, GPS навигаторы (некоторые модели поддерживают передачу данных)) можно отправлять на сервер информацию и с них.

Offline

#4 2009-01-07 21:31:57

KekcuHa
Member
From: Moscow
Registered: 2008-05-26
Posts: 607
Website

Re: Пробки...

А нафиг все это нужно, если нет программы с роутингом для osm?

Offline

#5 2009-01-07 22:28:07

AndrewKo
Member
Registered: 2009-01-05
Posts: 11

Re: Пробки...

Ну во первых есть и даже две - gosmore (её использую относительно недавно) и roadmap(editor) который использую уже несколько лет (правда OSM к нему получилось прикрутить только год назад). На базе этих программ организован сервис по прокладке маршрутов для системы мониторинга. Быстродействие 4000 маршрутов в минуту (AMD64x2, 2Gb, Linux). Есть возможность учитывать и пробки но пока из-за отсутствия БД по пробкам это не реализовано.
Недостаток PocketGIS - опять-же "закрытость" т.е. сторонний пользователь не может получить доступ к информации о пробках. Тут-же предлагается вариант по типу OSM - т.е. любой желающий может получить информацию. К тому-же нет ограничения по городам - многие пользователи находятся не в Москве и не в Питере.
Пример файла xml:

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.5' generator='OpenTrafficJam daemon'>
<way id='23020035' timestamp='2008-02-20T19:21:06+00:00' user='AndrewKo' visible='true'>
   <tag k='maxspeed:practical' v='18' />
</way>
</osm>

Offline

#6 2009-01-08 08:15:00

wildMan
Member
From: Minsk
Registered: 2008-03-05
Posts: 509

Re: Пробки...

есть ещё Navit. тоже с роутингом.
была у меня задумка использовать локальные osc (osmchange) файлы для подобных целей. упёрлась в то что: ограничение - путь, а не отдельный тэг/сегмент
для вашего метода в данном виде - надо резать все дороги на сегменты соответствующие роутовому графу - что не просто плохо, а очень хреново для картостоителя
ничто конечно не мешает делать это програмно чисто в софте - но это выливается в написание велосипедов вместо использование стандартных возможностей
велосипеды конечно не особо сложные... вида:

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.5' generator=''>
<way id='23020035' segment="3" timestamp='' user=''>
   <tag k='maxspeed:practical' v='18' />
</way>
</osm>

где segment - фрагмент пути с ID

ps. достала кодировка! smile

Last edited by wildMan (2009-01-08 08:20:57)


--
OSMF BY Team

Offline

#7 2009-01-08 10:12:46

AndrewKo
Member
Registered: 2009-01-05
Posts: 11

Re: Пробки...

Navit тоже пробовал. Пол линухом работает замечательно, а вот под виндой ЖУТКО тормозит по сравнению с тем-же roadmap (по отзывам - сам не пробовал - негде...).
Может поступить так?:

<way id='23020035' timestamp='ВРЕМЯ СОЗДАНИЯ ЗАПИСИ В БАЗЕ' visible='true'>
   <fromnode ref='248195996' />
   <tonode ref='325214693' />
   <tag k='direction' v='1' />
   <tag k='maxspeed:practical' v='18' />
</way>


причём fromtnode и tonode указывать только если пробка занимает часть пути-полилинии с  way id
в данном случае не будем отходить от преимуществ OSM - стандартной нумерации а иначе действительно придётся строить велосипеды вида segment="3"
<tag k='direction' v='1' /> вводится потому что пробка может быть только в одном направлении.
direction=0 или не указано в обе стороны
direction=1 только по направлению пути-полилинии
direction=-1 только против направления пути-полилинии

Пример пробок: Новоалексеевская ул., Москва
Полдень - пробка образовалась из-за светофора и двух "лежачих полицейских"

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.5' generator='X'>
<way id='23020035' timestamp='XXX' visible='true'>
   <fromnode ref='325214670' />
   <tonode ref='325214683' />
   <tag k='maxspeed:practical' v='15' />
</way>
</osm>

То-же самое только в час пик. Пробка уже на всю улицу и выезды на проспект Мира как в центр так и в область:

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.5' generator='X'>
<way id='23020035' timestamp='XXX' visible='true'>
   <tag k='maxspeed:practical' v='4' />
</way>
<way id='23020642' timestamp='XXX' visible='true'>
   <tag k='maxspeed:practical' v='3' />
</way>
<way id='23020330' timestamp='XXX' visible='true'>
   <tag k='maxspeed:practical' v='5' />
</way>
</osm>

Направления не указаны т.к. односторонее движение (см. свойства путей-полилиний с указанными ID).


для roadmap пришлось нарезать OSMку на сегменты поэтому я и оперировал термином "сегменты"

P.S. давайте всё писать в UTF8 и никаких проблем с кодировкой не будет - самим-же неудобно. Как KekcuHa писал в 1251 так я и отвечал... :-)

Last edited by AndrewKo (2009-01-08 12:37:26)

Offline

#8 2009-01-12 00:34:44

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,449

Re: Пробки...

AndrewKo wrote:

для roadmap пришлось нарезать OSMку на сегменты поэтому я и оперировал термином "сегменты"

А как резали ?

Offline

#9 2009-01-12 00:42:54

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,449

Re: Пробки...

AndrewKo wrote:

1. Имеем таблицу БД с ID сегментов. ID сегментов берутся из OSM.

Тогда ИМХО нужен бот который будет резать ways по перекресткам и клеить излишние соседние сегменты с одинаковым набором аттрибутов

Offline

#10 2009-01-12 10:35:48

AndrewKo
Member
Registered: 2009-01-05
Posts: 11

Re: Пробки...

Программу для нарезки писал не я. Резалось от узла к узлу. Иначе роутинг в roadmap-editor не работает. При этом получается совсем другая нумерация полилиний поэтому немного изменён формат карт и сохраняется изначальная нумерация OSM - сделано именно для пробок. Если использование информации о пробках не нужно то можно ничего не менять... Хотя изначальный формат  roadmap-editor не предполагает большого количества полигонов (отображение домов).
http://avionics.narod.ru/pub/roadmap.png
Снимок экрана. Карта из OSM (не все значки POI нарисованы поэтому черные квадраты)
Сейчас пробую подключить пробки к gosmore. Роутинг по OSM работает нормально за исключением моментов связанных с ограничением скорости на отдельных участках (скорость задаётся в конфигурационном файле и привязана к типу дороги). Придётся менять формат т.к. так-же не сохраняются ID.


По поводу бота - согласен. Если использовать:

<way id='23020035' timestamp='XXX' visible='true'>
   <fromnode ref='325214670' />
   <tonode ref='325214683' />
   <tag k='maxspeed:practical' v='15' />
</way>

то тогда придётся хранить ещё и ID узлов.

Last edited by AndrewKo (2009-01-12 10:46:23)

Offline

Board footer

Powered by FluxBB