OsmAnd - хотелки и предложения по улучшению

Материться не надо, может просто не подходит. Я проехал 50т км и да бывали косяки, но сейчас случается не чаще 1 на 500 км в общем. Конечно, надо знать и учитывать ограничения программы, отписался ниже.

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

Эта фича автозум перекрестков сейчас в разработке. Но в принципе в Европе-Америке она не фига не поможет все равно, для этого надо как минимум рисовать lanes с числами, а еще лучше turn:lanes, и тогда полосы будут подсвечиваться, по карте ориентироваться абсолютно бесполезный вариант на сложных развязках.

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

Если не отображать записываемый трек, тормозить не будет. Мы сделали некоторые улучшение в отображение 2.1, но вообще отображение трека на 50 000 + точек, абсолютно бесполезное занятие на слабых телефонах. Можно, конечно, этой фиче уделить много внимания и как-то сделать, но сам пример использования не совсем хороший.

Это попытаемся воспроизвести и пофиксить.

Там все не так плохо, если граф полный, то начало дороги с грунтовки допустимо, главное чтобы посередине не было. Если посередине будет грунтовка (не важно по км), то маршрут не проложится.

Исправили

Не действует и не планируется.

Посмотрим граничные условия и, наверное, ослабим.

Не знал про 15 минут. Но это не объясняет тот факт, что программа продолжает писать треки, которые были начаты сутки назад на расстоянии 30 км. Вот такая хрень.
*Только что проверил. Запустил программу, закрыл. Через 40 минут запустил - вуаля - имеем продолжение трека. И сначала видно, что запись пошла с нуля, потом прибавилась сотня метров, записанная раньше. *
Реально что идёт совсем не так. И глюк вполне свежий. Месяц (может, полтора) назад такого не ловил.

Срабатывает не всегда! Проверено неоднократно.
Зная османдские сюрпризы всегда убеждаюсь в отстутствие значка фонового режима. Но в итоге батарея села.
Впрочем, “правильный” - это притянуто за уши. Это костыль, попытка возложить ответственность на сторонние приложения (в данном случае - систему) за то, что гарантированно делается через “крестик”. Пока был крестик, всё было пучком - 100% результат.
Также виду малого количества оперативы наблюдаю случаи, когда программа вылетела, а потом запустилась где-нибудь через полчаса.

UPD.

Это точно. Ещё несколько месяцев назад описывал этот косяк.

Я бываю спокоен только после ребута.

vshcherb,
Прошло пару часов. Запустил прогу. Запись трека продолжилась с учётом ранее записанных отрезков. Правило 15 минут никак не действует. Результат повторяется с завидным постоянством.
Ночнушка вчерашняя.

Возможно, разработчики уже и сами пришли к похожим выводам, возможно это уже здесь обсуждалось. Даже если так, от разжеванного повтора хуже никому не будет.

Речь пойдет о правиле “в середине маршрута не дожно быть понижений класса участков дороги” или же “в маршруте меж двух участков дороги одного класса не должно быть участков более низкого класса”, а именно, его недостатке.

В качестве примера использую недавно пройденный мною маршрут по OsmAnd с, насколько я понимаю, реализацией построения маршрутов используя указанное правило. Скрины приведу ссылками, дабы не пугать их размерами. Верхушку osmarender зачем-то оттяпал, ну и шут с ней, там неразрывный транк проходит.

Итак, необходимо проехать из пункта А (левый нижний угол) в пункт В (правый верхний угол).

скрин 1

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

Для данного маршрута наиболее оптимальны следующие 2 в порядке убывания релевантности (на скринах синенькие):

скрин 2
скрин 3

Как видно, эти маршруты проходят по 2-м, 3-м отдельным кускам транков. Вообще, для следования из А в В (или наоборот) как маршрут не строй, а на разделенный куски транков попадешь.

В следствии этого, придерживаясь упомянутого правила не разрывности, OsmAnd предлагает мне следующий маршрут (опять таки синенький):

скрин 4

Этот маршрут составляет 258 км, против 211 км со скрина 3 и 193 км от скрина 1, т.е. на 33% длиннее наикратчайшего и удобнейшего маршрута. А это 3 с четвертью часа езды вместо 2,5 часа.

Почему так происходит? Ведь, логика в этом правиле, вроде как, есть. Не спроста же классификация дорог основывается на правиле не разрывности дорожного графа и эту информацию, по логике, можно использовать и в построении маршрутов.
Возможно, что-то не так в классификации дорог приведенного примера? Нет, поверьте, я этим маршрутом 15 лет пользуюсь, указанные секондари на праймари никак не тянут и согласовываются с официальной классификацией, которые тоже не дураки составляли. Иный путей нет. От транков тоже никуда не дется. Имеем разницу в 2 класса. Да даже если транки понизить, опять имеем дыры, только уже не в транках, а в праймари.

