1.下载百度地图的demo,下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar
2.把demo里面的BaiduMapsApiDemo解压,把BaiduMapsApiDemo文件夹里面的libs里面的所有文件都复制到自己的项目的libs里面
images/loading.gif' data-original="http://images2015.cnblogs.com/blog/822717/201511/822717-20151130191642921-674786138.png" />
3.配置AndroidManifest.
这是我配置好的例子的AndroidManifest.
1 <??> 2 <manifest ="http://schemas.android.com/apk/res/android" 3 package="com.zzw.baidumappoint" 4 android:versionCode="1" 5 android:versionName="1.0" > 6 7 <uses-sdk 8 android:minSdkVersion="14" 9 android:targetSdkVersion="21" />10 11 <application12 android:allowBackup="true"13 android:icon="@drawable/ic_launcher"14 android:label="@string/app_name"15 android:theme="@style/AppTheme" >16 <activity17 android:name=".MainActivity"18 android:label="@string/app_name" >19 <intent-filter>20 <action android:name="android.intent.action.MAIN" />21 22 <category android:name="android.intent.category.LAUNCHER" />23 </intent-filter>24 </activity>25 26 <meta-data27 android:name="com.baidu.lbsapi.API_KEY"28 android:value="tpBieaHroLK1LeSkOQWLzq6A" />29 30 <service31 android:name="com.baidu.location.f"32 android:enabled="true"33 android:process=":remote" >34 </service>35 </application>36 37 <uses-permission android:name="android.permission.ACCESS.NETWORK_STATE" >38 </uses-permission>39 <uses-permission android:name="android.permission.INTERNET" >40 </uses-permission>41 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />42 <uses-permission android:name="android.permission.WAKE_LOCK" >43 </uses-permission>44 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />45 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />46 <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->47 <uses-permission android:name="android.permission.GET_TASKS" />48 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >49 </uses-permission>50 <uses-permission android:name="android.permission.WRITE_SETTINGS" />51 <!-- 这个权限用于进行网络定位 -->52 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >53 </uses-permission>54 <!-- 这个权限用于访问GPS定位 -->55 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >56 </uses-permission>57 <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->58 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >59 </uses-permission>60 <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->61 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >62 </uses-permission>63 <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->64 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >65 </uses-permission>66 <!-- 用于读取手机当前的状态 -->67 <uses-permission android:name="android.permission.READ_PHONE_STATE" >68 </uses-permission>69 <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->70 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >71 </uses-permission>72 <!-- 访问网络,网络定位需要上网 -->73 <uses-permission android:name="android.permission.INTERNET" />74 <!-- SD卡读取权限,用户写入离线定位数据 -->75 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >76 </uses-permission>77 <!-- 允许应用读取低级别的系统日志文件 -->78 <uses-permission android:name="android.permission.READ_LOGS" >79 </uses-permission>80 81 </manifest>
AndroidManifest.
4.代码:
activity_main.
1 <RelativeLayout ="http://schemas.android.com/apk/res/android" 2 ="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context="com.zzw.baidumappoint.MainActivity" > 6 7 <com.baidu.mapapi.map.MapView 8 android:id="@+id/mapView" 9 android:layout_width="match_parent"10 android:layout_height="match_parent" />11 12 </RelativeLayout>
MainActivity.java:
1 package com.zzw.baidumappoint; 2 3 import com.baidu.location.BDLocation; 4 import com.baidu.location.BDLocationListener; 5 import com.baidu.location.LocationClient; 6 import com.baidu.location.LocationClientOption; 7 import com.baidu.mapapi.SDKInitializer; 8 import com.baidu.mapapi.map.BaiduMap; 9 import com.baidu.mapapi.map.MapStatusUpdate;10 import com.baidu.mapapi.map.MapStatusUpdateFactory;11 import com.baidu.mapapi.map.MapView;12 import com.baidu.mapapi.map.MyLocationData;13 import com.baidu.mapapi.model.LatLng;14 15 import android.app.Activity;16 import android.os.Bundle;17 18 public class MainActivity extends Activity {19 20 private LocationClient mLocationClient;21 private BaiduMap mBaiduMap;22 23 @Override24 protected void onCreate(Bundle savedInstanceState) {25 super.onCreate(savedInstanceState);26 SDKInitializer.initialize(getApplicationContext());//是程序不崩溃的作用27 setContentView(R.layout.activity_main);28 29 // 获取LocationClient30 mLocationClient = new LocationClient(this);31 32 LocationClientOption option = new LocationClientOption();33 option.setCoorType("bd09ll");34 mLocationClient.setLocOption(option);35 36 // 获取BaiduMap37 MapView mapView = (MapView) findViewById(R.id.mapView);38 mBaiduMap = mapView.getMap();39 40 // 显示出当前位置的小图标41 mBaiduMap.setMyLocationEnabled(true);42 43 MyLocationListener mListener = new MyLocationListener();44 mLocationClient.registerLocationListener(mListener);45 mLocationClient.start();46 }47 48 @Override49 protected void onDestroy() {50 mLocationClient.stop();51 super.onDestroy();52 }53 54 private class MyLocationListener implements BDLocationListener {55 56 @Override57 public void onReceiveLocation(BDLocation location) {58 59 // 只是完成了定位60 MyLocationData locData = new MyLocationData.Builder().latitude(location.getLatitude())61 .longitude(location.getLongitude()).build();62 63 //设置图标在地图上的位置64 mBaiduMap.setMyLocationData(locData);65 66 // 开始移动百度地图的定位地点到中心位置67 LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());68 MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);69 mBaiduMap.animateMapStatus(u);70 }71 72 }73 74 }
原标题:通过百度地图API显示当前位置在地图上(图标显示)
关键词:百度