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

发布时间:2024-12-06 08:20

使用百度地图规划自驾路线并实时导航 #生活技巧# #自驾游建议# #自驾游必备APP#

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

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

使用到的技术

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

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

2、高级功能:LBS云

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

LBS云添加自定义车位信息

二维码扫描识别

路径规划:

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

3、数据库设计

程序功能逻辑设计

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

程序的说明文档

附上源码:

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

this.context=this;

activityList.add(this);

mCloudManager = CloudManager.getInstance();

mCloudManager.init();

mCloudManager.registerListener(MainActivity.this);

initMap();

initLocation();

initView();

final PoiSearch search = PoiSearch.newInstance();

final RoutePlanSearch routePlanSearch = RoutePlanSearch.newInstance();

@Override

public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {

mBaiduMap.clear();

if (walkingRouteResult.error == SearchResult.ERRORNO.NO_ERROR) {

WalkingRouteOverlay walkingOverlay = new WalkingRouteOverlay(mBaiduMap);

walkingOverlay.setData(walkingRouteResult.getRouteLines().get(0));

walkingOverlay.addToMap();

walkingOverlay.zoomToSpan();

mBaiduMap.setOnMarkerClickListener(walkingOverlay);

Log.e("TAG", walkingOverlay.getOverlayOptions() + "");

} else {

Toast.makeText(getBaseContext(), "搜不到!", Toast.LENGTH_SHORT).show();

}

}

@Override

public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {

mBaiduMap.clear();

if (drivingRouteResult.error == SearchResult.ERRORNO.NO_ERROR) {

DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(mBaiduMap);

drivingRouteOverlay.setData(drivingRouteResult.getRouteLines().get(0));

mBaiduMap.setOnMarkerClickListener(drivingRouteOverlay);

drivingRouteOverlay.addToMap();

drivingRouteOverlay.zoomToSpan();

int totalLine = drivingRouteResult.getRouteLines().size();

Toast.makeText(getBaseContext(),"共查询出" + totalLine + "条符合条件的线路", Toast.LENGTH_LONG).show();

}

else Toast.makeText(getBaseContext(), "抱歉,未找到结果",Toast.LENGTH_SHORT).show();

}

private void initLocation() {

locationMode= MyLocationConfiguration.LocationMode.NORMAL;

//定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动

mlocationClient=new LocationClient(this);

mlistener=new MylocationListener();

//注册监听器

mlocationClient.registerLocationListener(mlistener);

//配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等

LocationClientOption mOption=new LocationClientOption();

//设置坐标类型

mOption.setCoorType("bd09ll");

//设置是否需要地址信息,默认为无地址

mOption.setIsNeedAddress(true);

//设置是否打开gps进行定位

mOption.setOpenGps(true);

//设置扫描间隔,单位是毫秒 当<1000(1s)时,定时定位无效

int span=1000;

mOption.setScanSpan(span);

//设置 LocationClientOption

mlocationClient.setLocOption(mOption);

//初始化图标,BitmapDescriptorFactory是bitmap 描述信息工厂类,在使用该类方法之前请确保已经调用了 SDKInitializer.initialize(Context) 函数以提供全局 Context 信息。

//mIconLocation= BitmapDescriptorFactory.fromResource(R.drawable.car);

myOrientationListener=new MyOrientationListener(context);

myOrientationListener.setOnOrientationListener(new MyOrientationListener.OnOrientationListener() {

@Override

public void onOrientationChanged(float x) {

mCurrentX=x;

}

});

}

public void onGetSearchResult(CloudSearchResult result, int error) {

if (result != null && result.poiList != null

&& result.poiList.size() > 0) {

Log.d(LTAG, "onGetSearchResult, result length: " + result.poiList.size());

mBaiduMap.clear();

BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding);

LatLng ll;

LatLngBounds.Builder builder = new Builder();

for (CloudPoiInfo info : result.poiList) {

ll = new LatLng(info.latitude, info.longitude);

BDMapDataY bean =new BDMapDataY();

bean.setLatitude(info.latitude);

bean.setLongitude(info.longitude);

bean.setTitle(info.title);

Bundle data = new Bundle();

data.putSerializable("Cloud", bean);

OverlayOptions oo = new MarkerOptions().icon(bd).position(ll).extraInfo(data);

mBaiduMap.addOverlay(oo);

builder.include(ll);

}

LatLngBounds bounds = builder.build();

MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(bounds);

mBaiduMap.animateMapStatus(u);

}

else Toast.makeText(getApplication(), "搜索不到你需要的信息!", Toast.LENGTH_SHORT).show();

}

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

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

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

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

合作请联系chat 1012638162

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

网址:Android安卓百度地图定位+导航+路径规划实现APP(源码+APK) 毕业设计 https://www.yuejiaxmz.com/news/view/393778

相关内容

地图导航app大全
(基于安卓开发的毕业设计)家庭收纳App的设计与实现(附论文+源码)
手机地图导航软件
(基于android的毕业设计)健康饮食小助手(附源码+论文)
百度地图安卓下载
百度地图安卓免费app下载
解锁智能生活:Android室内路径规划,如何让家居导航更智能?
基于安卓android studio 的 菜谱食谱APP设计
【导航地图】导航地图大全
[附源码]计算机毕业设计springboot时间管理软件app

随便看看