У меня стоит такая задача: при запуске приложения, оно определят местонахождение пользователя и в определенном радиусе скачивает карту и данные для оффлайн прокладки маршрута. Я смотрел много примеров, но во всех примерах карты и данные для оффлайн навигации готовятся заранее, а мне нужно, чтобы всё происходило динамически, при работе приложения. Для оффлайн навигации выбрал Graphhopper и для оффлайн карт OSM. Приложение разрабатывается на Android.
Вы сами противоречия не видите?
"Оффлайн" означает, что карты закачаны заранее. "Динамически при работе приложения" - это уже "онлайн". А сценарий, который вы описали в самом начале - "при запуске приложения, карта скачивается автоматически вокруг местоположения пользователя" - это и есть "карты готовятся заранее".
Ну и подумайте над вопросом: сколько времени займет скачивание данных на разумно большую территорию, и на сколько разумно это делать прямо перед использованием (сколько пользователю придется ждать, пока все скачается, чтобы начать таки поездку)?
тайлики отображения карты можно подгружать динамически, даже векторные. это есть в куче программ.
системы динамически подгружаемого роутинга на данный момент не существует. хотя теоритические попытки есть.
но в обоих случаях выход в оффлайне за пределы скачанной зоны обломает весь кайф (из практики) потому, даже на кеширующих растровых картосмотрелках, предзакачивают регион с запасом для использования в оффлайне.
так что вы пытаетесь смешать зеленое с холодным.
векторные карты осм не таких уж и больших размеров, при этом дают все возможности по отображению, роутингу и поиску поишек в пределах загруженного участка. Имхо не такая уж большая проблема, чтобы скачать максимум сотню мегов для удобной полноценной функциональности.
можешь попробовать нарезать на более мелкие районы.