本文共 2706 字,大约阅读时间需要 9 分钟。
开发前准备。首先下载好百度地图所需要的SDK,并获取key。获取key的方法在百度API首页上的有。
小提示:可能做为开发者的你忘记了debug.keystore的密码(其实是根本就不知道) debug.keystore的密码是android。
这里将记录如何使用百度地图定位
在上面的准备工作做完以后,就可以再自己的程序里面做开发学习了。首先声明各种对象
LocationClient mLocClient;private MyLocationListener myListener=new MyLocationListener();//MyLocationConfiguration配置定位图层的显示方式private com.baidu.mapapi.map.MyLocationConfiguration.LocationMode mCurrentMode=com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.NORMAL; //定位模式BitmapDescriptor mCurrentMarker; //bitmap描述信息private MapView mMapView;private BaiduMap mBaiduMap;
上面的MyLocationListener是自己写的`public class MyLocationListener implements BDLocationListener{
@Overridepublic void onReceiveLocation(BDLocation location) { // TODO Auto-generated method stub if (location==null || mMapView==null) return; /* * mylocationdata位定位数据 其中accuracy为定位精度 * location.getRadius为获取定位精度 * direction为定位是GPS的方向角度 * latitude 百度纬度坐标 * longitude 百度经度坐标 */ MyLocationData locData=new MyLocationData.Builder() .accuracy(location.getRadius()) .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); if (isFirstLoc) { isFirstLoc=false; //latlng为地理坐标的基本数据结构,包括一个纬度,一个纬度经度 LatLng ll=new LatLng(location.getLatitude(),location.getLongitude()); //MapStatusUpdate 描述地理状态将要发生的变化 //MapStatusUpdateFactory 生成状态将要发生的变化 newLatLng设置地图的中心点 MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll); //animateMapStatus以动画的方式更新地图状态,时间为300ms mBaiduMap.animateMapStatus(u); }}public void onReceivePoi(BDLocation poiLocation) {}
}`
初始化视图
mMapView=(MapView) findViewById(R.id.bmapView); mBaiduMap=mMapView.getMap(); mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(15).build())); //开启定位图层 mBaiduMap.setMyLocationEnabled(true); //定位初始化 mLocClient=new LocationClient(this); mLocClient.registerLocationListener(myListener); //绑定监听器 LocationClientOption option=new LocationClientOption(); option.setLocationMode(com.baidu.location.LocationClientOption.LocationMode.Hight_Accuracy);//设置定位模式 option.setAddrType("all"); //返回的定位结果包含地址信息 option.setCoorType("bd09ll"); //返回的定位结果是百度经纬度,默认值gcj02国家测绘局坐标 option.setScanSpan(1000); //设置发起定位请求的间隔时间为1000ms option.setIsNeedAddress(true); //返回的定位结果包含地址信息 mLocClient.setLocOption(option); mLocClient.start();
初始化定位的模式
mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration(mCurrentMode, true, mCurrentMarker));
初始化定位的显示图标
mCurrentMarker=null; mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration( mCurrentMode, true, null));
这里的第3个变量是图标的样式,你们可以选择自己喜欢的样式。结果
转载地址:https://blog.csdn.net/qq_21430549/article/details/45272181 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!