Так что с этим правилом не так? А то, что в нем отсутсвует важное определение и связь неразрывности с этим определением. А именно, “область класса”.

Под “областью класса” понимается некая область и соответсвующий ей класс дорог, при транзитном маршруте через которую (область) по более чем одному учатску дороги данного класса, между ними на пути маршрута отсутсвуют участки дорог более низкого класса. Обратите внимание, на условие “отсутсвуют участки дорог более низкого класса”. Более высокий класс дорог вообще в определение не попадает, они могут прыгать как хотят. Главное, что бы не было ни одного кусочка более низкого класса. Более высокие классы в рамках транзита через данную область вообще можно приравнивать к классу области.

Примеры:
• Страна, в большенстве случаев, имеет класс транк, ибо он гарантирует, что попадании на транк можно спокойно по транку пересечь страну в нужном направлении.
• Населенный пункт, опять таки, в большенстве случаев, имеет класс тертиари.

Что касается иных классов дорог, они достаточно индивидуальны для каждой страны, впрочем, именно поэтому выше имеется приписка “в большенстве случаев”, т.к. не исключено, что в некоторых странах эти пункты также отличны.

Итого, правило неразрывности дорожной цепи для построения рутинга преобретает вид:

При сквозном проезде через область класса n и построении маршрута по участкам дороги соответсвующего (и выше) ей класса, на всем протяжении маршрута через эту область между каждым участком дороги данного класса отсутвуют участки дорог более низкого класса.

В этом определении появляется еще одно условие, “и построении маршрута по участкам дороги соответсвующего (и выше) ей класса”, оно здесь затем, что оптимальный маршрут может и не выходить на дороги этих классов, а пройти через эту область “бочком”. Однако, если выехали на такой участок, то на следующий участок дороги этих классов можно попасть только по дорогам этого и выше классов.

Стоит также заострить внимание на том, что данная неразрывность действительна только внутри конретной области. Проходя через несколько областей одного класса вполне справедлив маршрут с разрывами в классе между областями и отсутвием классовых дорог в маршруте через одну и более областей (укловое попадание в область/и).

Соответсвенно, для построения маршрута с учетом данного правила применяется следующий алгоритм:

Нахидятся области наибольшего класса n между пунктами А и В. Транзит через эти области стоится с учетом данного правила. За пределами этой области ишутся области класса n-1 и т.д.

Очевидно, что для реализации подобного в реальном рутинге нужны не просто адекватные простановки классов на карте но и четкое представление об областях классов для разных регионов карты. Что достаточно трудоемко. Да и алгоритм выходит не такой уж тривиальный, как представлялся ранее.
С учетом того, что в классификациях у нас порой бардак, а с определениями областей классов вообще глухо (в своей-то стране не понятно что к чему, что уж о соседних говорить…), забейте вы на эту неразрывность до лучших времен…

Хотя при всей казалось бы сложности, эти правила действительно могли бы хорошо ускорить рутинг, хотя, для лучшего эффекта нужно бы хранить генерализации графоф областей с выкидыванием рваных кусков дорог более низкого класса (оставляя смежные с другими областями) и для транзита через область использовать их.

Фух, теперь можете пинать…

Ну как может не подходить программа - навигатор! Веди по дороге, пиши трек, пересчитывай маршрут при отклонении и все. Все эти функции есть, только глючат иногда.
1 на 500км это очень часто - для меня - тормоза это 2 раза в день. Для правильных ездоков - 3. И это ведь не при движении по городу, где на 10км 5 пересчетов маршрута, это при движении по трассе. Где тупо одна прямая дорога, с которой и свернуть то особо некуда (Беломорск - Старая Ладога как пример, упала по дороге 2 раза)

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

Ну это хорошая фича! lanes не очень удобно, слишком велика скорость потока и слишком коротки эти самые отрезки с разным числом полос. Для плотной сети на развязках как то детектировать это и уменьшать пропорционально толщину дорог. Подожду когда сделаете такую фичу, даст Бог мне ранее чем через 2 года не придется сложные развязки форсировать.

Я поставил новую версию, но попробовать ее смогу в аналогичной ситуации вряд ли ранее августа 2016 года.:rolleyes: А там выйдет еще много версий.

Все относительно. Одно дело, в движении, конечно тогда отображать трек такой нет смысла, да и вообще мало его. А вот обзор чего за сегодня наездили, совсем другой вариант, и посмотреть бывает интересно.
Но всё таки, торможение было без отображения трека. Возможно это было связано с тем что много карт регионов подробных было испльзовано, ну и объем трека.

Добавлю, может быть поможет: постоянно езжу с программой активной в режиме записи трека, навигации нет. Иногда, сама, она начинает объявлять о ЛП ПП и прочим словами “внимание”. Сложилось смутное ощущение, что голос прорезается и без навигации тогда, когда я потыкал в навигацию, посмотрел маршруты, но навигацию отключил.

Граф полный в каком смысле? У нас в тот день был маршрут длинный, но начинался он в тот момент именно с грейдера (хочу сказать шикарный грейдер - ехать по такому одно удовольствие), и состоял в начале из этого грейдера, потом асфальта, потом опять грейдер и окончательно асфальт. Возможно 2й грейдер можно было объехать по асфальту где то…

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

А еще лучше это самое условие в конфиг и опубликовать по нему хоть какую то документацию. Люди сами сделают как надо.

p.s. в новой версии с маркета упорно не появлялась нигде заметка что я нанес. Потом, через день, появилась. выгрузил. И выход кнопкой назад не работает, телефон сообщает что программа жрет энергию, приходится прибивать. Фоновый режим не включен, запись трека не включена.

Vitalts
Это называется “горе от ума”. Нет никаких правил “неразрывности” и “отсутствия дорог низших классов в серединет маршрута”. Есть простой набор правил - для легкового автомобиля trunk такая-то скорость, primary ниже и т.д. Вся разница заключается в назначении величин этих скоростей разными конвертерами и программами навигации.
Дальше возможны вариации - штраф за левый поворот, за светофор и пр., но ничего общего с тем что вы напридумали. Принципиально никто не станет опираться на неразрывность дорог определенной категории в открытом, немодерируемом проекте.

Отнюдь.
Вы мыслите лишь в терминах оценки целевой функции. От неё, в конечном счете, и зависит выбранный маршрут.
Но в переборе вариантов маршрутоа важен еще и порядок перебора. Если вы быстро нашли лучший вариант, то убедится, что остальные хуже гораздо получится быстрее, чем если лучший вариант будет найден в конце.
Поэтому правильная разметка статусов чаще всего позволяет быстро найти лучший вариант, рассматривая вначале лишь варианты движения по дорогам высокого статуса, а уж потом варианты по всем другим дорогам. Иногда из экономии времени поиска их отбрасывают вовсе, и вот это уже может сказаться на результате.

В ОсмАнд, НЯП, есть штраф за понижение класса дороги в середине маршрута, но это именно штраф с конечным значением, а не абсолютный запрет.

Прошу прощения,меня тут давно не было и всю историю не осилил ещё,так что буду повторяться

  1. Кнопку Exit убрали,теперь стало дико неудобно. Я всегда записывал треки,а теперь не всегда. Потому что я забываю после запуска нажать на кнопки (это ж секунд 10 надо). А раньше нажал Выход и после запуска всё само стартовало, но были косяки с самостоятельным запуском приложения. Они никуда не ушли, просто проявляются реже из-за того что служба чаще всего выключена. Очень хочется, чтоб при запуске приложения трек автоматом начинал записываться, а при остановке службы выключалось и трек сохранялся
  2. Хочется куда-то выгрузить мои локальные заметки (OSM правки) и чтоб это был не openstreetmap.org и желательно чтоб это можно было в JOSM потом открыть. Там их в районе тыщи и если в конце списка по какой-то ткнуть и показать на карте, то потом опять листать километровый список до неё
    2а. Удалил приложение/поставил заново - заметок нет совсем.Обидно
  3. Не нашёл как убрать этот дурацкий зелёный маркер: контекстное меню-Сообщить об ошибке на карте-печатаем что-то-OK и появляется жёлтое пятно и огромная зелёная фигня. Жёлтое пятно убирается через настройки карты OSM-заметки,а зелёное не убирается
  4. Они же. Не сразу отображается после добавления, иногда надо зумом поиграться
  5. Свежайшее: UniRS всё стало каким-то толстым и расплывчатым. Раньше примерно так выглядел экран когда увеличиваешь масштаб, карта смасштабировалась, но ещё не отрисовалась. Ой, это пешеходу так не повезло, вроде у остальных по-старому
  6. При переключении режимов Велосипед/Машина/Пешеход линейка врёт: показывает 100м, увеличил,уменьшил уже 20м
  7. При обнаружении своего положения всегда переводит экран в текущие координаты
    Конкурс что ль об’явили, кто сделает неудобнее пользователям: Яндекс, ДубльГИС, ОсмАнд у всех эксперименты какие-то

