0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 4
|
|
1
|
Osmdroid Загрузка карты в offline режиме
21.11.2016, 12:47. Показов 964. Ответов 0
Я собрал 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
|