摘要:用户使用地图的时候,希望不联网就能展示地图。这时,就需要使用到离线地图了。如何在百度地图SDK里引入离线地图呢?

-------------------------------------------------------------------------------------------------------------------

相关阅读:

-------------------------------------------------------------------------------------------------------------------

一、下载离线地图包

首先选择了手机品牌和手机型号:

选择好手机后,系统会出来提示。请选择旧版本地图进行下载。

因为目前SDK只能使用栅格图,所以我们必须下载旧版本的地图。后期SDK将支持矢量图,到时候北京市的离线地图就从114M降低到14M了。

预计6月份就能使用新版离线地图了~~~

比如,我选择下载了北京市的离线地图:

解压后,有两个文件。一个是BaiduMap,一个是安装说明。

不要管安装说明,把BaiduMap打开,能看到Mapdata文件夹。拷贝这个文件夹。

将Mapdata文件夹拷贝到手机SD卡的BaiduMapSdk文件夹根目录下。

二、编写离线地图代码

找到主java文件,并在activity里申明变量。

MKOfflineMap mOffline = null; //离线地图变量

然后在onCreate函数里写离线地图初始化的代码:

mOffline= newMKOfflineMap();

mOffline.init(mBMapMan,newMKOfflineMapListener() {public void onGetOfflineMapState(int type, intstate) {switch(type) {caseMKOfflineMap.TYPE_DOWNLOAD_UPDATE:

{

MKOLUpdateElement update=mOffline.getUpdateInfo(state);//mText.setText(String.format("%s : %d%%", update.cityName, update.ratio));

}break;caseMKOfflineMap.TYPE_NEW_OFFLINE:

Log.d("OfflineDemo", String.format("add offlinemap num:%d", state));break;caseMKOfflineMap.TYPE_VER_UPDATE:

Log.d("OfflineDemo", String.format("new offlinemap ver"));break;

}

}

}

);

int num =mOffline.scan();//if (num != 0) mText.setText(String.format("已安装%d个离线包", num));

三、连真机,看运行看结果。

看,这是没有联网,展示地图的效果。

四、java文件全部源代码

packagecom.baidu.searchpoi;

importandroid.app.Activity;importandroid.os.Bundle;importjava.util.ArrayList;importjava.util.List;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.graphics.Point;importandroid.graphics.drawable.Drawable;importandroid.location.Location;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.Toast;importcom.baidu.mapapi.BMapManager;importcom.baidu.mapapi.GeoPoint;importcom.baidu.mapapi.ItemizedOverlay;importcom.baidu.mapapi.LocationListener;importcom.baidu.mapapi.MKAddrInfo;importcom.baidu.mapapi.MKDrivingRouteResult;importcom.baidu.mapapi.MKGeneralListener;importcom.baidu.mapapi.MKLocationManager;importcom.baidu.mapapi.MKOLUpdateElement;importcom.baidu.mapapi.MKOfflineMap;importcom.baidu.mapapi.MKOfflineMapListener;importcom.baidu.mapapi.MKPlanNode;importcom.baidu.mapapi.MKPoiResult;importcom.baidu.mapapi.MKSearch;importcom.baidu.mapapi.MKSearchListener;importcom.baidu.mapapi.MKTransitRouteResult;importcom.baidu.mapapi.MKWalkingRouteResult;importcom.baidu.mapapi.MapActivity;importcom.baidu.mapapi.MapController;importcom.baidu.mapapi.MapView;importcom.baidu.mapapi.MyLocationOverlay;importcom.baidu.mapapi.Overlay;importcom.baidu.mapapi.OverlayItem;importcom.baidu.mapapi.PoiOverlay;importcom.baidu.mapapi.RouteOverlay;importcom.baidu.mapapi.TransitOverlay;publicclassSearchPOIActivityextendsMapActivity {//申明变量BMapManager mBMapMan =null;

MapView mMapView=null;

MKOfflineMap mOffline=null;//离线地图变量@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mBMapMan=newBMapManager(getApplication());

mBMapMan.init("4AA2949E616E069C37CDC3152E8C401A05A0035D",null);super.initMapActivity(mBMapMan);

mMapView=(MapView) findViewById(R.id.bmapsView);

mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件MapController mMapController= mMapView.getController();//得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPoint point =newGeoPoint((int) (39.93 *1E6),

(int) (116.42 * 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(13);//设置地图zoom级别//mMapView.setSatellite(true);//卫星图//mMapView.setTraffic(true);//交通流量mOffline=newMKOfflineMap();

mOffline.init(mBMapMan,newMKOfflineMapListener() {publicvoidonGetOfflineMapState(inttype,intstate) {switch(type) {caseMKOfflineMap.TYPE_DOWNLOAD_UPDATE:

{

MKOLUpdateElement update=mOffline.getUpdateInfo(state);//mText.setText(String.format("%s : %d%%", update.cityName, update.ratio));}break;caseMKOfflineMap.TYPE_NEW_OFFLINE:

Log.d("OfflineDemo", String.format("add offlinemap num:%d", state));break;caseMKOfflineMap.TYPE_VER_UPDATE:

Log.d("OfflineDemo", String.format("new offlinemap ver"));break;

}

}

}

);intnum =mOffline.scan();//if (num != 0) mText.setText(String.format("已安装%d个离线包", num));}

@OverrideprotectedbooleanisRouteDisplayed() {returnfalse;

}

@OverrideprotectedvoidonDestroy() {if(mBMapMan !=null) {

mBMapMan.destroy();

mBMapMan=null;

}super.onDestroy();

}

@OverrideprotectedvoidonPause() {if(mBMapMan !=null) {

mBMapMan.stop();

}super.onPause();

}

@OverrideprotectedvoidonResume() {if(mBMapMan !=null) {

mBMapMan.start();

}super.onResume();

}}

android 开发 百度地图,百度地图android开发(转)相关推荐

  1. android百度地图例子,使用百度地图API进行Android地图应用开发(Eclipse)(示例代码)...

    随着基于位置的服务的兴起,地图类App呈现爆发趋势.随着而来的是地图供应商开放大量的API.供开发人员开发基于PC或者移动端的应用程序. 如今我们研究使用百度地图SDK进行Android项目的开发. ...

  2. Android开发中调用百度地图SDK

    前言 我是一个在普通大学上学的孩子,主攻AR方向.我最近要通过unity3d来完成我的科研立项---AR指南针,当我开始这个项目时,我在想怎么做,首先在unity3d中调用AR摄像头不难,难就难在怎么 ...

  3. Android studio 百度地图开发(3)地图导航

    Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 工程下载地址:http://blog.csdn.net/chentravelling ...

  4. Android Google Map开发指南(三)百度地图、谷歌地图自如切换

    如果你是刚开始接触谷歌地图的话,推荐你先看一下文章: Android Google Map 开发指南(一)解决官方demo显示空白只展示google logo问题 Android Google Map ...

  5. Android studio3.0对于百度地图api开发(4)——百度地图地图覆盖物制作

    承接上文未完的继续介绍,上文内容:https://blog.csdn.net/qq_41562408/article/details/82810484主要实现百度地图的定位以及对于地图覆盖物进行简单介 ...

  6. Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能

    from: http://blog.csdn.net/y1scp/article/details/49095729 定位+移动选址 百学须先立志-学前须知: 我们经常在各大主流APP上要求被写上地址, ...

  7. android百度地图标方向,Android百度地图之方向感应和模式更改

    本文实例为大家分享了Android百度地图之方向感应和模式更改,供大家参考,具体内容如下 目标效果: 菜单中设置几种模式,点击可查看不同的地图形式,这里随便截几张图. 1.首先要去百度地图网站 htt ...

  8. Android学习之高德地图的通用功能开发步骤(二)

    周一又来了,我就接着上次的开发步骤(一)来吧,继续把高德地图的相关简单功能分享一下 上次写到了第六步,接着写第七步吧. 第七步:定位 + 地图选点 + 路径规划 + 实时导航 以下是我的这个功能Nav ...

  9. android 高德地图 sh1,百度、高德地图获取发布版(Release)SHA1

    一.简介: 在百度.高德地图开发中,申请key的时候,要两个版本的sha1值.一个是开发版(debug),一个是发布版(release). debug版本的sha1比较好获取,网上资料一堆,这里引用一 ...

  10. android 获取经纬度(百度地图)

    今天做原生获取经纬度,本来以为很容易,毕竟之前也做过,我使用的是 LocationManager 和 Location 来获取,但是,最终我怎么也获取不到经纬度,debug才发现最终的 Locatio ...

最新文章

  1. mysql命令程序_MySQL命令大全经典版
  2. python操作文件的库_Python使用pyshp库读取shapefile信息的方法
  3. Happy Necklace dp 递推 矩阵快速幂
  4. FetchAI Case Study
  5. android intent传对象,startActivityForResult使用, setResult(RESULT_OK)使用,getArguments(),
  6. 语音识别端到端模型解读:FSMN及其变体模型
  7. ajax json node 布尔值_ajax和axios、fetch的区别
  8. 实现Trie(前缀树)
  9. jpa 多层嵌套一对多_JPA一对多、多对多json序列化死循环问题解决
  10. 和“内存杀手” Chrome 说再见!新版 Edge 即将发布
  11. MYSQL 碎片查询
  12. 试验设计第二版茆诗松课后题答案_茆诗松数理统计学答案
  13. 《一个人的朝圣》读后感
  14. 自动驾驶3-1: 自动驾驶汽车的安全保障 Safety Assurance for Self-Driving Vehicles
  15. 分别用marquee和div+js实现首尾相连循环滚动效果
  16. 关于互联网的一些观点想法
  17. matlab没有关联m文件,matlab 不关联m文件的解决方法
  18. 用OpenCV计算图像的亚像素值
  19. python自动生成字幕_自动生成字幕软件?
  20. 联通开4g没显示无服务器,为什么显示4g却没网络

热门文章

  1. python实现微信登录破解版_网站微信登录-python 实现
  2. 这样优秀的女孩能要吗?
  3. ubuntu系统U盘只能读取不能写入
  4. 热插播 devtools
  5. SQL injection_Blind-Time based
  6. 纯java数据库_HSQLDB(Hypersonic SQL),纯Java开发的开源关系型数据库
  7. 电源测试周之电压纹波测试注意事项
  8. 欧洲统一语言参考标准C1,浅述欧洲统一语言参考标准.doc
  9. 使用计算机的背景,【图】怎么用电脑抠图换背景?电脑抠图换背景图片的教程...
  10. 读书笔记以及失效分析心得。