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

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

Восстановить пароль Регистрация
 
Artemprodigy0
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 4
21.11.2016, 12:47     Osmdroid Загрузка карты в offline режиме #1
Я собрал 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?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2016, 12:47     Osmdroid Загрузка карты в offline режиме
Посмотрите здесь:

Windows XP Загрузка в безопасном режиме
Яндекс и Google карты offline, нужно сделать приложение на сайте PHP
Delphi Загрузка/Сохранение карты
Загрузка процессора в режиме ожидания Windows 8, 8.1
Xamarin Загрузка файлов из интернета по прямой ссылке (Xamarin)
Загрузка ЦП 14% в режиме простоя Windows 7
Загрузка базы данных с SD карты Android
Android Offline-карты

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru