您的位置:首页 > 其它

百度地图路线规划功能的实现

2016-05-14 13:38 453 查看
最终实现效果图:



实现过程主要注意有两个:

(1)com.baidu.mapapi.overlayutil包的导入。

(2)在百度地图RoutePlaneDemo里面添加定位,定位到当前位置。

com.baidu.mapapi.overlayutil包的导入:

导入overlayutil包主要是因为百度在SDK中没有集成clusterutil和overlayutil工具类。

导入方法:

按照百度地图demo给出的项目结构,把工具类复制到项目中。

demo的项目结构:



自己项目的结构:



这下就可以导入overlayutil包了。

在百度地图RoutePlaneDemo里面添加定位,定位到当前位置:

参考百度地图的LocationDemo里面的定位方式,主要分为三个部分:

初始条件:

// 定位相关
LocationClient mLocClient;
public MyLocationListenner myListener = new MyLocationListenner();
private MyLocationConfiguration.LocationMode mCurrentMode;
BitmapDescriptor mCurrentMarker;
private static final int accuracyCircleFillColor = 0xAAFFFF88;
private static final int accuracyCircleStrokeColor = 0xAA00FF00;

boolean isFirstLoc = true; // 是否首次定位


初始化地图和定位:

// 初始化地图
mMapView = (MapView) findViewById(R.id.map);
mBaidumap = mMapView.getMap();

// 开启定位图层
mBaidumap.setMyLocationEnabled(true);
// 定位初始化
mLocClient = new LocationClient(this);
mLocClient.registerLocationListener(myListener);
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);

mLocClient.setLocOption(option);
mLocClient.start();


定位SDK监听函数:

/**
* 定位SDK监听函数
*/
public class MyLocationListenner implements BDLocationListener {

@Override
public void onReceiveLocation(BDLocation location) {
// map view 销毁后不在处理新接收的位置
if (location == null || mMapView == null) {
return;
}
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaidumap.setMyLocationData(locData);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatus.Builder builder = new MapStatus.Builder();
builder.target(ll).zoom(14.0f);
mBaidumap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
}
}

public void onReceivePoi(BDLocation poiLocation) {
}
}


这样就可以实现百度地图路线规划功能了,上面只是提供大致思路和可能遇见的问题,具体可以参考官方demo和百度地图论坛。

最终的代码可以参考:

http://download.csdn.net/detail/u014465934/9520542
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: