9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
||||||||||||||||
1 | ||||||||||||||||
Интеграция карт OSM в проект18.02.2015, 19:14. Показов 22792. Ответов 29
Метки нет (Все метки)
Доброго времени суток! Необходимо сделать навигатор по городу, планируется его использование без постоянного подключения к интернету. Думаю для этого необходимо использовать карты от OpenStreetMap, т.к. они единственные офлайновые. Но вот в чем загвоздка, я не смог в просторах интернета найти примера как подключать и использовать данные библиотеки, сами библиотеки конечно же есть (вот ссылка: https://github.com/osmdroid/osmdroid). На официальном сайте, описание неполное и не понятное. Может кто поможет разобраться или объяснить как это делать, буду очень благодарен!
Добавлено через 3 часа 48 минут В общем нашел кое что интересное по данной теме Офлайн карты OpenStreetMap. Скачаем основную библиотеку (osmdroid-android-3.0.7.jar) и вспомогательную (slf4j-android-1.5.8.jar), которая требуется для работы основной и добавим их в наш проект. Далее в MainActivity добавляем код:
Ещё необходимо скачать карты с помощью Mobile Atlas Creator. Там выбираем формат сохранения карт "Osmdroid ZIP". На карте находим необходимую локацию, выделяем ее. Выбираем тип карты а также масштабы тайлов. Называем карты и нажимаем на "add selection". После того как все настроено нажимаем на "Create atlas". Начнут скачиваться карты. Когда карты загрузятся просто переместите архив в /mnt/sdcard/osmdroid/. Либо разорхивировав в /mnt/sdcard/osmdroid/tiles/. Вот в приципе и все. Добавлено через 3 минуты Кстати, если будет ошибка и будет подчеркнуто
0
|
18.02.2015, 19:14 | |
Ответы с готовыми решениями:
29
C# OSM rendering (отрисовка карт OpenStreetMap) Ищу простой и легкий плагин карт OSM или Google Интеграция Яндекс Карт на форме документа Интеграция шаблонизатора в свой проект |
18.02.2015, 19:15 | 2 |
загвоздка GIS - это то, что данные, хранящиеся в системе, невозможо красиво нарисовать "на лету"
поэтому для каждого масштаба специальными серверами генерируются "тайлы" - квадратики, покрывающие некую площадь карты количество изображений таково, что объем сильно превышает возможности мобильного устройства, так что сервер, откуда это все брать по запросу, все-таки нужен OSM - это бесплатные данные, но не бесплатные сервера! там есть список серверов, за вполне доступную денежку готовых обслужить ваше приложение. либо заводите свой, генерируйте на нем картинки и по запросу отдавайте их на мобильник. программы-навигаторы с файлами по 500 мб генерируют сильно упрощенную картинку, изготовить которую тоже надо суметь. сомневаюсь, что все карты влезли в эту библиотеку
0
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
||||||
18.02.2015, 19:47 [ТС] | 3 | |||||
Ну с картами я можно сказать разобрался С навигацией теперь ступор... Если у кого есть опыт в этом поделитесь пожалуйста)
Добавлено через 3 минуты krapotkin, Ну это обобщенный пример, и карта лично для себя не такая уж и большая нужна, я с помощью Mobile Atlas Creator скачал карту своего города и размер её 28 Мб составил. Добавлено через 9 минут krapotkin, Ну, а вообще если глобально делать приложение, то да, без своего сервера с картами не обойтись, тут вы правы! Добавлено через 17 минут Да, совсем забыл, В манифесте нужно добавить эти строки:
0
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
18.02.2015, 21:13 [ТС] | 4 |
Поспешил - людей насмешил....
По какойто неведомой мне причине карты не загружаются из архива. Архив закидывал и на карту памяти и на память телефона, тоже самое и с разархивированой папкой, безрезультатно... Может кто разберется
0
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
||||||||||||||||
18.02.2015, 22:06 [ТС] | 5 | |||||||||||||||
Попробовал создать проект по официальной документации: http://code.google.com/p/osmbo... Tutorial_0
Ошибок никаких не выдало, но при запуске на телефоне выдает ошибку... Логи ошибок прилагаю. Помогите разобраться в чем проблема... вот сам проект: MainActivity:
commons-lang3-3.3.2.jar gson-2.2.4.jar osmbonuspack_v5.1.jar osmdroid-android-4.2.jar
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
19.02.2015, 09:48 | 6 |
SkN[i]lpl[e][r], привет!
Молодец, что решил разобраться. Советую отдельные фразы из Logcat вставлять в Google и искать. Сразу поднимешь уровень. По последней ошибке: https://groups.google.com/foru... BdC8Wy3zic http://stackoverflow.com/quest... founderror Выдало несколько ссылок на YouTube, также рекомендую поглядеть. Вы уверены, что ваш город есть в OSM?
0
|
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
|
|
19.02.2015, 10:21 | 7 |
Писал навигатор с использованием осм карт, если хотите чтоб карты были офлайн и мало весили, нужно юзать векторные карты, osmdroid кушает только растровые тайлы, но он лучше в плане отображения, можно вращать карту, удобнее работа со слоями итд. Делал следующим образом: есть либа mapsforge, она как раз юзает векторные карты, нужно взять из нее пару классов и встроить их в osmdroid, чтоб он научился генерировать тайлы из векторной карты, вот даже мануал есть
Для построения маршрута офлайн лучшая либа graphhopper Встраивается достаточно просто, если что обращайтесь.
2
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
19.02.2015, 11:49 [ТС] | 8 |
CoolMind, Здорова!
Да, город есть, довольно подробная карта, в растровом виде скачал её (OpenStreetMap MapQuest). Спасиб за инфу, буду разбираться Добавлено через 4 минуты Gabberr, с векторными картами будут подтормаживать слабые устройства я думаю, но этот вариант я тоже рассмотрю, если что попробую 2 проекта сделать с векторными и с растровыми картами что лучше будет потом посмотрим)) Спасибо огромное за инфу) Если что, буду писать в эту тему)
0
|
19.02.2015, 13:44 | 9 |
можно сделать векторы почти без особых проблем, там же размер экранчика-то небольшой
вот выделить из БД только нужные векторы - задача нереально объемная так что мейнстрим - готовые картинки )
0
|
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
|
|
19.02.2015, 15:05 | 10 |
Тормозов совсем не было, рендеринг тайлов происходит в бекграунде, просто где-то быстрее отрисовывает карту, где-то медленнее.
0
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
22.02.2015, 12:53 [ТС] | 11 |
Мне удалось с помощью мануала по примеру подключить к Osmdroid библиотеки от mapsforge. для работы нужна карта формата .map.
Все никак не могу разобраться как сохранить карты в формате "*.map". Инструкции как делать есть, но на скачивание библиотек и программ ссылки почему то не работают. Может есть альтернативный способ как получить карты в формате для mapsforge? Добавлено через 44 минуты я не могу скачать osmosis для конвертирования из карт OpenStreetMap в формат карт для mapsforge. Ссылка недоступна пишет Добавлено через 1 час 5 минут Gabberr, у вас не осталось архива с osmosis? весь интернет перерыл, найти не могу. с оффициального сайта не качается у меня
0
|
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
|
|
22.02.2015, 15:50 | 12 |
Все осталось на предыдущем месте работы, можете собрать из исходников
А вот и нашел где скачать http://www.filewatcher.com/m/o... 385-0.html
1
|
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
|
|
24.02.2015, 17:25 | 14 |
Инструкция же есть пошаговая
https://github.com/graphhopper... d/index.md
1
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
27.02.2015, 19:47 [ТС] | 15 |
я не могу понять где они эти команды пишут в эклипсе:
$ git clone git://github.com/graphhopper/graphhopper.git graphhopper $ cd graphhopper $ ./graphhopper.sh import your-area.pbf Добавлено через 6 минут я вот с этим и завис, какая то командная строка что ли... Добавлено через 2 часа 57 минут кажись догадался, через командную строку maven работают
0
|
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
|
|
27.02.2015, 22:52 | 16 |
Это не в эклипсе, а в командной строке.
git clone - клонирует проект из удаленного репозитория cd - переход в папку ./graphhopper.sh import your-area.pbf - запуск баш скрипта graphhopper.sh с параметром your-area.pbf your-area.pbf - исходник osm карты, из которого нужно сгенерировать граф дорог. Добавлено через 5 минут Полагаю, под виндой сидишь, раз сходу не понял, что в терминале нужно писать, если так - советую скорей переходить на линуху.
1
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
28.02.2015, 15:44 [ТС] | 17 |
да под виндой, теперь понял что делать)
Добавлено через 7 часов 16 минут я смог выполнить эти команды с помощью терминала cygdrive для виндовс, вроде как получился граф дорог. Так же с помощью Android Studio смог скомпилировать проект и закинул apk на телефон. Установил все, работает, карты с интернета прога качает и прекрасно по ним строит маршруты. Но при выборе моей карты, которую я закинул на карту памяти, пишет "Приложение остановлено". Использовал карту Казахстана.
0
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
28.02.2015, 15:51 [ТС] | 18 |
Вот скриншот консоли при создании графа, ошибок вроде как не видно, значит все правильно я думаю...
0
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
28.02.2015, 20:23 [ТС] | 19 |
Ура! ну наконец то заработало!)
Опишу порядок своих действий: Скачал проект graphhopper с официального сайта. Скачал Android Studio (Eclipse не поддерживается почемуто). Использовал эту инструкцию по настройке проекта в Android Studio. Скачал cygdrive и maven (т.к. сижу под виндой). Проделал все манипуляции в командной строке для получения графа маршрутов. Получил apk файл из android studio и установил его на телефон. Закинул граф маршрутов с картой на карту памяти телефона. Вот в принципе и все много мороки было с обрезкой карты, пришлось скачать сначала карту страны, потом с помощью osmosis удалось ее обрезать и преобразовать в формат .map с помощью плагина от mapsforge. Добавлено через 2 минуты навигация неплохо работает, меньше чем за секунду строит маршрут! да и карта меньше мегабайта! супер просто теперь нужно разобраться как выбирать по адресу начало маршрута и также адрес конца маршрута, а то в примере по удержанию на экране ставились точки. Добавлено через 55 секунд а, еще как бы сделать чтобы просмотр карты происходил только в определенной области, чтоб за границы города не выходил... Добавлено через 13 минут я так понимаю graphhopper отдельно идет от osmdroid? Его нужно встраивать как то?
1
|
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
|
|
01.03.2015, 14:50 [ТС] | 20 |
Помогите пожалуйста убрать правильно лишнее из MainActivity.
В общем при запуске программа просит выбрать сохраненные карты на карте памяти, либо загрузить их с интернета. только после этого открывается окно просмотра карты. Необходимо убрать пункты выбора и чтобы программа при запуске загружала сразу же карты с карты памяти и показывала их. (карта одна и та же). Ниже скриншот как выглядит начальный экран. нужно все это удалить и убрать все процедуры и функции из MainActivity. я много раз пытался, ничего не получается вечно ошибки выдает... Листинг в архиве, сайт не дал мне весь листинг выложить
0
|
01.03.2015, 14:50 | |
01.03.2015, 14:50 | |
Помогаю со студенческими работами здесь
20
Svg интеграция в проект изменение цвета Интеграция Newtonsoft.Json в свой проект Интеграция vue.js + vuex в проект asp.net core Интеграция qsvn в свой проект: ошибки компиляции undefined reference Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |