一直觉得地图应用支持离线地图佷重要啊我等移动2G屌丝,流量不易且用且珍惜。
对于官方开发指南对于离线地图的教程提供了两种方案:
第一,手动导入先将从官网下载的离线包解压,把vmp文件夹拷入SD卡根目录下的BaiduMapSDK文件夹内好吧,我表示不能接受无视了。
第二接口下载方法如下:mOffline.start(cityid);还比较靠谱,就是没详细介绍
今天,我们主要对第二种方式进行详细介绍然后集成到我们的已经集成了定位方向传感器的地图中,如果你还不了解:
为了方便我又添加了个菜单按钮~可以看到能够对下载位置的保存,支持多个等待下载已经取消下载等。最主要当然是下载过后,只需要定位的流量(甚至不用)就能很好的使用咱们的地图拉~
顺便提一下:本来想搞个线程池支持多个同时下载,这块可能很多不注意会有一些问题但是百度地图公开出来的start(cityCode)不管我怎么尝试(尝试了多个离线地图实例都不行),每次同时都只能下载一个
a 、类 MKOfflineMap 提供地图的下载,离线地图列表的获取已下载地图的查询等
API在百度的帮助文档中也很详细,下面会在代码中使用这些API
包含了,城市名称:用于listview上的显示城市id:用于查询下载情况,进度:更新listview下载时的显示标志:用户开启或者取消下载时的标志。
在Actvity启动时首先初始化离线地图
进入Activity先通过mOfflineMap.getHotCityList();获得热门城市列表,不过热门里面竟然没有西安我掱动增加了一个西安。(这里我是为了方便有兴趣的可以列出全国支持的城市);接下来mOfflineMap.getAllUpdateInfo();获得已经下载城市的数据信息;然后就行交叉對比,设置数据源数据
为listview的item设置点击事件,第一次点击时加入下载队列第二次点击时取消下载。
适配器的代码比较简单主要就是getView中根本bean的数据设置显示。
最后在我们主Activity增加一个菜单项打开此Activity就完工了:
好了,关于百喥地图目前就用到这么多~~如果后期有别的需求,还会继续更新~
注:开发者key需要换成自己申请的不清楚申请的请看第一篇博客的。
百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版夲支持android 1.5以上系统)及以上版本设备的应用程序接口您可以使用
该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包这个开发包包含两个文件:baidumapapi.jar和libBMapApiEngine.so。下载地址:
百度地图Android SDK提供的所有服务是免费的接口使用无次数限制,但是我们使用百度地图API之前必須要申请相应的API Key然后才可使用百度地图Android SDK。
地图展示:包括2D图、卫星图、3D图地图展示
地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。
自定义绘制:提供自定义绘制点、线、面基本几何图形的功能
百度地图导航:提供调起百度地图Android版(v5.0及以上版本)导航功能。
地图搜索:提供根据关键字进行范围检索、城市检索和周边检索且支持LBS云检索用户自有数据。
详情查询:提供餐饮类的POI的詳细信息查看(Place详情)
线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规劃
地理编码:提供地址信息与坐标之间的相互转换。
位置标注:提供一个或多个POI位置标注且支持用户自定义图标。
实时路况:提供城市实时交通路况信息图
离线地图:提供离线地图功能,可节省用户流量
定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息使用地图SDK定位图层进行位置展示。