使用百度地图API开发定位应用
2015-06-28 10:38
239 查看
百度地图SDK版本:v3.4
实现功能:在地图上显示定位
准备工作:
把整个SDK下下来,demo里相关的.jar,.so(放在\lib\armeabi下)文件引入工程;
按照官网说的把权限,key,service加到.xml文件里;
需要一个Application,初始化context。
主要类:
LocationClientOption:
BDLocationListener:
LocationClient:
MapView:
BaiduMap:
需要注意顺序
实现功能:在地图上显示定位
准备工作:
把整个SDK下下来,demo里相关的.jar,.so(放在\lib\armeabi下)文件引入工程;
按照官网说的把权限,key,service加到.xml文件里;
需要一个Application,初始化context。
主要类:
LocationClientOption:
LocationClientOption option = new LocationClientOption(); option.setOpenGps(false); option.setCoorType("bd09ll"); option.setIsNeedAddress(true); option.setLocationMode(LocationMode.Battery_Saving); option.setScanSpan(5000); //每隔5s自动定位
BDLocationListener:
BDLocationListener mListener = new BDLocationListener() { @Override public void onReceiveLocation(BDLocation location) { if (location == null || mapView == null) return; address = location.getAddrStr(); latitude = location.getLatitude(); longitude = location.getLongitude(); radius = location.getRadius(); point = new LatLng(latitude, longitude); MyLocationData locData = new MyLocationData.Builder() .accuracy(radius).latitude(latitude) .longitude(longitude).build(); baiduMap.setMyLocationData(locData); if (isFirstLoc) { isFirstLoc = false; MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(point); baiduMap.animateMapStatus(u); bt.setEnabled(true); } } };
LocationClient:
LocationClient mLocationClient = new LocationClient(getApplicationContext(), option); mLocationClient.registerLocationListener(mListener); mLocationClient.start(); mLocationClient.requestLocation(); //请求定位
MapView:
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="5dip" android:clickable="false" />
MapView mapView = (MapView) findViewById(R.id.bmapView);
BaiduMap:
BaiduMap baiduMap = mapView.getMap(); baiduMap.setMyLocationEnabled(true); baiduMap.setMyLocationConfigeration(new MyLocationConfiguration( MyLocationConfiguration.LocationMode.FOLLOWING, false, null));
需要注意顺序
@Override protected void onDestroy() { mLocationClient.stop(); baiduMap.setMyLocationEnabled(false); mapView.onDestroy(); mapView = null; super.onDestroy(); }
相关文章推荐
- spring集成struts2
- OJ—— 复数类--重载运算符2+
- 文章标题
- 火光冲2米高 以为是特效 现场燃灼性不明粉末扩散 负责人已被带走
- Kinect for Windows V2.0 新功能
- 在Win7 x64和Python 3.4下,运行Theano的dbn.py
- 学习笔记——ARM Cortex-M0 存储器系统
- Spring中@Autowired注解、@Resource注解的区别
- 【Android】图片资源的访问与网格式图片浏览器
- 【LeetCode】004 Median of Two Sorted Arrays 两个排序数组合并后的中位数
- Android Studio走过的坑
- Linux内存管理
- Largest Number -- leetcode
- 面试题21:包含min函数的栈
- Android 旋转ImageView
- 大数据算法学习笔记(2):大数据算法
- CSS实现背景透明,文字不透明(各浏览器兼容)
- 【Objective-C】OC基础
- php namespace 和composer
- MongoDB基本命令用