Как стать автором
Обновить

Как я пытался починить поиск по картам для водителей. Часть 2

Время на прочтение 12 мин
Количество просмотров 3.7K
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 20

Комментарии 20

Поставил. Прикольная штука, но по мск маршрутики в плашках не отрисовывает, может хабраэффект?
Наверное, стоит на старте приложения повесить предупреждение, что время указано самое оптимистичное (указать более или менее достоверное время пути по данным OSM мне кажется малореально).
Так, например, прямо сейчас ваше приложение показывает 3 минуты до ближайшей заправки, при том, что по кратчайшему маршруту 3 светофора и пара крайне нагруженных участков дороги. При клике по карточке, открывшееся окно карт гугла уже показывает маршруты по 7-10 минут, что уже вполне реально.
Все правильно, я считаю без трафика — голое время езды. Иногда оно совпадает идеально, а в час-пик часто существенно отличается. Я думал-думал, откуда мне взять трафик, и пока единственный вариант — в определенное время дня ограничить максимальную скорость передвижения. Но это конечно костыль…
НЛО прилетело и опубликовало эту надпись здесь
Спасибо) фласк просто так — это апи на питоне за три секунды. Маршруты не храню, считаю каждый раз. Данные время от времени синхронизирую с экстрактами OSM (пару скриптов написал)
Для персонального проекта все хорошо, без особых наворотов. Но я бы сказал, что подходит для малого количества задач. Мне для постоянного использования не подойдет.
Позвольте спросить, чем не устроил, к примеру, Навител, или 2ГИС?
Все равно спасибо за отзыв) ну, для меня 2ГИС бесполезен, потому что живу не в СНГ, хотя он хорошо сделан
Мне приходится часто ездить и бывать в незнакомых городах, где на ходу надо искать заправку или банкомат — вот этот кейс и пытался решить
Если бы вы жили в СНГ, боюсь что вам OSM бы не сильно помог. Скажем, я точно знаю, что у Сбербанка скажем порядка 100 тыс устройств самообслуживания (включая банкоматы). Но при этом OSM мне показывает, что банкоматов всего скажем 12 тыс на все банки. Вот такое вот покрытие по некоторым параметрам.
Понимаю. Ну, я надеюсь постепенно находить другие источники локальных данных (часы работы, цены на бензин или статус зарядок для электрокаров). А данные OSM использовать в основном для дорог
Приложение интересное и возможно полезное, но вот при нажатии на конкретный объект открывается окно с картой и зависает — маршрут не строится, ну либо строится очень долго. Это при том, что я тестирую дома с WiFi подключением к скоростному Интернету — в дороге будет еще хуже и пользоваться приложением просто невозможно.
Идея показалась интересной. Скачал, запустил. Приложение обнаружило заправку, однако посмотреть маршрут, и тем более поехать не удалось: при клике на карточку зачем-то пытается запуститься браузер. А браузеру у меня геолокация не разрешена. На самой же карточке маршрут виден весьма условно (картинка тут). Возможно, это особенности OSM в окрестностях меня.
Я верно понял, что в самом приложении карты с маршрутом нет?
В общем, пока не прочувствовал пользу.
Да, приложение кидает не нативный диплинк, а по сути дергает браузер. А тот уже запускает дефолтную на девайсе навигацию — гугл или эппл карты. И видимо, это плохая идея) поправлю, спасибо
Возможно я что-то не понял, но почему вы считаете, что изохрона это дешево, а построение маршрутов дорого? Мне казалось, изохрона предполагает, что вы строите маршруты.
Думаю, да — это одинаковые по стоимости операции. Обе работают с графом и грузят одни и те же файлы. А вот поиск по полигону в эластике гораздо дешевле.
Так что в моем случае лучше пару раз дернуть изохрону+эластик и сузить радиус поиска, чем 20 раз прокладывать маршрут
Хм. Я точно чего-то недопонимаю. Для меня изохрона — это линия, каждой точки которой мы можем достичь за равное время (или проехав одинаковое расстояние). Фактически, если ее тупо «в лоб» реализовывать, то мы строим N маршрутов, каждый из которых отрезаем, как только достигли либо времени, либо расстояния.

Наверное это можно как-то оптимизировать, но как N маршрутов могут быть одинаковы по стоимости одному маршруту?
Там в OSRM используются хитрости типа предпросчитанных таблиц расстояний, поэтому оно такое и быстрое. И поэтому нужен этап конвертации — он генерирует промежуточные файлы со всеми этими таблицами. Но в детали алгоритмов я не погружался.
Кроме того, можно поиграться с параметрами изохроны, подобрать оптимальную детализацию например. По сути же результат алгоритма это облако точек, которые обводятся (concave hull). При низком разрешении изохроны игнорируются некоторые второстепенные дороги, точек в облаке меньше, и обводка грубее.
А, ну так да, понятнее — т.е. изохрона это более простые маршруты, и строятся они быстрее. Конвертация кстати по-моему есть у всех. Во всяком случае то что я видел у graphopper, так они тоже строят свой граф на базе OSM, причем отдельно для каждого типа транспортного средства (по той понятной причине, что грузовик не ездит по пешеходным дорожкам и наоборот).
да, при экстракте данных ты указываешь «профиль» — машина, пешеход, велосипед и тд. В профилях разные веса и инструкции к ребрам графа. Для общественного транспорта можно подключить таблицы с координатами остановок и часами прибытия (GTFS)
Дизайн симпатичный и идея не плохая. У меня миниатюры карт, к сожалению, так и не загрузились. И еще, я бы заменил прогресс-бары на мерцающие плейсхолдеры, а то когда на экране сразу несколько «крутилок» — это выглядит странно.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории