2023年7月7日发(作者:)
android 百度地图定位功能实现
00package ;
1
00
2
00import tion;
3
00import tionListener;
4
00import onClient;
5
00import onClientOption;
6
00import nager;
7
00import onData;
8
00import iewListener;
9
01import troller;
0
01import ;
1
01import w;
2
01import tionOverlay;
3
01import nt;
4
01import roid.R;
5
01 6
01import ty;
7
01import uration;
8
01import on;
9
02import onListener;
0
02import onManager;
1
02import ;
2
02import ;
3
02import ayout;
4
02import ;
5
02
6
02public class MapActivity extends Activity {
7
02 BMapManager mBMapMan = null;
8
02 MapView mMapView = null;
9
03 MapController mMapController;
0
03 MyLocationOverlay mLocationOverlay;
1
03 LocationData locData = null; 2
03 LocationClient mLocClient;
3
03 public MyLocationListenner myListener
4 = new MyLocationListenner();
03
5
03 @Override
6
03 protected void onCreate(Bundle savedInstanceState) {
7
03 te(savedInstanceState);
8
03 mBMapMan = new BMapManager(getApplication());
9
04 ("BB3299207a600b8a035b76982adde60f", null);
0
04 setContentView(ty_main);
1
04 mMapView = (MapView) findViewById(iew);
2
04 ltInZoomControls(true);
3
04 // 设置启用内置的缩放控件
4
04 mMapController = troller();
5
04 m(12);// 设置地图zoom级别
6
04
7
04 // 定位初始化 8
04 mLocClient = new LocationClient(this);
9
05 locData = new LocationData();
0
05 erLocationListener(myListener);
1
05 LocationClientOption option = new LocationClientOption();
2
05 nGps(true);// 打开gps
3
05 rType("bd09ll"); // 设置坐标类型
4
05 nSpan(5000);
5
05 Option(option);
6
05 ();
7
05
8
05 // 定位图层初始化
9
06 mLocationOverlay = new MyLocationOverlay(mMapView);
0
06 // 设置定位数据
1
06 a(locData);
2
06 // 添加定位图层
3
06 rlays().add(mLocationOverlay); 4
06 Compass();
5
06 // 修改定位数据后刷新图层生效
6
06 h();
7
06
8
06 }
9
07 //实现监听器
0
07 public class MyLocationListenner implements BDLocationListen1 er {
072
07 @Override
3
07 public void onReceiveLocation(BDLocation location) {
4
07 if (location == null)
5
07 return ;
6
07
7
07 de = itude();
8
07 ude = gitude();
9
08 //如果不显示定位精度圈,将accuracy赋值为0即可
0 08 cy = ius();
1
08 ion = ect();
2
08 //更新定位数据
3
08 a(locData);
4
08 //更新图层数据执行刷新后生效
5
08 h();
6
08 //是手动触发请求或首次定位时,移动到定位点
7
08
8
08 eTo(newGeoPoint((int)(locData9 .latitude* 1e6), (int)(ude * 1e6)));
09 }
0
09
1
09 public void onReceivePoi(BDLocation poiLocation) {
2
09 if (poiLocation == null){
3
09 return ;
4
09 }
5
09 }
6
09 }
7
09
8
09 @Override
9
10 protected void onDestroy() {
0
10 // TODO Auto-generated method stub
1
10 y();
2
103 if (mBMapMan != null) {
104 y();
10 mBMapMan = null;
5
10 }
6
10 roy();
7
10 }
8
10
9
11 @Override
0
11 protected void onPause() {
1
11 // TODO Auto-generated method stub
2
11 e();
3 11 if (mBMapMan != null) {
4
11 ();
5
11 }
6
11 e();
7
11 }
8
11
9
12 @Override
0
12 protected void onResume() {
1
12 // 获取位置管理者,视图根据位置监听更新位置
2
123 ocation();
124 Compass();
12 me();
5
12 if (mBMapMan != null) {
6
12 ();
7
12 }
8
12 me();
9
13 }
0 131
132 }
需要用到的jar包大家可以到百度地图api网站上下载。主要依赖于下列包:
配置如下:
0
1
0 0 package="roid" 3 0 android:versionCode="1" 4 0 android:versionName="1.0" > 5 0 6 0 7 0 android:normalScreens="true" 8 0 android:smallScreens="true" 9 1 android:resizeable="true" 0 1 android:anyDensity="true"> 1 1 2 1 3 1 4 1 android:minSdkVersion="3" /> 5 1 6 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 4 3 36 3 7 3 android:allowBackup="true" 8 3 android:icon="@drawable/first" 9 4 android:label="@string/app_name" 0 4 android:theme="@style/AppTheme" > 1 4 2 4 android:name="ivit3 y" 4 android:label="@string/app_name" > 4 4 5 4 6 /> 47 4 4 9 5 0 51 52 5 54 android:process=":remote"> 5 7 5 8 5 6
0
界面只有一个mapview地图控件,在此列出activity_:
01
0 0 android:layout_width="fill_parent" 3 0 android:layout_height="fill_parent" 4 0 android:orientation="vertical" 5 0 > 6 0 7 0 8 0 android:layout_width="fill_parent" 9 1 android:layout_height="fill_parent" 0 1 android:clickable="true" /> 1 1 > 2 1 3 1
4
来自:/zhu_hua_jie/article/details/10382433
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688677402a161769.html
评论列表(0条)