Москва. Прокладка маршрутов

Привет.
Независимо от liosha я попытался сделать прокладку маршрутов, но только не в гарминовской карте, а в виде веб-сервиса. То, что получилось, выложил пока на машинке, которая стоит у меня дома:
http://cooper.gpsvp.com:6789/
Чтобы проложить маршрут, надо сначала кликнуть туда, откуда надо проложить маршрут, а потом туда, куда. Прокладывается маршрут между перекрёстками, ближайшими к местам, в которые кликнули. Не думаю, что это слишком удобно, но для тестирования данных, мне кажется, вполне подойдёт, и гораздо лучше чем карта. Над удобством ещё планирую поработать.
Если кто будет пользоваться, могу настроить перестраивание графа маршрутизации, например, каждую ночь.
Пока использую данные только по Москве, потому что с ростом количества дорог трудоёмкость и требования к памяти используемого алгоритма сильно вырастают.

Попробовал только что - сайт недоступен. В какие часы пробовать?

Работает отлично.

А какие требования к серверу?

Попробовал еще раз. Действительно путь построился. Нашел благодаря построенному пути ошибку в карте. Интерфейс ждет доработки :slight_smile:

Ну и с другими городами что-то надо делать.

Основное требование - чтобы можно было запустить программу на питоне, которая постоянно висит в памяти. Программа сначала относительно долго запускается, а потом очень быстро отвечает, поэтому запускать её по запросу нельзя. Сейчас ей надо 140М памяти, но с ростом карты и объём памяти будет расти.

Ошибок в карте очень много, она же до сих пор для маршрутизации не использовалась практически.

Доработки в интерфейсе рассказывайте, какие нужны :slight_smile:

Любой другой город могу запустить отдельно. Количество требуемых ресурсов пропорционально квадрату количества перекрёстков в городе, так что за пределами Москвы можно даже целые области пробовать обрабатывать. Ну и могу отдать программу, чтобы локально можно было запускать на любых данных.

У меня (13) Permission denied

??? ??? ???
? ??? ??? ???
telnet cooper.gpsvp.com 6789
?

http://www.openrouteservice.org ?

Нда. Я ступил. Это сквид мой говорит…

Ну да, не я первый :slight_smile:
Но этот сервис пока отказывается работать за пределами Германии.

Предложение по интерфейсу и не только.

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

Кстати, какой критерий используется для поиска пути (т.е. что минимизируется?)

Еще вопрос.

Я исправил ошибку в карте, хочу посмотреть, правильно ли нарисуется теперь путь. Как часто заправляется свежий Osm-файл в твою систему роутинга?

Заправил вручную. Пока что процедура достаточно тяжёлая просто по вычислительным ресурсам и гонять её на машинке, которая отвечает, не стоит. Но надеюсь, что я смогу её облегчить и тогда можно будет обновлять хоть каждые полчаса. А пока стучите в почту или Google Talk.

Возможно есть проблема с обработкой кругового движения:

Путь должен пройти по большой дуге кольца, а не по малой
Место находится здесь: http://openstreetmap.org/?lat=55.616673&lon=37.787463&zoom=18&layers=B00FTFT

И еще выглядит странно, что построенный путь не использует узлы OSM.

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

Хорошие пожелания :slight_smile:
Пока сервис используется небольшим количеством людей для проверки карты, промежуточные точки я делать не буду.
Пока начну делать:

  • Флажки в начальной и конечной точках.
  • Ссылку на маршрут в формате KML.
    Оптимизируется расстояние, поделённое на как бы скорость, определённую для типа дороги. Табличка как бы скоростей пока такая:
    self.speedtable = {“motorway”:100,“motorway_link”:40,“trunk”:90,“trunk_link”:40,“primary”:80,“primary_link”:40,“secondary”:70,“tertiary”:60,“residential”:30,“service”:30,“cattle_grid”:10,“living_street”:30}
    Считается, что по остальному ездить нельзя.

Да, забыл ещё написать, что:

  • процедура обновления стала проще, поэтому я пытаюсь сделать, чтобы оно обновлялось раз в час, но это также значит, что пару минут где-то в начале каждого часа не будет работать
  • покрытие стало гораздо больше - берётся прямоугольник Москвы с запасом плюс откладывается в каждую сторону по половине ширины/высоты
  • прокладывать маршрут стало медленнее, теперь если машинка делает ещё что-нибудь, то маршрут типа Химки-Люберцы может считаться секунд десять-двадцать: http://cooper.gpsvp.com:6789/#55.89649134320582,37.39265441894531,55.69887266430104,37.88154602050781

А можно еще вот это залить: http://www.openstreetmap.org/?lat=68.909&lon=33.14&zoom=10&layers=B00FTF ?

Можно. Добавил квадрат 32.704963580923,68.82430018480561,33.444507117554,69.08779420309446
И вообще с новым алгоритмом я могу безболезненно добавлять новые города. Это немного увеличивает объём нужной памяти, но не влияет на скорость работы.
И раз в час, тоже нормально обновляется, хотя не каждый раз.