1、模拟GPS脚本 tcp传输gps信号给主程序
2、sql数据库
3、主程序
4、网页链接百度地图接口
5、网页需要显示、模拟车辆实时位置、路线图、到站时间
- 本课题的目的和意义、国内外研究现状、水平和发展趋势
- 课题的目的和意义
目前,城市交通中存在交通拥挤、道路阻塞、环境污染等问题,公交具有运输能力大、节能环保等优点,因此大力发展城市公共交通已成为解决这一问题的共识。然而传统的公共交通系统存在着候车时间长、乘车舒适度低等问题[1],不能满足市民的出行需求。智能公交系统是集环保节能、城市公交监管、公交信息发布等几大系统于一体的新一代智能、环保、数字化公交站亭和“车联网”系统,它是实现城市交通现代化的关键环节之一。基于物联网的智能公交系统具有车辆监控调度、车载终端、电子站牌和通信网络等功能模块,实现各车次到站时间等信息的实时发布,为市民乘车选择和公交监控管理提供实时的公交到站信息。智能公交系统可以改善公交调度手段、提高公交运营效率,提高公交吸引力和分担率。
并且近几年,公交司机驾驶过程突发疾病导致车祸、乘客钱包及物品落在公交车的新闻时有发生,这让我们了解到,现有城市公交管理系统还存在一些问题,亟待改进。据调查,现阶段大部分城市采用的还是传统公交车系统,仅有极少数城市应用了智能公共交通系统,现有的智能公共交通系统主要完成了实时视频监控、车辆调度管理、超速报警等功能。有些城市采用的是智能公交站牌,电子站牌用于显示公交车的运行方位,功能单一。城市公交系统的功能还需进一步完善。
针对上述公共交通存在的不足之处,文中提出了采用基于物联网的智能公交智能设计,以便提高城市公交系统的利用效率和促进公共交通系统的发展。
物联网技术是继计算机技术和互联网发展后信息科技的最新发展方向,是信息产业革命的第三次浪潮。它正影响着各个产业的发展格局,而随着国民经济和人均收入水平的提高,我国交通领域的发展呈现出爆炸性的增长,交通的发展正处于传统的“用眼看”模式转向智能信息化模式过渡进程中,现今恰逢信息时代,信息的交流和处理占据了很大的作用。
近几年来,物联网成为国内外热烈讨论和重点研究的问题之一,很多国家已经将物联网上升为国家战略的高度。目前,物联网的一些初级应用已经在很多领域为我们服务,而物联网理念是在很多基础应用上推出的聚合型集成的创新,这些先进的初级应用让我们坚信了物联网未来潜藏的巨大经济价值。但由于物联网发展处于初步阶段,目前我国发展物联网未来潜藏的巨大经济价值。但由于物联网发展处于起步阶段,目前我国发展物联网还存在很多困难,如概念不清、前景不明等诸多问题。
在国际上,美国,欧盟,日本和韩国等发达国家都十分重视物联网的发展,并且已经投入了大量的资金和技术力量对其进行研究。
- 发展趋势
除了 GPS 定位、监控摄像头实时采集车内信息之外,本文的智能公交车系统在现有的智能公交模式上添加更多功能。在硬件方面,系统主要由以下部分组成:单片机、ZigBee 节点、摄像头、无线路由器、GPS 和传感器(烟雾传感器、压力传感器、酒精浓度传感器)。底层硬件可以实时采集车内信息传送到车
载上位机和数据库,实现车内监控、落物提醒、灾难报警、紧急状态一键爆破玻璃等功能。软件方面主要由车载客户端、远程服务器和网站组成。公交司机可以通过车载上位机查看车内各种参数是否正常,紧急状态下可以根据现场情况作出应急处理措施,当司机身体不适时还可以通过车载上位机向总部发起求助。除此之外,公交车系统管理人员还可以登录网站控制中心实现公交车的实时监控和系统化的管理。
3.2.1 系统功能性需求分析
智能公交系统需要满足如下功能:
(1)模拟公交车位置:可以在百度地图上实时的模拟公交车所在位置;
(2)查询公交线路:可以根据地点的起始位置和终点位置来查询出公交线路信息并在百度地图上显示出来。
(3)查看到站时间:可以从查询到的公交线路上查看到具体站点的到站时间;
4.1系统总体模块设计
根据前面第三章节的功能需求和用例分析得出了智能公交系统的功能模块图如下所示。
5 详细设计与实现
5.1模拟公交车位置
在map.jsp页面中输入上起始地横坐标、起始地纵坐标、终点地横坐标、终点地纵坐标后点击“模拟公交车位置”按钮后将会调用百度地图接口,并在地图上采用2辆汽车图片来模拟公交车的实时所在位置。
图5-1 模拟公交车位置
主要实现代码如下:
<script type="text/javascript">
$(function(){
run();
});
function run(){
//百度地图API功能
var startX=$("#startX").val();
var startY=$("#startY").val();
var endX=$("#endX").val();
var endY=$("#endY").val();
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);
var myP1 = new BMap.Point(startX,startY); //起点
var myP2 = new BMap.Point(endX,endY); //终点
var myIcon = new BMap.Icon("jsp/images/bus5.png", new BMap.Size(80, 60), { //小车图片
imageOffset: new BMap.Size(0, 0) //图片的偏移量。为了是图片底部中心对准坐标点。
});
var driving2 = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}}); //驾车实例
driving2.search(myP1, myP2); //显示一条公交线路
window.run = function (){
var driving = new BMap.DrivingRoute(map); //驾车实例
driving.search(myP1, myP2);
driving.setSearchCompleteCallback(function(){
var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
var paths = pts.length; //获得有几个点
var carMk = new BMap.Marker(pts[0],{icon:myIcon});
map.addOverlay(carMk);
i=0;
function resetMkPoint(i){
carMk.setPosition(pts[i]);
if(i < paths){
setTimeout(function(){
i++;
resetMkPoint(i);
},100);
}
}
setTimeout(function(){
resetMkPoint(5);
},100)
});
}
setTimeout(function(){
run();
},1000);
}
</script>
5.2查询公交车线路
在GDmap.jsp页面上输入地点名称、起始地址、终点地址后点击“查询公交线路”按钮后将会调用百度地图接口,查询出2地的公交线路并用蓝色先连接起来,其中起点事蓝色表示,终点是红色表示。
图5-2查询公交车线路
主要实现代码如下:
<script type="text/javascript">
$(function(){
intiBusByName();
});
function intiBusByName(){
var city=$("#city").val();
var startAddress=$("#startAddress").val();
var endAddress=$("#endAddress").val();
var map = new AMap.Map("container", {
resizeEnable: true,
center: [116.397428, 39.90923],
zoom: 13
});
var transOptions = {
map: map,
city: city,
panel: 'panel',
policy: AMap.TransferPolicy.LEAST_TIME //乘车策略
};
//构造公交换乘类
var transfer = new AMap.Transfer(transOptions);
//根据起、终点名称查询公交换乘路线
transfer.search([
{keyword: startAddress,city:city},
//第一个元素city缺省时取transOptions的city属性
{keyword: endAddress,city:city}
//第二个元素city缺省时取transOptions的cityd属性
], function(status, result) {
// result即是对应的公交路线数据信息,相关数据结构文档请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_TransferResult
if (status === 'complete') {
log.success('绘制公交路线完成')
} else {
log.error('公交路线数据查询失败' + result)
}
});
}
function initBusRoadMap(){
var startX=$("#startX").val();
var startY=$("#startY").val();
var endX=$("#endX").val();
var endY=$("#endY").val();
var city=$("#city").val();
var map = new AMap.Map("container", {
resizeEnable: true,
center: [116.397428, 39.90923],
zoom: 13 //地图显示的缩放级别
});
var transOptions = {
map: map,
city: city,
panel: 'panel',
policy: AMap.TransferPolicy.LEAST_TIME
};
//构造公交换乘类
var transfer = new AMap.Transfer(transOptions);
//根据起、终点坐标查询公交换乘路线
transfer.search(new AMap.LngLat(startX,startY), new AMap.LngLat(endX, endY), function(status, result) {
// result即是对应的公交路线数据信息,相关数据结构文档请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_TransferResult
if (status === 'complete') {
log.success('绘制公交路线完成')
} else {
log.error('公交路线数据查询失败' + result)
}
});
};
</script>
5.3查看到站时间
从在百度地图上绘制出来的公交线路图上,点击某个站点后将会显示出该站点的出发站、到达站、第几站的浮动窗口。
图5-3查看到站时间