百度地图开发之实现运动轨迹 <二>

来源:互联网 发布:js escape解码 编辑:程序博客网 时间:2024/04/29 20:17

上篇日志有介绍到开发百度地图的几个重要的类还有方法,现在就来实现在百度地图上描绘出运动轨迹,具体步骤如下:

一,在布局文件里声明百度地图的视图
二,在用百度地图时,先要将地图初始化:

                // 地图初始化        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();

以上就是实现画出路线的操作。

0 1
原创粉丝点击