Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.61
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
#1

Интеграция карт OSM в проект - Программирование Android

18.02.2015, 19:14. Просмотров 6433. Ответов 23
Метки нет (Все метки)

Доброго времени суток! Необходимо сделать навигатор по городу, планируется его использование без постоянного подключения к интернету. Думаю для этого необходимо использовать карты от OpenStreetMap, т.к. они единственные офлайновые. Но вот в чем загвоздка, я не смог в просторах интернета найти примера как подключать и использовать данные библиотеки, сами библиотеки конечно же есть (вот ссылка: https://github.com/osmdroid/osmdroid). На официальном сайте, описание неполное и не понятное. Может кто поможет разобраться или объяснить как это делать, буду очень благодарен!

Добавлено через 3 часа 48 минут
В общем нашел кое что интересное по данной теме
Офлайн карты OpenStreetMap.
Скачаем основную библиотеку (osmdroid-android-3.0.7.jar) и вспомогательную (slf4j-android-1.5.8.jar), которая требуется для работы основной и добавим их в наш проект.
Далее в MainActivity добавляем код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.yourpackage.name;
 
 
 
import org.osmdroid.util.GeoPoint;
 
import org.osmdroid.views.MapView;
 
 
 
import android.app.Activity;
 
import android.os.Bundle;
 
 
 
public class OSMDroidMapActivity extends Activity {
 
    public void onCreate(Bundle savedInstanceState){
 
        super.onCreate(savedInstanceState);
 
 
 
        MapView mapView = new MapView(this, 256); //constructor
 
        mapView.setClickable(true);
 
        mapView.setBuiltInZoomControls(true);
 
        setContentView(mapView); //displaying the MapView
 
        mapView.getController().setZoom(15); //set initial zoom-level, depends on your need
 
        mapView.getController().setCenter(new GeoPoint(52.221, 6.893)); //This point is in Enschede, Netherlands. You should select a point in your map or get it from user's location.
 
        mapView.setUseDataConnection(false); //keeps the mapView from loading online tiles using network connection.
Этого достаточно для отображения карт и их прокрутки и зумирования.

Ещё необходимо скачать карты с помощью Mobile Atlas Creator. Там выбираем формат сохранения карт "Osmdroid ZIP". На карте находим необходимую локацию, выделяем ее. Выбираем тип карты а также масштабы тайлов. Называем карты и нажимаем на "add selection". После того как все настроено нажимаем на "Create atlas". Начнут скачиваться карты. Когда карты загрузятся просто переместите архив в /mnt/sdcard/osmdroid/. Либо разорхивировав в /mnt/sdcard/osmdroid/tiles/. Вот в приципе и все.

Добавлено через 3 минуты
Кстати, если будет ошибка и будет подчеркнуто
Java
1
OSMDroidMapActivity
то замените на
Java
1
MainActivity
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2015, 19:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интеграция карт OSM в проект (Программирование Android):

Как изменить размеры меток карты OSM под Андроид - Программирование Android
Привет Всем, пишу от непонимания или от незнания не суть в этом. Ставлю свои картинки для меток карты, карты использую OSM. но как только...

Интеграция смайлов - Программирование Android
Всем привет! Возникла непонятная для меня проблема, подгрузил библиотеку смайлов, все работает-открываются смайлы и я вижу те, которые...

Интеграция ZXing - Программирование Android
Подскажите, пожалуйста, как правильно интегрировать библиотеку ZXing в своё приложение (не через intent!) Смотрел урок Климова, перечитал...

Интеграция Google Analytics - Программирование Android
Не могу разобраться в интеграции Google Analytics в приложение. Туториал от гугла читал, но все равно не разобрался. Может кто знает где...

Интеграция библиотеки с GitHub в Студию - Программирование Android
Гуру, дайте краткую инструкцию, пли-и-из! (библиотеками раньше не пользовался - первые шаги и "первая паранойя") Есть такое (рисует...

C# OSM rendering (отрисовка карт OpenStreetMap) - C#
Доброго времени суток. Прошу отозватся тех, кто сталкивался с отрисовкой карт OpenStreetMap. Интересует любая информация, а так же: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
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
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
28.02.2015, 15:44  [ТС] #17
да под виндой, теперь понял что делать)

Добавлено через 7 часов 16 минут
я смог выполнить эти команды с помощью терминала cygdrive для виндовс, вроде как получился граф дорог. Так же с помощью Android Studio смог скомпилировать проект и закинул apk на телефон. Установил все, работает, карты с интернета прога качает и прекрасно по ним строит маршруты. Но при выборе моей карты, которую я закинул на карту памяти, пишет "Приложение остановлено". Использовал карту Казахстана.
0
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
28.02.2015, 15:51  [ТС] #18
Вот скриншот консоли при создании графа, ошибок вроде как не видно, значит все правильно я думаю...
0
Миниатюры
Интеграция карт OSM в проект  
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
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
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
01.03.2015, 14:50  [ТС] #20
Помогите пожалуйста убрать правильно лишнее из MainActivity.
В общем при запуске программа просит выбрать сохраненные карты на карте памяти, либо загрузить их с интернета.
только после этого открывается окно просмотра карты.
Необходимо убрать пункты выбора и чтобы программа при запуске загружала сразу же карты с карты памяти и показывала их. (карта одна и та же).
Ниже скриншот как выглядит начальный экран. нужно все это удалить и убрать все процедуры и функции из MainActivity. я много раз пытался, ничего не получается вечно ошибки выдает...
Листинг в архиве, сайт не дал мне весь листинг выложить
0
Миниатюры
Интеграция карт OSM в проект  
Вложения
Тип файла: rar MainActivity.rar (5.5 Кб, 41 просмотров)
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
01.03.2015, 14:52  [ТС] #21
из main.xml самособой тоже удалял)
0
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
24.03.2015, 15:08  [ТС] #22
я так понял в приложении graphhopper используется только mapsforge для карт? и osmdroid там даже близко нету?
0
4kict
0 / 0 / 0
Регистрация: 15.04.2015
Сообщений: 10
18.05.2015, 15:27 #23
ТС, приветствую!
"попробую 2 проекта сделать с векторными и с растровыми картами"
удалось ли сделать на векторных картах?
0
SkN[i]lpl[e][r]
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 248
18.05.2015, 19:16  [ТС] #24
4kict, выше я описал последовательность своих действий для получения векторных карт
Ура! ну наконец то заработало!)
Опишу порядок своих действий:
Скачал проект graphhopper с официального сайта.
Скачал Android Studio (Eclipse не поддерживается почемуто).
Использовал эту инструкцию по настройке проекта в Android Studio.
Скачал cygdrive и maven (т.к. сижу под виндой).
Проделал все манипуляции в командной строке для получения графа маршрутов.
Получил apk файл из android studio и установил его на телефон.
Закинул граф маршрутов с картой на карту памяти телефона.
Вот в принципе и все много мороки было с обрезкой карты, пришлось скачать сначала карту страны, потом с помощью osmosis удалось ее обрезать и преобразовать в формат .map с помощью плагина от mapsforge.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2015, 19:16
Привет! Вот еще темы с ответами:

Ищу простой и легкий плагин карт OSM или Google - WordPress
Добрый вечер. Подскажите, пожалуйста, перерыл большинство плагинов карт, но подходящего не нашел, особенно по отображению всех меток...

Интеграция шаблонизатора в свой проект - PHP
Хочу в свой проект с определенной объектной моделью интегрировать шаблонизатор Twig. Но так, чтобы он, в случае чего, не не конфликтовал с...

Интеграция qsvn в свой проект: ошибки компиляции undefined reference - C++ Qt
Добрый день! Есть необходимость в свое приложение встроить функционал работы с SVN. При этом крайне нежелательно использовать внешние...

Колода карт из 36 карт, сколькими способами можно достать 5 карт? - Комбинаторика
Колода карт из 36 карт. Сколькими способами можно достать 5 карт так, чтобы среди них были пиковые карты?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.05.2015, 19:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru