当前位置:   article > 正文

Android安卓百度地图定位+导航+路径规划实现APP(源码+APK) 毕业设计_百度地图导航功能模块设计

百度地图导航功能模块设计

百度地图实时定位+导航路径规划的实现APP

本科生毕业设计:《一种智能停车系统的设计》,成都信息工程大学,2018

使用到的技术

  • 百度地图SDK
  • LBS云数据管理
  • 路径规划与导航
  • 二维码扫描和识别
  • NFC功能——2020.04新增

1、简单实时定位效果如图,打开即可用

2、高级功能:LBS云

已实现车辆的自动识别(二维码扫描识别功能)、车位计时、充值缴费(模拟)、地图自动引导(路线规划功能)。登录注册(包含自动登录) 等功能。基于B/S架构的java web网络结构模式,采用了百度地图和LBS云服务器的设计方法

LBS云添加自定义车位信息

二维码扫描识别

路径规划:

包含步行路线、驾车路线,可设置时间最短、路径最短等策略

3、数据库设计

程序功能逻辑设计

本科生毕业设计配套答辩PPT前言页

程序的说明文档

附上源码:

  1. protected void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. SDKInitializer.initialize(getApplicationContext());
  4. //this.requestWindowFeature(Window.FEATURE_NO_TITLE); //去标题
  5. setContentView(R.layout.activity_main);
  6. this.context=this;
  7. activityList.add(this);
  8. mCloudManager = CloudManager.getInstance();
  9. mCloudManager.init();
  10. mCloudManager.registerListener(MainActivity.this);
  11. initMap();//初始化地图
  12. initLocation();//定位
  13. initView();//初始化控件
  14. final PoiSearch search = PoiSearch.newInstance();
  15. //路线规划对象
  16. final RoutePlanSearch routePlanSearch = RoutePlanSearch.newInstance();
  17. /**///城市搜索,需要城市名称和关键字
  18. Button poi=(Button) findViewById(R. id.poi) ;
  19. //mDb06ll = (Button) findViewById(R.id.mDb06llNaviBtn);
  20. initListener();
  21. if (initDirs()) {
  22. initNavi();
  23. }
  24. }
  1. //步行路线结果回调
  2. @Override
  3. public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
  4. mBaiduMap.clear();
  5. if (walkingRouteResult.error == SearchResult.ERRORNO.NO_ERROR) {
  6. WalkingRouteOverlay walkingOverlay = new WalkingRouteOverlay(mBaiduMap);
  7. walkingOverlay.setData(walkingRouteResult.getRouteLines().get(0));// 设置一条路线方案
  8. walkingOverlay.addToMap();
  9. walkingOverlay.zoomToSpan();
  10. mBaiduMap.setOnMarkerClickListener(walkingOverlay);
  11. Log.e("TAG", walkingOverlay.getOverlayOptions() + "");
  12. } else {
  13. Toast.makeText(getBaseContext(), "搜不到!", Toast.LENGTH_SHORT).show();
  14. }
  15. }
  1. //驾车路线结果回调
  2. @Override
  3. public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {
  4. mBaiduMap.clear();//清除图标或路线
  5. if (drivingRouteResult.error == SearchResult.ERRORNO.NO_ERROR) {
  6. DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(mBaiduMap);
  7. drivingRouteOverlay.setData(drivingRouteResult.getRouteLines().get(0));// 设置一条驾车路线方案 0换成1会闪退!!
  8. mBaiduMap.setOnMarkerClickListener(drivingRouteOverlay);
  9. drivingRouteOverlay.addToMap();
  10. drivingRouteOverlay.zoomToSpan();
  11. int totalLine = drivingRouteResult.getRouteLines().size();
  12. Toast.makeText(getBaseContext(),"共查询出" + totalLine + "条符合条件的线路", Toast.LENGTH_LONG).show();
  13. // 通过getTaxiInfo()可以得到很多关于驾车的信息
  14. }
  15. else Toast.makeText(getBaseContext(), "抱歉,未找到结果",Toast.LENGTH_SHORT).show();
  16. }

 

  1. private void initLocation() {
  2. locationMode= MyLocationConfiguration.LocationMode.NORMAL;
  3. //定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动
  4. mlocationClient=new LocationClient(this);
  5. mlistener=new MylocationListener();
  6. //注册监听器
  7. mlocationClient.registerLocationListener(mlistener);
  8. //配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等
  9. LocationClientOption mOption=new LocationClientOption();
  10. //设置坐标类型
  11. mOption.setCoorType("bd09ll");
  12. //设置是否需要地址信息,默认为无地址
  13. mOption.setIsNeedAddress(true);
  14. //设置是否打开gps进行定位
  15. mOption.setOpenGps(true);
  16. //设置扫描间隔,单位是毫秒 当<1000(1s)时,定时定位无效
  17. int span=1000;
  18. mOption.setScanSpan(span);
  19. //设置 LocationClientOption
  20. mlocationClient.setLocOption(mOption);
  21. //初始化图标,BitmapDescriptorFactory是bitmap 描述信息工厂类,在使用该类方法之前请确保已经调用了 SDKInitializer.initialize(Context) 函数以提供全局 Context 信息。
  22. //mIconLocation= BitmapDescriptorFactory.fromResource(R.drawable.car);
  23. myOrientationListener=new MyOrientationListener(context);
  24. myOrientationListener.setOnOrientationListener(new MyOrientationListener.OnOrientationListener() {
  25. @Override
  26. public void onOrientationChanged(float x) {
  27. mCurrentX=x;
  28. }
  29. });
  30. }

 

  1. //云检索
  2. public void onGetSearchResult(CloudSearchResult result, int error) {
  3. if (result != null && result.poiList != null
  4. && result.poiList.size() > 0) {
  5. Log.d(LTAG, "onGetSearchResult, result length: " + result.poiList.size());
  6. mBaiduMap.clear();
  7. BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding);
  8. LatLng ll;
  9. LatLngBounds.Builder builder = new Builder();
  10. for (CloudPoiInfo info : result.poiList) {
  11. ll = new LatLng(info.latitude, info.longitude);
  12. BDMapDataY bean =new BDMapDataY();//云数据
  13. bean.setLatitude(info.latitude);
  14. bean.setLongitude(info.longitude);
  15. bean.setTitle(info.title);//这里是title!!
  16. Bundle data = new Bundle();
  17. data.putSerializable("Cloud", bean);//哇 信息量巨大!
  18. OverlayOptions oo = new MarkerOptions().icon(bd).position(ll).extraInfo(data);
  19. mBaiduMap.addOverlay(oo);
  20. builder.include(ll);
  21. }
  22. LatLngBounds bounds = builder.build();
  23. MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(bounds);
  24. mBaiduMap.animateMapStatus(u);
  25. }
  26. else Toast.makeText(getApplication(), "搜索不到你需要的信息!", Toast.LENGTH_SHORT).show();
  27. }

附APP下载链接 https://download.csdn.net/download/u011752195/12373007

整个下来通过网络资源整理学习,并完善了一些代码,程序员挺累的

如果觉得不错可以点歌关注吧~

后续将分享更多程序代码~

合作请联系chat 1012638162

有问题可以在下面提出来~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/297651
推荐阅读
相关标签
  

闽ICP备14008679号