`
lingxingchen
  • 浏览: 2140 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Osmdroid 离线地图存放位置的研究和详细分析

阅读更多
转载:
http://www.myexception.cn/operating-system/795478.html

在手机通过osmdroid调用离线地图必须放在sdcard目下、如果采用osmdroid调用地图,那么用户查看地图手机上面一定有一个目录叫/sdcard/osmdroid/目录。目录下存放着调用的图层。





在线地图例如路径如下:

/sdcard/osmdroid/titles/poly_landmarks/14/3667/6189.png.tile



表示osmdroid调用的图层为poly_landmarks,14为缩放大小,3667为图层的索引,3667目录下为具体的索引下图层tiles图片。



离线地图调用路径:



       /mnt/sdcard/osmdroid/gmap.zip













文档说明如下:



Map tiles in Osmdroid are provided by map tile providers. The default tile provider used by Osmdroid is MapTileProviderBasic. This provider extends MapTileProviderArray, which means that it is an array of a few other tile providers - when a tile is requested these tile providers are asked one by one for a tile image until one of them provides it. Take a look at the constructor of MapTileProviderBasic:

public MapTileProviderBasic(final IRegisterReceiver pRegisterReceiver,
            final INetworkAvailablityCheck aNetworkAvailablityCheck, final ITileSource pTileSource) {
    super(pTileSource, pRegisterReceiver);

    final TileWriter tileWriter = new TileWriter();

    final MapTileFilesystemProvider fileSystemProvider = new MapTileFilesystemProvider(pRegisterReceiver, pTileSource);
    mTileProviderList.add(fileSystemProvider);

    final MapTileFileArchiveProvider archiveProvider = new MapTileFileArchiveProvider(pRegisterReceiver, pTileSource);
    mTileProviderList.add(archiveProvider);

    final MapTileDownloader downloaderProvider = new MapTileDownloader(pTileSource, tileWriter, aNetworkAvailablityCheck);
    mTileProviderList.add(downloaderProvider);
}
There are three map tile providers added to the array of providers, in this order:

MapTileFilesystemProvider - provides tiles from the file system (SD card directory)
MapTileFileArchiveProvider - provides tiles from archive in file system
MapTileDownloader - provides tiles by downloading them from the Internet (e.g. from OSM servers)
          So the MapTileProviderBasic looks for a given tile first in the file system, if the tile is not available then it looks for it in archive files and again if it is not available there it downloads the tile from the Internet.

         Ok, this is the default mechanism. If you want to change this mechanism to look for tiles stored in a DB then you can create you own class similar to MapTileProviderBasic. So your class could also exte  nd MapTileProviderArray and just use other providers in the constructor. In Osmdroid there is a class DatabaseFileArchive which could probably help you in reading tiles from the DB.

        After creating your own tile provider you should use it instead of the default one. Map tile providers are attached to the MapView. Some of the constructors of MapView take MapTileProviderBase as an argument - you can use one of them to attach your own provider.





综述:osmdroid使用地图的方式如下

1.首先调用MapTileFilesystemProvider 在sd card 目录查找地图图层。

2.如果没有,调用MapTileFileArchiveProvider 查找zip类型的压缩文件。

3.如果没有,到官方下载地图。



如果想使用本地数据库存储图层信息,那么需要重设置MapTileProviderArray实现地图图层的存储。

分享到:
评论

相关推荐

    osmdroid离线sqlite格式地图资源,北京市 bj.sqlite

    osmdroid离线sqlite格式地图资源,北京市,可以直接离线加载,已测试 请放心下载

    android 使用osmdroid 加载离线map格式数据以及地图网格

    通过以上步骤,我们就成功地在Android应用中使用osmdroid加载了离线地图数据和地图网格。结合个人博客中的详细示例和进一步的文档学习,你可以创建出功能强大的地图应用。记得持续关注osmdroid的更新,以便利用最新...

    android osmdroid离线加载常用格式

    android osmdroid离线加载常用格式zip,sqlite,.mbtiles,gemf。也可以在线加载地图。osmdroid的github地址:https://github.com/osmdroid/osmdroid;我的博客地址:http://blog.csdn.net/qq_16064871。

    osmdroid离线sqlite文件

    这是个从MOBAC自己抓取的osmdroid可以使用的sqlite格式离线文件,用于测试学习osmdroid离线地图使用 欢迎大家下载

    osmdroid 加载geopackage离线底图

    在本文中,我们将详细探讨如何使用osmdroid加载GeoPackage格式的离线地图数据。 GeoPackage是一种开放标准的数据容器,由Open Geospatial Consortium (OGC)制定,用于存储地理空间信息。它可以包含多种地理数据类型...

    osmdroid地图

    开发者可以通过分析和运行这个示例来学习和理解osmdroid的工作原理和用法。 总结来说,osmdroid是Android开发中一个强大的地图库,它简化了与OpenStreetMap集成的过程,提供了丰富的功能和高度的灵活性。无论是在线...

    osmdroid 在线加载谷歌瓦片

    osmdroid作为一个开源的项目,在在线地图上还是做的不错,离线地图上也能支持多种格式,例如:zip,sqlite,.mbtiles,gemf,map,gpkg等格式。就是不能直接加载shp文件大为苦恼。osmdroid没有可以设置坐标参考系的...

    osmdroid+google地图android应用

    在Android应用开发中,地图功能是许多应用不可或缺的一部分。本教程将深入探讨如何利用osmdroid库集成Google地图,解决地图显示为...同时,osmdroid还支持离线地图、缓存管理等高级特性,让地图开发更加灵活和高效。

    Osmdroid源码

    Osmdroid是一个开源的Android库,它为开发者提供了一个强大的地图框架,支持离线地图、OpenStreetMap(OSM)和其他在线地图服务。这个压缩包包含的是Osmdroid的源码,非常适合那些想要深入理解其内部工作原理或者想...

    osmdroid 源码

    osmdroid 是一个开源的 Android 库,专为在移动设备上实现地图功能而设计。它提供了一个灵活且可扩展的...通过深入研究 osmdroid 的源码,开发者可以提升对 Android 地图开发的理解,实现更加复杂和个性化的地图应用。

    osmdroid官方源码

    此外,源码中的注释和设计模式也是学习Android开发和地图应用开发的好资源。 总之,osmdroid是一个强大的地图库,它的源码不仅提供了丰富的功能,也是Android开发者的宝贵学习材料。通过研究这个源码,开发者可以...

    FakeGPSOffline:将位置发送到 FakeGPS 位置的离线地图查看器捐赠版本以设置假 GPS 坐标

    离线地图查看器,将位置发送到 FakeGPS 位置 捐赠版本以设置假 GPS 坐标 Osmdroid 库正在使用。 当前地图中心位置设置为HK #用法: 下载香港离线地图 ,或使用手机atlas creator或其他软件下载osmdroid格式的...

    osmdroid.jar

    Osmdroid地图加载不出来,只显示网格线,于是我花了一个星期研究修改了引用包中的一些内容,并将包整合到了一起,解决了不载图的问题

    osmdroid基础符号化.zip

    osmdroid是一个流行的开源库,专门用于Android应用中的地图显示和交互。它提供了一个灵活的接口,让开发者能够轻松地集成各种地图服务,包括离线地图支持。在osmdroid中,符号化是将地图数据可视化的过程,它可以是...

    android 开源库osmdroid绘制点线面(比例尺,缩小放大,导航图标等)

    android 开源库osmdroid绘制点线面(比例尺,缩小放大,导航图标等)。常用的基本用法都有,以及之前写加载离线地图也在这个项目。 我的博客地址:http://blog.csdn.net/qq_16064871。

    osmdroid-android-6.1.0.aar

    设计用于完全替换 Android 内部的 MapView 类,包含一个模块化的地图拼图,支持在线和离线地图以及覆盖地图,支持标注图标、位置跟踪和绘制形状。地图引擎使用 OpenStreetMap

    osmdroid-third-party-4.0.zip

    3. 统计报告:它可以收集并聚合性能数据,生成详细的统计报告,便于分析和优化。 4. 集成友好:speed4j设计为与其他日志框架兼容,可以将性能数据与其他日志一起记录,便于统一管理和分析。 5. 自定义指标:除了预定...

    OSM地图瓦片下载器0.2

    对于数据分析和研究,下载的瓦片数据可以作为基础层,叠加其他专题信息,进行空间分析或制图。 在实际操作中,我们需要注意版权和使用限制。因为OSM的数据是开源的,但具体到某些瓦片可能受到特定的使用条款约束。...

    osmdroid-android-5.6.4.aar

    设计用于完全替换 Android 内部的 MapView 类,包含一个模块化的地图拼图,支持在线和离线地图以及覆盖地图,支持标注图标、位置跟踪和绘制形状。地图引擎使用 OpenStreetMap

Global site tag (gtag.js) - Google Analytics