百度地图系列03——简单地图定位
2015-11-27 18:23
204 查看
百度地图系列03——简单地图定位
关于加载地图,可参考前面一章http://blog.csdn.net/u013293125/article/details/49951257,基本代码没变1、首先加入jar包
其它与第一章一样,基本没变。
2、代码部分,在MainActivity里:
package com.example.maptest003; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.map.LocationData; import com.baidu.mapapi.map.MapController; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MyLocationOverlay; import com.baidu.platform.comapi.basestruct.GeoPoint; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { private MapView mMapView = null; private BMapManager bMapManager; private MapController mMapController; //定位相关 LocationClient mLocationClient; LocationData locData = null; public MyLocationListenner myListener = new MyLocationListenner(); //定位图层 // locationOverlay myLocationOverlay = null; MyLocationOverlay locOverlay; // boolean isRequest = false;//是否手动触发请求定位 boolean isFirstLoc = true;//是否首次定位 boolean isLocationClientStop = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bMapManager = new BMapManager(getApplication()); //第一个参数是你申请的KEY值,稍后介绍,这个初始化必须写在setContentView //前面 bMapManager.init("utOV22bi9PAzd6h3KzoSfD8A", null); setContentView(R.layout.activity_main); //找到地图控件 mMapView = (MapView) findViewById(R.id.maplistv); //不用以下方法也可以加载出地图 mMapController = mMapView.getController(); mMapController.enableClick(true); //设置地图是否响应点击事件 mMapController.setZoom(14); //设置地图缩放级别 mMapView.setBuiltInZoomControls(true); //定位初始化 mLocationClient = new LocationClient( this ); locData = new LocationData(); mLocationClient.registerLocationListener( myListener ); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);//打开gps option.setCoorType("bd09ll"); //设置坐标类型,这里是09LL option.setScanSpan(5000); mLocationClient.setLocOption(option); mLocationClient.start(); locOverlay = new MyLocationOverlay(mMapView); locOverlay.setData(locData); mMapView.getOverlays().add(locOverlay); locOverlay.enableCompass(); //修改定位数据后刷新图层生效 mMapView.refresh(); //显示内置缩放控件 //114.27071,30.444669 // double lat = 30.444669; // double lng = 114.27071; // GeoPoint point = new GeoPoint((int)(lat*1e6),(int)(lng*1e6)); // mMapController.setCenter(point); } public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { if (location == null || isLocationClientStop) return ; locData.latitude = location.getLatitude(); locData.longitude = location.getLongitude(); //如果不显示定位精度圈,将accuracy赋值为0即可 locData.accuracy = location.getRadius(); locData.direction = location.getDerect(); //更新定位数据 locOverlay.setData(locData); //更新图层数据执行刷新后生效 mMapView.refresh(); //是手动触发请求或首次定位时,移动到定位点 if (isFirstLoc){ //移动地图到定位点 mMapController.animateTo(new GeoPoint((int)(locData.latitude* 1e6), (int)(locData.longitude * 1e6))); // isRequest = false; } //首次定位完成 isFirstLoc = false; } public void onReceivePoi(BDLocation poiLocation) { if (poiLocation == null){ return ; } } } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); mMapView.destroy(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); mMapView.onPause(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mMapView.onResume(); } }
运行结果:
相关文章推荐
- CSS浮动和定位学习笔记
- C#实现txt定位指定行完整实例
- 百度地图经纬度转换到腾讯地图/Google 对应的经纬度
- 基于OL2实现百度地图ABCD marker的效果
- Flex中怎么给表格中的滚动条定位避免刷新回到原处
- 一个JavaScript操作元素定位元素的实例
- JS中引用百度地图并将百度地图的logo和信息去掉
- js中的如何定位固定层的位置
- JS弹出层单纯的绝对定位居中示例代码
- 讲解iOS开发中基本的定位功能实现
- js调用百度地图及调用百度地图的搜索功能
- 基于Arcgis for javascript实现百度地图ABCD marker的效果
- JavaScript网页定位详解
- 在Google 地图上实现做的标记相连接
- 微信企业号开发之微信考勤百度地图定位
- PHP计算百度地图两个GPS坐标之间距离的方法
- 百度地图自定义控件分享
- sogou地图API用法实例教程
- 在Android里完美实现基站和WIFI定位
- 百度地图标注图标太小