binbinyang---百度地图androidAPI Android SDK v3.5.0------------2.定位功能
来源:互联网 发布:淘宝提醒我手机有木马 编辑:程序博客网 时间:2024/06/13 03:04
按照百度地图官网提供的API,前面完成了所谓的hello map的完成,现在要说的是接下来的一个功能,定位功能
初始化定位相关代码
/** * 初始化定位相关代码 */private void initLocation() {mLocationClient = new LocationClient(this);mLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(mLocationListener);if (mLocationClient != null && !mLocationClient.isStarted()) {mLocationClient.requestLocation();mLocationClient.start();}LocationClientOption option = new LocationClientOption();option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);// 设置定位模式option.setOpenGps(true);option.setCoorType("bd09ll");// 设置坐标类型,返回的定位结果是百度经纬度,默认值gcj02option.setIsNeedAddress(true);// 返回的定位结果包含地址信息option.setNeedDeviceDirect(true);// 返回的定位结果包含手机机头的方向option.setScanSpan(1000);// 每过1000毫秒进行一次请求。mLocationClient.setLocOption(option);}
2.定位的监听器
/** * 实现实位回调监听 */ private class MyLocationListener implements BDLocationListener {/** * 定位成功以后的回调 */@Overridepublic void onReceiveLocation(BDLocation location) {MyLocationData data = new MyLocationData.Builder()//.accuracy(location.getRadius())//.latitude(location.getLatitude())//.longitude(location.getLongitude())//.build();// 设置定位数据 mBaiduMap.setMyLocationData(data);mLatitude = location.getLatitude();mLongtitude = location.getLongitude(); // 第一次定位时,将地图位置移动到当前位置 if (isFirstIn) {LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);mBaiduMap.animateMapStatus(msu);isFirstIn = false;//吐司Toast.makeText(MainActivity.this, location.getAddrStr(), 10).show();}}
其次定位这个功能,是非常消耗电量的,为了用户体验考虑。在onStart中开启定位,在onStop中关闭定位~~这样应用最小化时就不会一直在哪GPS请求定位了,、
@Overrideprotected void onResume() {super.onResume();// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onStart() {super.onStart();/** * 开启定位 */mBaiduMap.setMyLocationEnabled(true);if (mLocationClient.isStarted())mLocationClient.start();}@Overrideprotected void onPause() {super.onPause();// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();/** * 停止定位 */mBaiduMap.setMyLocationEnabled(false);mLocationClient.stop();}@Overrideprotected void onDestroy() {super.onDestroy();// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();}
必须在AndroidManifest.xml配一个service
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" > </service>
定位的核心代码
/** * 定位到我的位置 * 地图移动到我的位置,此处可以重新发定位请求,然后定位; * 直接拿最近一次经纬度,如果长时间没有定位成功,可能会显示效果不好 * */private void centerToMyLocation() {LatLng latLng = new LatLng(mLatitude, mLongtitude);MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);mBaiduMap.animateMapStatus(msu);}
0 0
- binbinyang---百度地图androidAPI Android SDK v3.5.0------------2.定位功能
- binbinyang---百度地图androidAPI Android SDK v3.5.0-------------1.Hello BaiduMap
- Android--百度地图定位功能的具体实现<百度地图SDK版本 v3.7.3>
- Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
- Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
- Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
- 百度地图SDK V3.2 和百度定位SDK V4.2 完成定位功能
- Android中级篇之百度地图SDK v3.5.0-百度地图定位[超详细图解定位基础]
- Android中级篇之百度地图SDK v3.5.0-百度地图定位[超详细图解定位基础]
- android百度地图 SDK v3.5.0
- Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(1)
- Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(2)
- Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(3)
- Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(4)
- 百度地图v3.5 地图定位和封装定位功能
- Android 百度地图 SDK v3.3.0 (二)--- 地图定位和图层展示
- Android使用百度地图SDK实现定位功能
- Android使用百度地图SDK实现定位功能
- php-preg-1
- [LeetCode]Isomorphic Strings
- Android Studio学习笔记——构建系统
- BTrace实现浅析
- 一个小程序
- binbinyang---百度地图androidAPI Android SDK v3.5.0------------2.定位功能
- Java:输入年份和月份打印出相应的日历表
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- QTP对Web页面上的文本框赋值的技术大全
- Linux程序设计的一些小工具使用
- Desktop no head
- 树懒_移动开学笔记_day02.2_web_Javascript基础
- asp.net 缓存
- 程序启动让LaunchImage全屏显示,状态栏隐藏,启动完成再显示