:申请百度地图key

申请key网址:http://dev.baidu.com/wiki/static/imap/key/(没有百度账号先注册账号)

二:下载百度地图androidapi

http://dev.baidu.com/wiki/static/imap/files/android/BaiduMapApi_Lib_Android_1.3.3.zip

三:api库的使用:

1.解压后将baidumapapi.jar添加在项目Libraries里,将libBMapApiEngine_v1_3_3.so复制到工程目录下的libs\armeabi(没有这两个文件夹自己在项目根目录下创建)

2.地图、定位、搜索功能都需要BMapManager来管理,BMapManager提供四个接口,init,start,stop,destroy。建议在Application里生成BMapManager对象并初使化,在程序退出时调用destory,在需要使用sdk功能的activityonCreate里调用start,onDestroy调用stop,或者onResume/onPause分别调用startstop

四:创建main.xml文件,注意MapView空间必须是com.baidu.mapapi.MapView

Xml代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <spanstyle="color:#ff0000;"><com.baidu.mapapi.MapView</span>
  7. android:id="@+id/map_view"
  8. android:layout_width="fill_parent"
  9. android:layout_height="fill_parent"
  10. android:clickable="true"
  11. android:enabled="true"/>
  12. </LinearLayout>

五:新建LocationActivity.java(继承com.baidu.mapapi.MapActivity),如下:

Java代码
  1. packagecom.location.activity;
  2. importandroid.location.Location;
  3. importandroid.os.Bundle;
  4. importandroid.widget.TextView;
  5. importcom.baidu.mapapi.BMapManager;
  6. importcom.baidu.mapapi.LocationListener;
  7. importcom.baidu.mapapi.MKLocationManager;
  8. importcom.baidu.mapapi.MapActivity;
  9. /**
  10. *创建Activity(继承com.baidu.mapapi.MapActivity)
  11. */
  12. publicclassLocationActivityextendsMapActivityimplementsLocationListener{
  13. privateBMapManagermapManager;
  14. privateMKLocationManagermLocationManager=null;
  15. privateTextViewlatText;
  16. privateTextViewlonText;
  17. @Override
  18. publicvoidonCreate(BundlesavedInstanceState){
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. latText=(TextView)findViewById(R.id.lat);
  22. lonText=(TextView)findViewById(R.id.lon);
  23. //初始化MapActivity
  24. mapManager=newBMapManager(getApplication());
  25. //init方法的第一个参数需填入申请的APIKey
  26. mapManager.init("C66C0501D0280744759A6957C42543AE38F5D540",null);
  27. super.initMapActivity(mapManager);
  28. mLocationManager=mapManager.getLocationManager();
  29. //注册位置更新事件
  30. mLocationManager.requestLocationUpdates(this);
  31. //使用GPS定位
  32. mLocationManager.enableProvider((int)MKLocationManager.MK_GPS_PROVIDER);
  33. }
  34. @Override
  35. protectedbooleanisRouteDisplayed(){
  36. returnfalse;
  37. }
  38. @Override
  39. protectedvoidonDestroy(){
  40. if(mapManager!=null){
  41. mapManager.destroy();
  42. mapManager=null;
  43. }
  44. mLocationManager=null;
  45. super.onDestroy();
  46. }
  47. @Override
  48. protectedvoidonPause(){
  49. if(mapManager!=null){
  50. mapManager.stop();
  51. }
  52. super.onPause();
  53. }
  54. @Override
  55. protectedvoidonResume(){
  56. if(mapManager!=null){
  57. mapManager.start();
  58. }
  59. super.onResume();
  60. }
  61. /**
  62. *根据MyLocationOverlay配置的属性确定是否在地图上显示当前位置
  63. */
  64. @Override
  65. protectedbooleanisLocationDisplayed(){
  66. returnfalse;
  67. }
  68. /**
  69. *当位置发生变化时触发此方法
  70. *
  71. *@paramlocation当前位置
  72. */
  73. publicvoidonLocationChanged(Locationlocation){
  74. if(location!=null){
  75. //显示定位结果
  76. lonText.setText("当前经度:"+location.getLongitude());
  77. latText.setText("当前纬度:"+location.getLatitude());
  78. }
  79. }
  80. }

六:在AndroidManifest.xml中要添加访问网络和启动定位等的几个权限

Xml代码
  1. <!--访问网络的权限-->
  2. <uses-permissionandroid:name="android.permission.INTERNET"/>
  3. <!--访问精确位置的权限-->
  4. <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
  5. <!--访问网络状态的权限-->
  6. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  7. <!--访问WIFI网络状态的权限-->
  8. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
  9. <!--改变WIFI网络状态的权限-->
  10. <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>
  11. <!--读写存储卡的权限-->
  12. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  13. <!--读取电话状态的权限-->
  14. <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

七:运行效果如下图:


更多相关文章

  1. Android默认给予USB读写权限,去掉授权对话框
  2. android 获取连接WiFi的名称SSID
  3. Android(安卓)3.0 访问WebService 出现 android.os.NetworkOnMai
  4. Android静默安装实现
  5. 3.3详解四种基本布局
  6. Android(手机)连接电脑本地服务器(flask)
  7. Android引用百度定位API第三方组件后导致其它.so文件无法正常加
  8. Android(安卓)7.0 后拍照和相册选择
  9. Android(安卓)通过代码实现控制数据网络的开关(仅适用于5.0以上)

随机推荐

  1. Android(安卓)P SystemUI之StatusBar Wif
  2. 分享20个Android游戏源码,希望大家喜欢哈!
  3. android 进度条
  4. android 环境搭建 windows 和linux 环境
  5. Android判断输入是否只包含数字并且执行
  6. Android预定义样式
  7. Android(安卓)最火快速开发框架AndroidAn
  8. Mac 下完全卸载Android(安卓)Studio 和SD
  9. android 闪光灯控制
  10. android 常用api 接口签名验证