Юзаю под андроидом Run.GPS
В ней нет функции навигации, есть следование заложенному заранее треку. Умеет предупреждать об отклонении от трека и предупреждать голосом о грядущих маневрах. Вообще программа ориентирована на спортсменов и любителей спорта и позволяет регистрировать тренировки, вести учет и замеры, интегрируется с дачтиками или спортивными компьютерами и т.п.
Программа поддерживает карты в виде растровых изображений. На этом принципе работают, как известно, Google Maps, Open Street Map. Карта представлена большим количество фрагментов (как кафельная плитка) в разных масщтабах. Можно также сделать собственный битмап с картой, только понадобиться привязать его к GPS-координатам.
Основной принцип работы. На десктопе готовится трек или треки, сохраняются в формате KML и перебрасываются в смартфон. При использовании онлайновых карт все просто - включил мобильный инет и поехал, только успевай аккумулятор заряжать.
С оффлайновыми картами сложнее.
Есть, упрощенно говоря, три варианта.
1) прямо в смартфоне прямо в программе запросить все кусочки карт вдоль трека. Программа вытягивает и сохраняет в кэше все возможные масштабы. Обычно загрузка длится порядка десяти минут. Минус очевиден - любое отклонение от трека приведет в "белое пятно" на карте. Зато можно включить мобильный интернет и подгрузить недостающие части карт.
2) На десктоп отдельной программой (они бесплатные и их несколько) скачиваются нужные куски карты в нужных масщтабах. Прямоугольный участок задается географическими-координатами. Комбинируя прямоугольники, можно заготовить карты любой вычурной формы. Затем карты копируются на смартфон. Вуаля.
Этим способом можно подготовить относительно большие по охвату площади карты, например 400 x 400 км. Не страшно отклониться от трека - это плюс. Однако размещение на карте памяти смартфона множества мелких файлов очень неэффективно. В моем случае при "полезном" суммарном размере карт в 3 Gb поребовалось что-то около 9 GB на карточке памяти.
3) Кусочки карт можно не хранить в отдельных файлах, а собрать воедино. Тогда для 3 Gb карты и понадобится 3 Gb. Для этого есть программа-генератор "атласа". Работает как "надстройка" к предыдущему способу. То есть сперва нужно скачать все кусочки карт на десктоп, а затем хапустить генерато атласа, который соберет фрагменты воедино.
В качестве источника карт использую OSM (рендеринг от Mapnik) - там есть 80-90% нужных мне велосипедных дорожек. А уж автодороги показаны просто замечательно, можно с ходу увидеть и исключить сильно нагруженные трассы.
Мне известен новый специализированный проект велосипедных карт (тоже в рамках OSM) HikeBike
http://hikebikemap.de/
Россию не смотрел, а велокарты Европы там есть. Местами полнее, чем классический OSM, местами наоборот, "обычный" OSM полнее.