上篇日志有介绍到开发百度地图的几个重要的类还有方法,现在就来实现在百度地图上描绘出运动轨迹,具体步骤如下:
一,在布局文件里声明百度地图的视图
二,在用百度地图时,先要将地图初始化:
// 地图初始化
mMapView = (MapView) v.findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
三,然后开启定位图层:
// 开启定位图层
mBaiduMap.setMyLocationEnabled(true);
四,再开启交通图层:
// 开启交通图
mBaiduMap.setTrafficEnabled(true);
mBaiduMap.setMapStatus(MapStatusUpdateFactory
.newMapStatus(new MapStatus.Builder().zoom(17).build()));// 设置缩放级别
五,定位初始化:
// 定位初始化
mLocClient = new LocationClient(getActivity());
mLocClient.registerLocationListener(myListener);
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);// 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
mLocClient.setLocOption(option);
mLocClient.start();
六,声明定位相关的对象,LocationClient(用于定位),MyLocationListenner(地用于坚监听地理位置),BaiduMap(用于操作地图),MapView(地图对象),OverlayOptions(图层选项),DotOptions(创建圆点的选项类, 继承自 #OverlayOptions),
LatLng(地图位置参数,这里存放的应该是经纬度)
三,画出线路的算法是,声明一个地图位置的集合 :
List < LatLng > pointstwo = new ArrayList < LatLng >();
这里采用定时器,每隔一定时间就搜集一次地理位置,然后将每个点在地图上描绘出来:
OverlayOptions ooDot = new DotOptions().center(p2).radius(6)
.color(0xAAFF0000);
mBaiduMap.addOverlay(ooDot);// 将该点添加到地图上
最后连成线即可:
// PolylineOptions 创建折线覆盖物选项类
OverlayOptions ooPolyline = new PolylineOptions().width(4).color(0xAAFF0000).points(pointstwo);
mBaiduMap.addOverlay(ooPolyline);
p1 = p2;
mLocClient.requestLocation();
以上就是实现画出路线的操作。