@maximrabotaet

Какой сервис выбрать для расчета маршрута и как создать собственный сервис с интерактивными картами?

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

Сейчас, как я понял есть 2 основных варианта реализации:

1 вариант:
  • Выгрузить базу osm к себе,
  • установить роутинговый движок типа osrm, graphhopper или др.,
  • установить движок для рендера тайлов,
  • написать бизнес логику взаимодействия с роутинговым и тайловым движками,
  • реализовать веб фронт.

Из минусов:
  • выгрузка и обновление данных osm может занимать достаточно большое количество времени,
  • сервер будет обходится дорого, т.к. для работы базы нужно много ресурсов,
  • наверно, движки по возможностям уступают другим онлайн сервисам роутинга, т.е. менее доработанные.


2 вариант:
  • Собрать сервисы реализующие роутинг, типа mapbox, here и др.,
  • выбрать тайловый сервис.,
  • написать бизнес логику взаимодействия с роутинговыми сервисами,
  • реализовать веб фронт.

Из минусов вижу только зависимость от стороннего сервиса.

Некоторые необходимые возможности для построения маршрутов:
  1. Определять время прибытия в зависимости от типа транспорта, грубо говоря использовать профили транспорта связанные со скоростью, легковой/грузовой и т.п.;
  2. Исключать зоны при построении маршрута, например МКАД или платные дороги;
  3. Определять стоимость при проезде по платным дорогам или при использовании паромов;
  4. Строить маршруты с паромами и зимниками;
  5. Строить самый короткий или самый быстрый маршруты;
  6. Строить самый оптимальный маршрут если есть несколько точек;


Вопросы:
  1. Правильно ли я понял реализацию 1ого варианта, я что-то упустил?
  2. Как правильно добавлять и где хранить свою информацию к базе в случае с 1ым вариантом, например, какие-нибудь пользовательские метки с координатами, умеют ли движки работать с этими данными?
  3. Какой движок и онлайн-сервис по вашему мнению лучше подходит для маршрутизации транспорта?
  4. Какой движок и онлайн-сервис по вашему мнению лучше подходит для реализации тех возможностей что я указал выше?
  5. Какой движок и онлайн-сервис по вашему мнению лучше подходит для России?
  6. Можно ли использовать несколько движков с одной базой (для увеличения возможностей)?
  7. Можно ли использовать несколько баз с одним движком (для оптимизации скорости)?
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
Вам в пору заказывать научный отчёт в НИИ с ответами на все ваши вопросы. А по отдельности на каждый можно лекцию на 45 минут зачитать.
Ни один публичный роутинг не умеет во все ваши 6 запросов из коробки. Что-то там яндекс заикался про МКАД и грузовой профиль. Стоимость парома - я такого вообще не слышал.
Сам по себе грузовой профиль не проблема, но в OSM не так полна база запретов для грузовиков, обычным маперам это просто не интересно.
И вообще я считаю, что вам стоит выбрать любой и начать с написать бизнес логику взаимодействия и там уже часть вопросов отпадёт.
Ответ написан
Комментировать
trapwalker
@trapwalker
Программист, энтузиаст
По требованиям все кроме третьего пункта (про стоимости) умеет osrm. К нему же идёт опенсорсный фронтенд, который можно допиливать.

В обоих ваших вариантах вы написали какую-то чушь.
Тайловый рендер разворачивается в докер-контейнере за 5 минут. Как и osrm. Сложно будет настроить все это под ваши хотелки, но можно.
Бд - postgis. Есть тулза, которая импортит снапшот osm данных: https://wiki.openstreetmap.org/wiki/Osm2pgsql
Можете придумать или поискать тег для указания стоимости проезда по дороге и везде проставить. По построенному osrm маршруту потом дополнительным запросом к бд можно вытащить дороги с ценами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы