User:Zkir/Актуальные задачи, требующие искусства программирования

From OpenStreetMap Wiki
Jump to navigation Jump to search

(черновик)

На данный момент это список задач, которые считаю актуальными лично я.


ЗАДАЧА #1 Тест рутинга на основе эталонных маршрутов

Сделать автоматический тест рутинга.

Цель - обнаруживать вандальные удаления дорог.

Исходные данные: OSM карта в польском формате, в нарезке по областям. (Хотя польский формат более желателен, можно как исходный файл взять и *.osm, в той же нарезке)

Что программа должна сделать: по исходному файлу построить список городов, и между городами построить маршруты (для простоты можно кратчайшие), по дорогам не ниже tertiary. Построенные маршруты сравнить с эталонными. Отклонение от эталонного маршрута может говорить о том, что какой-то вей вандально удален.

Это позволит обнаруживать те некорректные правки, которые не обнаруживаются другими средствами, например валидатором связности. Поскольку графу дорог присуща довольно высокая связность, если даже удалить кусок транка, граф дорог все равно останется связным, но маршрут, проходивший через удаленный сегмент дороги перестроится как-то по другому.

Технология: Любая, которая способна породить исполняемый файл под Win или перл. Также можно сделать вебморду для показа текущего и эталонного маршрута, а также для того чтобы можно было отметить текущий маршрут как эталонный.

Кому будет полезно: всем кто пользуется рутингом на основе OSM.


ЗАДАЧА #2 Web-рендеринг для польских файлов

Сделать онлайн-рендерилку, которая будет отображать osm-карту, преобразованную в *польский формат*. На основе Kothic JS или по своему вкусу.

Кому будет полезно: всем пользователям навигаторов и разработчикам конверторов на osm2mp.pl. Можно будет сразу посмотреть онлайн, что получилось.

Технология: Любая, совместимая с Win


ЗАДАЧА #3 Компактная обзорная карта России

Cоздание компактной обзорной карты России. Данные ОСМ хорошо подходят для создания крупномасштабных и, в меньшей степени среднемасшабных карт.

Требуется примерно следующее. Надо выкачивать все дороги секондари и выше, все тауны и выше, ЖД, воду, берег, границы областей и упрощать это всё.

При этом ключевое слово здесь - упрощать. Т.е. нужно сделать генерализацию данных, чтобы получилась карта масштаба, например 1:1 000 000- 1:10 000 000.

В обзорной карте граф дорог тоже должен быть генерализованным.(карта должна быть по прежнему пригодна для навигации, но граф должен быть упрощен). [b] Развязки должны быть стянуты в точки, двухвейные дороги переделаны на одновейные.[/b]

Некоторые, я знаю, уже умеет генерализировать леса (упрощая форму и объединяя соседние куски, нарисованные отдельными полигонами, если, например, они разделены просекой).

Плюс ко всему, результаты этой трансформации должны регулярно (например ежедневно) выгоняться (и выкладываться в интернет) либо обратно в OSM-файл (чтобы заинтересованные стороны могли его обрабатывать стандартными средствами), либо в mp.

'Кому будет полезно: Пользователям навигационных карт.

Технология: Любая, но на выходе должне быть OSM или mp.

Состояние

В общем виде ждет решения. Пока реализовано упрощение дорожного графа, преобразование двухвейных дорог в одновейные. См. ниже.

ЗАДАЧА #4

Внимание, за эту задачу установлен приз!

Дано: Карта в формате mp. Присутствуют дороги ( те что были в osm - trunk, primary, secondary, и проч), а так же развязки ( *_link ). Большая часть дорог двухвейные. Запреты отсутствуют.

Требуется: написать программу, которая двухвейные дороги переделает в одновейные, развязки стянет в точки. При этом должен сохраниться рутинг.

Для склеивания дорог есть подсказка. Парные веи имеют одинаковые номера дорог. Например, "E105" или "M5". (Как не сложно видеть, это более узкая постановка задачи #5)

Предпочтительные технологии: Perl, Java

Доп. условие: исходный код программы должен быть выпущена под свободной лицензией и опубликован на гитхабе.

Состояние

За решение этой задачи Zkir установил приз $300 у.е.

Overquantum представил рабочее решение этой задачи на Visual Basic 6.0, но отказался от приза в пользу того, кто перепишет его на Java.

ЗАДАЧА #5

Cделать, чтобы в дневниках на osm.org можно было отвечать на комменты, и приходили уведомления об ответах на почту.


ЗАДАЧА #6

Сделать наконец сервис по POI на основе OSM для пользователей. Должно быть чем то вроде 2gis и Afisha.ru в одном флаконе. Чтобы была онлайн карта, на эту карту можно было поднять все пои определенного типа (например, все рестораны, заправки или супермаркеты), щелкнуть по маркеру пои, посмотреть подробности: название, адрес, телефон, часы работы описание (из тега descripton). Чтобы пользователи имели возможность оставлять комментарии и ставить рейтинг. Ну и чтобы был поиск, по типу, по названию, по телефону, адресу и проч.

Кому будет полезно: Всем-всем-всем.

Технология: Любая. Но должно работать примерно следующим образом. :) ОСМ-данные должны быть довольно сильно переварены. Например, amenity=restorant может быть точкой, полигоном и даже (подозреваю) отношением. Нужно же построить сквозной список всех пои (таблицу БД), получить адреса для точечных пои с окружающего эту пои контура дома, и проч.

Состояние

Частично решена на openstreetmap.ru