阅读更多

:申请百度地图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. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns: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.            <span style="color: #ff0000;"><com.baidu.mapapi.MapViewspan>  
  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. package com.location.activity;  
  2.   
  3. import android.location.Location;  
  4. import android.os.Bundle;  
  5. import android.widget.TextView;  
  6.   
  7. import com.baidu.mapapi.BMapManager;  
  8. import com.baidu.mapapi.LocationListener;  
  9. import com.baidu.mapapi.MKLocationManager;  
  10. import com.baidu.mapapi.MapActivity;  
  11.   
  12. /** 
  13.  * 创建Activity(继承com.baidu.mapapi.MapActivity) 
  14.  */  
  15. public class LocationActivity extends MapActivity implements LocationListener {  
  16.     private BMapManager mapManager;  
  17.     private MKLocationManager mLocationManager = null;  
  18.   
  19.     private TextView latText;  
  20.     private TextView lonText;  
  21.   
  22.     @Override  
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.main);  
  26.   
  27.         latText = (TextView) findViewById(R.id.lat);  
  28.         lonText = (TextView) findViewById(R.id.lon);  
  29.   
  30.         // 初始化MapActivity  
  31.         mapManager = new BMapManager(getApplication());  
  32.         // init方法的第一个参数需填入申请的API Key  
  33.         mapManager.init("C66C0501D0280744759A6957C42543AE38F5D540"null);  
  34.         super.initMapActivity(mapManager);  
  35.   
  36.         mLocationManager = mapManager.getLocationManager();  
  37.         // 注册位置更新事件  
  38.         mLocationManager.requestLocationUpdates(this);  
  39.         // 使用GPS定位  
  40.         mLocationManager.enableProvider((int) MKLocationManager.MK_GPS_PROVIDER);  
  41.     }  
  42.   
  43.     @Override  
  44.     protected boolean isRouteDisplayed() {  
  45.         return false;  
  46.     }  
  47.   
  48.     @Override  
  49.     protected void onDestroy() {  
  50.         if (mapManager != null) {  
  51.             mapManager.destroy();  
  52.             mapManager = null;  
  53.         }  
  54.         mLocationManager = null;  
  55.         super.onDestroy();  
  56.     }  
  57.   
  58.     @Override  
  59.     protected void onPause() {  
  60.         if (mapManager != null) {  
  61.             mapManager.stop();  
  62.         }  
  63.         super.onPause();  
  64.     }  
  65.   
  66.     @Override  
  67.     protected void onResume() {  
  68.         if (mapManager != null) {  
  69.             mapManager.start();  
  70.         }  
  71.         super.onResume();  
  72.     }  
  73.   
  74.     /** 
  75.      * 根据MyLocationOverlay配置的属性确定是否在地图上显示当前位置 
  76.      */  
  77.     @Override  
  78.     protected boolean isLocationDisplayed() {  
  79.         return false;  
  80.     }  
  81.   
  82.     /** 
  83.      * 当位置发生变化时触发此方法 
  84.      *  
  85.      * @param location 当前位置 
  86.      */  
  87.     public void onLocationChanged(Location location) {  
  88.         if (location != null) {  
  89.             // 显示定位结果  
  90.             lonText.setText("当前经度:" + location.getLongitude());  
  91.             latText.setText("当前纬度:" + location.getLatitude());  
  92.         }  
  93.     }  
  94. }  

   

 

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

 

Xml代码  
  1.   
  2.     <uses-permission android:name="android.permission.INTERNET" />  
  3.       
  4.     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
  5.       
  6.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  7.       
  8.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  9.       
  10.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  11.       
  12.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  13.       
  14.     <uses-permission android:name="android.permission.READ_PHONE_STATE" />  

 

 

 

七:运行效果如下图:


  • 基于百度地图定位经纬度.zip (1.7 MB)
  • 下载次数: 24

更多相关文章

  1. Android(安卓)给 app默认权限(不弹窗申请权限)
  2. Android中GPS定位的简单应用
  3. android 定位服务
  4. android 定位服务
  5. android获取经纬度和地方名称
  6. android学习轨迹之二:Android权限标签uses-permission的书写位置
  7. android linker (1) —— __linker_init()
  8. Android中Activity之间访问互传参数
  9. android 仿写 screen lock

随机推荐

  1. android 之json对象解析并展示(含json解
  2. Android(安卓)SystemServer学习之二
  3. Android系统之System Server大纲
  4. Android 记忆卡片游戏 记忆力 Android游
  5. 移动端开发三国时代
  6. android 快速滚动条设置(像新浪微博,滚动
  7. Android判断两个时间的间隔
  8. Android中开发版(debug)和发布版(release
  9. Android(安卓)打开PDF,PPT,WORD,EXCEL,CH
  10. 使用Android(安卓)Stdio出现':app:transf