В свою очередь, НЯП, в OsmAnd внедрялся алгоритм поиска маршрута с учетом отсутствия понижения класса меж двух участков одного касса. Вроде, в качестве теста, выкатывался ли он в продакшн, не знаю, однако, судя по моему примеру, именно с такой версией ОсмАнд я и катался в тот день, каждый раз, как на пути попадалось 2 разорванных куска транка, ОсмАнд вечно уводил меня глубоко в сторону для выезда на единый неразрывный транк.
По текущим меркам версия уже древняя v. 2.0.0#10543M

Извините что не сразу въехал в тему.
Генерализацией по нескольким уровням с разметкой up-level|down-level должна заниматься специальная программа на уровне компиляции карты, как это происходит у коммерческих поставщиков, а не рядовой осмер с помощью ручных статусов. Никак нельзя расчитывать на неразрывность графа в немодерируемом проекте, у нас не бывает статуса базы release. Если OSMAnd использует генерализацию по статусам - то это скорее недостаток. Мне просто стал непонятен смысл такого длинного эссе от Vitals того, что объясняется двумя словами.

Есть очень серьезное различие в евромапинге и румапинге. У них сначала построили дороги, даже связную сеть дорог, а потом начали мапить truth on the ground - дорога категории I-А по отечественной терминологии это motorway, I-Б, I-В - trunk, II-III - primary|secondary в зависимости от обстоятельств. А у нас, т.к. нормальных дорог нет, начали мапить по важности, притянув за уши теорию о неразрывности статусов. Если дорога - зимник, или сделана из грязи как трасса “Лена” - можно хоть в лепёшку расшибиться, но в определенное время года там будет дыра в сети дорог. Как бы мы не мечтали о неразрывности.

Двумя словами как правильно - не обяснить. Двумя словами как лучше в современных реалиях ОСМ совет был:

Я до того места просто не смог дочитать, слишком мудрёно ))) Ну, разобрались, оказывается мы по одну сторону.

Дык я описываю, что отсутствие неразрывности должно лишь увеличить время перебора, а не изменить его результат.
В упорядочивании перебора полагаться на статусы вполне возможно. Нельзя лишь полагатся на них лишь при отсечении вариантов.

То есть какой-то мутный алгоритм, который за 15 минут не подправишь “вот тут объездную повыше, а вот тут перекрыть нафиг”, вместо живого вменяемого (я оптимист, да) человека?
Удобно. Прям как в лучших домах Европы, т.е. “у коммерческих поставщиков”.
Вообще-то одним из самых толстых плюсов ОСМа всегда считалась гибкость и оперативность.

Надо отличать отсутствие модератора, пре-модерацию и пост-модерацию.
Вот чего-чего, а статусы дорог у нас более-менее в порядке, спасибо валидатору ситигида. Глобальные косяки живут считанные дни, не более.

Опробовал текущую ночнушку с описанным маршрутом. Поведение один в один с ранее опробованной версией. При 2-х разрывных кусках транка тащит меня в сторону для выезда на единый транк и плевать ему, что это лишние десятки километров. А ведь когда с ним не соглашаешся и прешь своим ходом, то при перестроении маршрута он и сам “говорит”, что так и ближе и быстрее. Перебора всех вариантов явно не ведется, идет отсечение неугодных по классам маршрутов :frowning:

А ещё: список POI жёстко задан или от моих действий что-то зависит?
А то у меня фигня там какая-то: заправки-парковки-личный транспорт, еда-рестораны разбросаны кто куда по меню

Теория неразрывности статусов, асболютно не теория, а практика. Для этого надо просто мапить по статусами принятым в официальных документах. Дорога федерального назначения, скоростная дорога и т.п. Если кусок дороги труднопроходим от этого не меняется ее статус, а меняется покрытие, smoothness и т.п.
Роутинг используемый статусы дорог, работает в абсолютно многих случаях нормально и теоретически я не вижу причин, почему он не должен. Если лезть совсем во внутренности алгоритма, то разрывы алгоритм умеет соединять, но это уже сложно объяснить в двух словах. Для тех, кто хочет “честный”, но медленный роутинг, всегда можно включить его в настройках Development (disable 2 phase routing).

Список POI задан относительно, но можно набирать теги и в принципе если tag/value получился, что надо, значит используйте, есть еще режим Advanced.

Баг в маркетной платной версии вчера локализовал. Добавляю заметку на карту, она показывается желтым кружочком (ну конечно при ключенной галке) но не видна в настройках плагина редактирования карты, то есть выгрузить ее нельзя. Надо закрыть (и прибить) программу, и потом запустить вновь. Тогда она будет видна и ее можно будет выгрузить.