通过百度地图API显示当前位置在地图上(图标显示)


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里面

3.配置AndroidManifest.xml,把BaiduMapsApiDemo文件夹里面的AndroidManifest.xml有关百度地图要使用的配置信息复制到自己的AndroidManifest.xml里面

这是我配置好的例子的AndroidManifest.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="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 <application
12 android:allowBackup="true"
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name"
15 android:theme="@style/AppTheme" >
16 <activity
17 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-data
27 android:name="com.baidu.lbsapi.API_KEY"
28 android:value="tpBieaHroLK1LeSkOQWLzq6A" />
29
30 <service
31 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.xml

4.代码:

activity_main.xml:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="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 @Override
24 protected void onCreate(Bundle savedInstanceState) {
25 super.onCreate(savedInstanceState);
26 SDKInitializer.initialize(getApplicationContext());//是程序不崩溃的作用
27 setContentView(R.layout.activity_main);
28
29 // 获取LocationClient
30 mLocationClient = new LocationClient(this);
31
32 LocationClientOption option = new LocationClientOption();
33 option.setCoorType("bd09ll");
34 mLocationClient.setLocOption(option);
35
36 // 获取BaiduMap
37 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 @Override
49 protected void onDestroy() {
50 mLocationClient.stop();
51 super.onDestroy();
52 }
53
54 private class MyLocationListener implements BDLocationListener {
55
56 @Override
57 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 }

 

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告