Форум программистов, компьютерный форум, киберфорум
Xamarin/MAUI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 4
1

Osmdroid Загрузка карты в offline режиме

21.11.2016, 12:47. Показов 964. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я собрал dll библиотеку с osmbonuspack_v5.5.jar и osmdroid-android-5.0.1.jar. Всё работает отлично кроме загрузки карты в offline режиме. Я скачал карту с помощью Mobile Atlas Creator (OpenStreatMap Public Transport).

C#
1
2
3
4
5
string path = Path.Combine((string)Android.OS.Environment.ExternalStorageDirectory, "osmdroid");
string filename = Path.Combine(path, "tiles.zip");
ITileSource tileSource = new XYTileSource(filename, 5, 16, 256, ".png", new String[] { });
_mapView.SetUseDataConnection(false);
_mapView.SetTileSource(tileSource);
Это не работало.

Пытался использовать следущий код

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ITileSource tileSource = new XYTileSource("MapquestOSM", 0, 15, 256, ".png", new String[] { });
IRegisterReceiver registerReceiver = new SimpleRegisterReceiver(inflater.Context.ApplicationContext);
string path = Path.Combine((string)Android.OS.Environment.ExternalStorageDirectory, "osmdroid");
string filename = Path.Combine(path, "tiles.zip");
if (System.IO.File.Exists(filename))
{
    Java.IO.File file = new Java.IO.File(filename);
    GEMFFileArchive gemfFileArchive = null;
    try
    {
        gemfFileArchive = GEMFFileArchive.GetGEMFFileArchive(file); // Requires try/catch
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message); //Error "Bad file version: 1347093252"
    }
    MapTileFileArchiveProvider fileArchiveProvider = new MapTileFileArchiveProvider(registerReceiver, tileSource, new IArchiveFile[] { gemfFileArchive });
    MapTileProviderArray tileProviderArray = new MapTileProviderArray(tileSource, registerReceiver, new MapTileModuleProviderBase[] { fileArchiveProvider });
    _mapView = new Osmdroid.Views.MapView(this.Activity, new DefaultResourceProxyImpl(this.Activity), tileProviderArray);
    return _mapView;
}
Я получаю ошиибку

XML
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
 {Java.IO.IOException: Bad file version: 1347093252
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
  at Java.Interop.JniEnvironment+StaticMethods.CallStaticObjectMethod (JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00082] in /Users/builder/data/lanes/3415/7db2aac3/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12649 
  at Android.Runtime.JNIEnv.CallStaticObjectMethod (IntPtr jclass, IntPtr jmethod, Android.Runtime.JValue* parms) [0x00000] in /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:562 
  at Osmdroid.TileProvider.Modules.GEMFFileArchive.GetGEMFFileArchive (Java.IO.File pFile) [0x00047] in E:\WORK\OsmdroidXamarin\OsmdroidAndroidBinding\obj\Debug\generated\src\Osmdroid.TileProvider.Modules.GEMFFileArchive.cs:133 
  at OsmdroidAndroidSample.MapFragment.OnCreateView (Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Android.OS.Bundle savedInstanceState) [0x00080] in E:\WORK\OsmdroidXamarin\OsmdroidAndroidSample\MapFragment.cs:65 
  --- End of managed exception stack trace ---
java.io.IOException: Bad file version: 1347093252
    at org.osmdroid.util.GEMFFile.readHeader(GEMFFile.java:461)
    at org.osmdroid.util.GEMFFile.<init>(GEMFFile.java:91)
    at org.osmdroid.util.GEMFFile.<init>(GEMFFile.java:78)
    at org.osmdroid.tileprovider.modules.GEMFFileArchive.<init>(GEMFFileArchive.java:25)
    at org.osmdroid.tileprovider.modules.GEMFFileArchive.getGEMFFileArchive(GEMFFileArchive.java:29)
    at md50eb3e83a03383187939cb2001ecf4374.MapFragment.n_onCreateView(Native Method)
    at md50eb3e83a03383187939cb2001ecf4374.MapFragment.onCreateView(MapFragment.java:35)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
    at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330)
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
    at android.app.Activity.performStart(Activity.java:5241)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2168)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
    at android.app.ActivityThread.access$800(ActivityThread.java:135)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5017)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:655)
    at dalvik.system.NativeStart.main(Native Method)
}
Кто нибудь загружал карты в offline режиме используя Xamarin?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2016, 12:47
Ответы с готовыми решениями:

Загрузка бибилотеки osmdroid в Eclipse и Android Studio
Господа форумчане! Кто-нибудь сумел подключить библиотеку osmdroid к Eclips и Android Studio?...

Offline-карты
Здравствуйте! Подскажите, как сделать оффлайн карты для своего города? Карты должны быть наподобии...

Яндекс и Google карты offline, нужно сделать приложение на сайте
Здравствуйте. Мне нужно сделать сайт на php по следующим условиям: 1) нужно сделать карту...

Как получать сигнал со звуковой карты в режиме реального времени?
Добрый день, хочу написать гитарный тюнер, сразу возник вопрос. Как можно получать сигнал с...

0
21.11.2016, 12:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2016, 12:47
Помогаю со студенческими работами здесь

SFML, загрузка карты
Не загружается карта, которая сделана в tilemap, почему? #include &lt;SFML/Graphics.hpp&gt; #include...

Загрузка/Сохранение карты
Пожалуйста, помогите с загрузкой и сохранением карты, вроде все написал. Но карта загружается не...

загрузка программы из SD карты (STM32)?
только начинаю осваивать микроконтроллеры STM32F103(107), прочитал вроде уже много всего, но не...

Загрузка базы данных с SD карты
Ребят, подскажите как реализовать загрузку готовой базы данных с расширение .bd в приложение с SD...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru