osmdroid 离线地图加载
来源:互联网 发布:淘宝默认邮箱 编辑:程序博客网 时间:2024/06/09 16:01
osmdroid是手机地图开发者们的一个福音,但是国内资源不是太多 关于osmdroid的教程更是少之又少,我就把我自学过程中遇到的问题以及解决的方案写出来,大家一起讨论学习。
一、首先下载问题
想要下载官方的实例程序、以及源码、最新版本、基础教程、API文档都可以在osmdroid github官网下载 https://github.com/osmdroid/osmdroid 官网首页
相关文档,以及jar包,都可以在官网相关链接中打开,将项目push到本地后 官方提供了一个入门例子OpenStreetMapViewer
可以运行查看基础的功能(比较全面),osmdroid-android里面是源码
想下载5.6.3的jar包的话到
osmdroid-android-5.6.3.jar
二、离线地图加载
首先了解osmdroid支持的离线地图格式,官方也有介绍官方离线地图介绍 相关入门介绍里面都有,这里需要注意的有以下几
个地方:
如果是zip包的话需要放在sdcard/osmdroid目录下,调用zip包是比较简单的(一般应该不会使用这种方法,占用内存太大)
Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); map = (MapView) findViewById(R.id.map); map.setTileSource(new XYTileSource("YOUR MAP SOURCE", 0, 18, 256, ".jpg", new String[] {})); //.... map.setUseDataConnection(false); //optional, but a good way to prevent loading from the network and test your zip loading. IMapController mapController = map.getController(); mapController.setZoom(_A ZOOM LEVEL YOU HAVE IN YOUR ZIP_); GeoPoint startPoint = new GeoPoint(_POSITION SOMEWHERE INSIDE YOUR MAP_); mapController.setCenter(startPoint);}
具查看数据表结构 ,我抓取得离线sqlite包:官方推荐使用的是sqlite文件,引用sqlite文件的话必须注意需要使用符合osmdroid 的sqlite文件,大家可以下载sqlite可视化工
china.sqlite
关键代码:
String strFilepath = Environment.getExternalStorageDirectory().getPath()+"/osmdroid/china.sqlite"; File exitFile = new File(strFilepath); String fileName = "china"; if(!exitFile.exists()){ mMapView.setTileSource(TileSourceFactory.MAPNIK); }else { if(ArchiveFileFactory.isFileExtensionRegistered(fileName)){ try { OfflineTileProvider tileProvider = new OfflineTileProvider(new SimpleRegisterReceiver(this),new File[]{exitFile}); mMapView.setTileProvider(tileProvider); String source = ""; IArchiveFile[] archives = tileProvider.getArchives(); if (archives.length>0){ Set<String> tileSouce = archives[0].getTileSources(); if(!tileSouce.isEmpty()){ source = tileSouce.iterator().next(); mMapView.setTileSource(FileBasedTileSource.getSource(source)); }else { mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE); } }else mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE); } catch (Exception e) { e.printStackTrace(); } } } // 关闭网络连接 mMapView.setUseDataConnection(false)
阅读全文
0 0
- osmdroid 离线地图加载
- android osmdroid 加载常用离线地图格式(开源的在线地图)
- android osmdroid 加载离线地图map格式以及地图网格绘制
- 三、osmdroid离线地图瓦片使用
- osmdroid地图
- Osmdroid 离线地图存放位置的研究和详细分析
- osmdroid 加载gpkg格式的离线底图
- Osmdroid加载第三方地图googlemap、bingmap等
- 百度离线地图加载
- arcgis离线地图加载
- 地图引擎 - OSMDroid
- 二、osmdroid地图资源
- GIS的学习(二十九)Osmdroid 离线地图存放位置的研究和详细分析
- 利用flex加载离线地图
- Qt加载百度离线地图
- 百度地图中的离线地图加载
- osmdroid 在线加载谷歌瓦片(谷歌地图瓦片地址解释)
- Arcgis For Android加载离线地图
- 构造完全二叉树,并按行从左到右输出
- 4.29 leetcode -29 rotate-list
- 简单的mysql增删改查(1)
- form表单中用户名和密码文字对齐
- serialVersionUID作用
- osmdroid 离线地图加载
- 银行家算法
- 开启CORS跨域访问
- 资讯精选 | 物联网时代半导体制造设备小型化大势所趋
- Oracle与Sql Server复制表结构及数据
- maven的安装
- C和C++程序员面试秘笈
- spring mvc jsp 和 后台controller 传值交互
- Scala跳出循环的三种方法