百度地图路线规划功能的实现
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里面的定位方式,主要分为三个部分:
初始条件:
初始化地图和定位:
定位SDK监听函数:
这样就可以实现百度地图路线规划功能了,上面只是提供大致思路和可能遇见的问题,具体可以参考官方demo和百度地图论坛。
最终的代码可以参考:
http://download.csdn.net/detail/u014465934/9520542
实现过程主要注意有两个:
(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
相关文章推荐
- ubuntu的弹出U盘/移动硬盘
- 阅读《RobHess的SIFT源码分析:综述》笔记2
- 白话经典算法系列
- <转>thinkphp自动验证无效的问题
- window_onload和body_onload
- 项目上线,发布使用 jenkins总结
- qq游戏IE组件停止工作
- HBase 默认配置说明
- 让div等块级元素水平以及垂直居中的解决办法
- 折半插入查找
- commons-lang3
- C++实现“简单计算器”
- app沙盒与文件操作(16.5.14)
- DEDECMS织梦修改标题限制长度的方法
- Android 如何让EditText不可编辑
- (Ubuntu+Centos) ntp时间同步服务器搭建与使用
- 后台对象转为json字符串
- Android Https请求详细demo
- 理解JavaScript中闭包的使用
- Reading Note