Подтвердить что ты не робот

Open Street Map работает в автономном режиме

Я новичок в Open Street Map. Я провел некоторое исследование и обнаружил, что мы можем загрузить и сохранить карту в папку. Но я не нашел никакого учебника или образца, который предоставляет автономную открытую карту улиц. Может ли кто-нибудь предоставить пошаговое руководство, руководство для реализации автономной открытой карты улиц, пожалуйста. Я следую этому примеру http://android-coding.blogspot.com/2012/06/example-of-implementing-openstreetmap.html, но теперь я хочу сделать его доступным, когда нет соединения.

4b9b3361

Ответ 1

Как и в упомянутом учебнике, вы можете использовать библиотеку osmdroid: https://code.google.com/p/osmdroid/

Хорошее объяснение того, как osmdroid работает с офлайн-картами здесь: fooobar.com/questions/322767/...

Используйте MapTileProviderBasic в своем приложении. Вот некоторые примеры: http://www.androidadb.com/class/ma/MapTileProviderBasic.html

Чтобы создать автономные карты в формате osmdroid, используйте Mobile Atlas Creator: http://mobac.sourceforge.net/

Вы можете выбрать источник карт и формат вывода. После сгенерирования разместите атлас карт в формате zip в каталоге "/osmdroid/map".

Надеюсь, это поможет!

Ответ 2

Я нашел этот учебник, который объясняет все, что вам нужно поэтапно.

Вкратце:

1- Вы должны скачать фрагменты карты, используя Мобильный Atlas Creator. Я объяснил шаги ЗДЕСЬ

2- Переместите полученный zip файл в/mnt/sdcard/osmdroid/на ваше устройство.

3- Добавление osmdroid-android-XXX.jar и slf4j-android-1.5.8.jar в путь сборки вашего проекта

4- Добавление MapView: вы можете добавить MapView в свой XML-макет

<org.osmdroid.views.MapView
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tilesource="Mapnik"
    />

Или программно создайте MapView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    mResourceProxy = new ResourceProxyImpl(inflater.getContext().getApplicationContext());
    mMapView = new MapView(inflater.getContext(), 256, mResourceProxy);
    return mMapView;
}

Надеюсь, что это поможет;)

Ответ 3

MOBAC (Mobile Atlas Creator) теперь заблокирован для использования OSM Вы можете увидеть здесь