基于百度地图JS开源库开发网页应用
最近在百度云虚拟主机上面搭建网站,基于JS、PHP和MySQL开发了一个网页版的地图应用 。该系统模拟车机数据上报到数据库,实时更新道路交通状况。根据道路状况来计算导航时间。使用JS开发前端函数,PHP操作数据库。JS函数和PHP文件之间使用AJAX方法进行调用和反馈。
index.php
<html xmlns="http://lingtuotech.bj01.bdysite.com"> //你的网址
<head>
<title>基于实时路况进行导航路线规划</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=百度地图JS平台**"></script>
</head>
<body style="background:#CBE1FF">
<div style="width:730px; margin:auto; margin-left:100px;">
设置起点:<input id="text_" type="text" value="外环罗山路立交桥" style="margin-right:100px;"/>
设置终点:<input id="result_" type="text" value="华夏西路立交"/>
<input type="button" value="查询" onclick="getPlannedRoute();"/>
<div id="container"
style="position: absolute;
margin-top:20px;
width: 730px;
height: 630px;
top: 40;
border: 1px solid gray;
overflow:hidden;">
</div>
</div>
</body>
<body style="background:#CBE1FF">
<div style="width:500px; margin-top:50px; margin-left:900px;">
Report Vehicle Data
</br>
</br>
Data ID:<input id="DataID" type="text" value="" style="width:100px;"/>
Data Flag:<input id="DataFlag" type="text" value="" style="width:100px;"/>
</br>
Previous Position:<input id="PreviousPosition" type="text" value="" style="width:100px;"/>
Previous Speed:<input id="PreviousSpeed" type="text" value="" style="width:100px;"/>
</br>
Current Position:<input id="CurrentPosition" type="text" value="" style="width:100px;"/>
Current Speed:<input id="CurrentSpeed" type="text" value="" style="width:100px;"/>
</br>
</br>
<input type="button" value="Submit" onclick="ReportVehicleData();"/>
<input type="button" value="Reset" onclick="getPlannedRoute();"/>
</div>
</body>
<body style="background:#CBE1FF">
<div style="width:500px; margin-top:70px; margin-left:900px;">
Get Road Condition Data
</br>
</br>
Data ID:<input id="GetDataID" type="text" value="" style="width:100px;"/>
RoadSegment Number:<input id="RoadSegmentNumber" type="text" value="" style="width:100px;"/>
</br>
</br>
<input type="button" value="Refresh" onclick="GetRoadConditionData();"/>
</div>
</body>
<body style="background:#CBE1FF">
<div style="width:500px; margin-top:100px; margin-left:900px;">
路线规划查询结果
</br>
<div id = "routeUpdate1">
</br>
路线一:全程 ( )km,耗时( )h。
</br>
路线二:全程 ( )km,耗时( )h。
</br>
路线三:全程 ( )km,耗时( )h。
</br>
</div>
</br>
<input type="button" value="刷新路况" onclick="getUpdateRoute();displayUpdateRoute();"/>
<input type="button" value="显示距离最短路线" onclick="getUpdateRoute();displayMinDistance();"/>
<input type="button" value="显示时间最短路线" onclick="getUpdateRoute();displayMinTime();"/>
</div>
</body>
<body style="background:#CBE1FF">
<div style="width:500px; margin-top:400px; margin-left:900px;">
</div>
<div id="webpage">
</div>
</body>
<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(121.629371,31.188212), 12);//这里是初始地图所显示的区域,即Demo显示区域
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件
map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件
map.addControl(new BMap.OverviewMapControl({ isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT })); //右下角,打开
//单击获取点击的经纬度
map.addEventListener("click",function(e){
alert(e.point.lng + "," + e.point.lat);
});
var localSearch = new BMap.LocalSearch(map);
localSearch.enableAutoViewport(); //允许自动调节窗体大小
function getPlannedRoute() {
map.clearOverlays();//清空原来的标注
//创建起点、终点、经过点
var ptStart = new BMap.Point(121.601178,31.153162);
//将icon的坐标点绑定
var startIcon = new BMap.Icon("./icon/Icon_start.png", new BMap.Size(38, 52), {anchor: new BMap.Size(19, 52)});
var markerStart = new BMap.Marker(ptStart,{icon:startIcon}); // 创建标注
map.addOverlay(markerStart); // 将标注添加到地图中
var pt1 = new BMap.Point(121.632201,31.159215);
var Icon1 = new BMap.Icon("./icon/Icon_mark1.png", new BMap.Size(32, 47), {anchor: new BMap.Size(16, 47)});
var markerIcon1 = new BMap.Marker(pt1,{icon:Icon1}); // 创建标注
map.addOverlay(markerIcon1); // 将标注添加到地图中
var pt2 = new BMap.Point(121.654101,31.161641);
var Icon2 = new BMap.Icon("./icon/Icon_mark2.png", new BMap.Size(32, 47), {anchor: new BMap.Size(16, 47)});
var markerIcon2 = new BMap.Marker(pt2,{icon:Icon2}); // 创建标注
map.addOverlay(markerIcon2);
var pt3 = new BMap.Point(121.592307,31.175406);
var Icon3 = new BMap.Icon("./icon/Icon_mark3.png", new BMap.Size(32, 47), {anchor: new BMap.Size(16, 47)});
var markerIcon3 = new BMap.Marker(pt3,{icon:Icon3}); // 创建标注
map.addOverlay(markerIcon3); // 将标注添加到地图中
var pt4 = new BMap.Point(121.628976,31.187779);
var Icon4 = new BMap.Icon("./icon/Icon_mark4.png", new BMap.Size(32, 47), {anchor: new BMap.Size(16, 47)});
var markerIcon4 = new BMap.Marker(pt4,{icon:Icon4}); // 创建标注
map.addOverlay(markerIcon4); // 将标注添加到地图中
var ptEnd = new BMap.Point(121.652597,31.195359);
var endIcon = new BMap.Icon("./icon/Icon_end.png", new BMap.Size(38, 52), {anchor: new BMap.Size(19, 52)});
var markerEnd = new BMap.Marker(ptEnd,{icon:endIcon}); // 创建标注
map.addOverlay(markerEnd); // 将标注添加到地图中
}
var xmlHttp; //定义XMLHttpRequest对象
function createXmlHttpRequestObject(){
//如果在internet Explorer下运行
if(window.ActiveXObject){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlHttp=false;
}
}else{
//如果在Mozilla或其他的浏览器下运行
try{
xmlHttp=new XMLHttpRequest();
}catch(e){
xmlHttp=false;
}
}
//返回创建的对象或显示错误信息
if(!xmlHttp)
alert("返回创建的对象或显示错误信息");
else
return xmlHttp;
}
function ReportVehicleData(){
createXmlHttpRequestObject();
var VehicleData='';
var DataID = document.getElementById("DataID").value;
if(DataID==""){
alert('Data ID不能为空!');
return false;
}
VehicleData+=DataID+' ';
var DataFlag = document.getElementById("DataFlag").value;
if(DataFlag==""){
alert('Data Flag不能为空!');
return false;
}
VehicleData+=DataFlag+' ';
var PreviousPosition = document.getElementById("PreviousPosition").value;
if(PreviousPosition==""){
alert('Previous Position不能为空!');
return false;
}
VehicleData+=PreviousPosition+' ';
var PreviousSpeed = document.getElementById("PreviousSpeed").value;
if(PreviousSpeed==""){
alert('Previous Speed不能为空!');
return false;
}
VehicleData+=PreviousSpeed+' ';
var CurrentPosition = document.getElementById("CurrentPosition").value;
if(CurrentPosition==""){
alert('Current Position不能为空!');
return false;
}
VehicleData+=CurrentPosition+' ';
var CurrentSpeed = document.getElementById("CurrentSpeed").value;
if(CurrentSpeed==""){
alert('Current Speed不能为空!');
return false;
}
VehicleData+=CurrentSpeed+' ';
xmlHttp.onreadystatechange=StatHandler; //判断URL调用的状态值并处理
xmlHttp.open("GET",'ReportVehicleData.php?VehicleData='+VehicleData,false);
xmlHttp.send(null);
}
function GetRoadConditionData(){
createXmlHttpRequestObject();
var GetDataID = document.getElementById("GetDataID").value;
if(GetDataID==""){
alert('GetData ID不能为空!');
return false;
}
xmlHttp.onreadystatechange=RoadDataHandler; //判断URL调用的状态值并处理
xmlHttp.open("GET",'GetRoadData.php?GetDataID='+GetDataID,false);
xmlHttp.send(null);
}
function StatHandler(){
if(xmlHttp.readyState==4 && xmlHttp.status==200){
alert(xmlHttp.responseText);
}
}
var RoadSegmentSpeed = new Array();
function RoadDataHandler(){
if(xmlHttp.readyState==4 && xmlHttp.status==200){
var RoadSegmentSpeedStr = xmlHttp.responseText;
alert(RoadSegmentSpeedStr);
RoadSegmentSpeed = RoadSegmentSpeedStr.split(" ");
/***坐标从1开始
alert(RoadSegmentSpeed[1]);
alert(RoadSegmentSpeed[2]);
alert(RoadSegmentSpeed[3]);
alert(RoadSegmentSpeed[4]);
alert(RoadSegmentSpeed[5]);
alert(RoadSegmentSpeed[6]);
alert(RoadSegmentSpeed[7]);
***/
}
}
//根据两个途径点,在地图上显示导航路线。
function getSDRouteTest(p2, p3) {
map.clearOverlays();
var myP1 = new BMap.Point(121.601178,31.153162);
var myP2 = p2;
var myP3 = p3;
var myP4 = new BMap.Point(121.652597,31.195359);
//var pts = driving.getResults().getPlan(0).getRoute(0).getPath();
var polyline1 = new BMap.Polyline([myP1, myP2], {strokeColor:"red",strokeWeight:6,strokeOpacity:0.5});
var polyline2 = new BMap.Polyline([myP2, myP3], {strokeColor:"red",strokeWeight:6,strokeOpacity:0.5});
var polyline3 = new BMap.Polyline([myP3, myP4], {strokeColor:"red",strokeWeight:6,strokeOpacity:0.5});
map.addOverlay(polyline1);
map.addOverlay(polyline2);
map.addOverlay(polyline3);
var startIcon = new BMap.Icon("./icon/Icon_start.png", new BMap.Size(38, 52), {anchor: new BMap.Size(19, 52)});
var markerStart = new BMap.Marker(myP1,{icon:startIcon});
var Icon1 = new BMap.Icon("./icon/Icon_mark1.png", new BMap.Size(32, 47), {anchor: new BMap.Size(16, 47)});
var markerIcon1 = new BMap.Marker(myP2,{icon:Icon1});
var Icon2 = new BMap.Icon("./icon/Icon_mark2.png", new BMap.Size(32, 47), {anchor: new BMap.Size(16, 47)});
var markerIcon2 = new BMap.Marker(myP3,{icon:Icon2});
var endIcon = new BMap.Icon("./icon/Icon_end.png", new BMap.Size(38, 52), {anchor: new BMap.Size(19, 52)});
var markerEnd = new BMap.Marker(myP4,{icon:endIcon});
map.addOverlay(markerStart);
map.addOverlay(markerIcon1);
map.addOverlay(markerIcon2);
map.addOverlay(markerEnd);
setTimeout(function(){ map.setViewport([myP1,myP2,myP3,myP4]); },1000);
}
var sum;
function getUpdateRoute(){
var speed = RoadSegmentSpeed;
var sRoute=
[
{
routeId : 0,
routeDistance : 3.1,
routeSpeed : speed[1],
routeTime : 0
},
{
routeId : 1,
routeDistance : 2,
routeSpeed : speed[2],
routeTime : 0
},
{
routeId : 2,
routeDistance : 4,
routeSpeed : speed[3],
routeTime : 0
},
{
routeId : 3,
routeDistance : 3.5,
routeSpeed : speed[7],
routeTime : 0
},
{
routeId : 4,
routeDistance : 2.6,
routeSpeed : speed[6],
routeTime : 0
},
{
routeId : 5,
routeDistance : 2.7,
routeSpeed : speed[4],
routeTime : 0
},
{
routeId : 6,
routeDistance : 4.1,
routeSpeed : speed[5],
routeTime : 0
}
];
var sSumRoute =
[
{
sumRouteId : 0,
sumDistance : 0,
sumTime : 0,
routePoint0 : new BMap.Point(121.632201,31.159215),
routePoint1 : new BMap.Point(121.654101,31.161641)
},
{
sumRouteId : 1,
sumDistance : 0,
sumTime : 0,
routePoint0 : new BMap.Point(121.632201,31.159215),
routePoint1 : new BMap.Point(121.628976,31.187779)
},
{
sumRouteId : 2,
sumDistance : 0,
sumTime : 0,
routePoint0 : new BMap.Point(121.592307,31.175406),
routePoint1 : new BMap.Point(121.628976,31.187779)
}
];
for (var i = 0; i < sRoute.length; i++)
{
sRoute[i].routeTime = sRoute[i].routeDistance / sRoute[i].routeSpeed; // 1,2,1,1.5,1.75,2.5,1
}
sSumRoute[0].sumDistance = sRoute[0].routeDistance + sRoute[1].routeDistance + sRoute[2].routeDistance; // 60
sSumRoute[1].sumDistance = sRoute[0].routeDistance + sRoute[3].routeDistance + sRoute[4].routeDistance; // 50
sSumRoute[2].sumDistance = sRoute[4].routeDistance + sRoute[5].routeDistance + sRoute[6].routeDistance; // 60
sSumRoute[0].sumTime = sRoute[0].routeTime + sRoute[1].routeTime + sRoute[2].routeTime; // 4
sSumRoute[1].sumTime = sRoute[0].routeTime + sRoute[3].routeTime + sRoute[4].routeTime; // 3.5
sSumRoute[2].sumTime = sRoute[4].routeTime + sRoute[5].routeTime + sRoute[6].routeTime; // 5.25
sum = sSumRoute;
// return sSumRoute;
}
function displayUpdateRoute()
{
//var sumdist = getUpdateRoute();
var sumdist = sum;
document.getElementById("routeUpdate1").innerHTML = "</br>" + "路线一:全程 (" +sumdist[0].sumDistance.toFixed(2) + ")km, 耗时(" + sumdist[0].sumTime.toFixed(2) + ")h";
document.getElementById("routeUpdate1").innerHTML += "</br>" + "路线二:全程 (" +sumdist[1].sumDistance.toFixed(2) + ")km, 耗时(" + sumdist[1].sumTime.toFixed(2) + ")h";
document.getElementById("routeUpdate1").innerHTML += "</br>" + "路线三:全程 (" +sumdist[2].sumDistance.toFixed(2) + ")km, 耗时(" + sumdist[2].sumTime.toFixed(2) + ")h";
}
//var sMinDistance;
function displayMinDistance()
{
var sumDist = sum;
var sMinDistanceContent =
{
minDistance : 0,
routePoint0 : new BMap.Point(121.601178,31.153162),
routePoint1 : new BMap.Point(121.601178,31.153162)
};
if (sumDist[0].sumDistance < sumDist[1].sumDistance)
{
sMinDistanceContent.minDistance = sumDist[0].sumDistance;
sMinDistanceContent.routePoint0 = sumDist[0].routePoint0;
sMinDistanceContent.routePoint1 = sumDist[0].routePoint1;
}
else
{
sMinDistanceContent.minDistance = sumDist[1].sumDistance;
sMinDistanceContent.routePoint0 = sumDist[1].routePoint0;
sMinDistanceContent.routePoint1 = sumDist[1].routePoint1;
}
if (sumDist[2].sumDistance < sMinDistanceContent.minDistance)
{
sMinDistanceContent.minDistance = sumDist[2].sumDistance;
sMinDistanceContent.routePoint0 = sumDist[2].routePoint0;
sMinDistanceContent.routePoint1 = sumDist[2].routePoint1;
}
getSDRouteTest(sMinDistanceContent.routePoint0, sMinDistanceContent.routePoint1);
//document.getElementById("routeUpdate1").innerHTML += "</br>" + "路线四:全程 (" +sMinDistanceContent.minDistance + ")km, 耗时(" + sMinDistanceContent.routePoint0 + ")h";
//sMinDistance = sMinDistanceContent;
//alert("最短距离:" + sMinDistanceContent.minDistance + ",定点0:" + sMinDistanceContent.routePoint0 + ",定点1:" + sMinDistanceContent.routePoint1);
}
//var sMinTime;
function displayMinTime()
{
var sumDist = sum;
var sMinTimeContent =
{
minTime : 0,
routePoint0 : new BMap.Point(121.601178,31.153162),
routePoint1 : new BMap.Point(121.601178,31.153162)
};
if (sumDist[0].sumTime < sumDist[1].sumTime)
{
sMinTimeContent.minTime = sumDist[0].sumTime;
sMinTimeContent.routePoint0 = sumDist[0].routePoint0;
sMinTimeContent.routePoint1 = sumDist[0].routePoint1;
}
else
{
sMinTimeContent.minTime = sumDist[1].sumTime;
sMinTimeContent.routePoint0 = sumDist[1].routePoint0;
sMinTimeContent.routePoint1 = sumDist[1].routePoint1;
}
if (sumDist[2].sumTime < sMinTimeContent.minTime)
{
sMinTimeContent.minTime = sumDist[2].sumTime;
sMinTimeContent.routePoint0 = sumDist[2].routePoint0;
sMinTimeContent.routePoint1 = sumDist[2].routePoint1;
}
getSDRouteTest(sMinTimeContent.routePoint0, sMinTimeContent.routePoint1);
//sMinTime = sMinTimeContent;
//alert("最短时间:" + sMinTimeContent.minTime + ",定点0:" + sMinTimeContent.routePoint0 + ",定点1:" + sMinTimeContent.routePoint1);
}
</script>
</html>
conn/conn.php
<?php
$conn = mysqli_connect("数据库地址", "登录名", "登录密码", "数据库名字") or die("连接数据库服务器失败!".mysqli_error()); //连接MySQL服务器,选择数据库
mysqli_query($conn,"set names utf8"); //设置数据库编码格式utf8
?>
ReportVehicleData.php
<?php
header('Content-type: text/html;charset=GB2312'); //指定发送数据的编码格式
include_once 'conn/conn.php'; //连接数据库
$VehicleData = $_GET['VehicleData'];
$VehicleArray = explode(" ",$VehicleData); //使用" "将几个数据进行拆分
$DataID = $VehicleArray[0];
$DataFlag = $VehicleArray[1];
$PreviousPosition = $VehicleArray[2];
$PreviousSpeed = $VehicleArray[3];
$CurrentPosition = $VehicleArray[4];
$CurrentSpeed = $VehicleArray[5];
if($DataID != "0x5aa5")
{
echo "Data ID != 0x5aa5";
exit;
}
if($DataFlag == 0x1a) //导航开始第一帧数据
{
$sql = "select * from `Real-time_Road_Condition` where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql); //执行模糊查询
if(mysqli_num_rows($result)>0) //执行结果>0,说明数据获取成功。
{
$rows = mysqli_fetch_array($result); //根据CurrentPosition路段号,获取这一行的数据
$rows['AverageSpeed']= ($rows['AverageSpeed']*$rows['VehiclesNumber']+$CurrentSpeed)/($rows['VehiclesNumber']+1);
$rows['VehiclesNumber']=$rows['VehiclesNumber']+1;
$sql = "update `Real-time_Road_Condition` set AverageSpeed=".$rows['AverageSpeed'].", VehiclesNumber=".$rows['VehiclesNumber']." where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql);
}
}
elseif($DataFlag == 0x2a) //导航进行中的数据
{
if($PreviousPosition == $CurrentPosition)
{
$sql = "select * from `Real-time_Road_Condition` where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql); //执行模糊查询
if(mysqli_num_rows($result)>0) //执行结果>0,说明数据获取成功。
{
$rows = mysqli_fetch_array($result); //根据CurrentPosition路段号,获取这一行的数据
$rows['AverageSpeed']= ($rows['AverageSpeed']*$rows['VehiclesNumber']+$CurrentSpeed-$PreviousSpeed)/$rows['VehiclesNumber'];
$sql = "update `Real-time_Road_Condition` set AverageSpeed=".$rows['AverageSpeed'].", VehiclesNumber=".$rows['VehiclesNumber']." where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql);
}
}
else
{
$sql = "select * from `Real-time_Road_Condition` where RoadSegmentNumber = ".$PreviousPosition; //定义SQL语句
$result=mysqli_query($conn,$sql); //执行模糊查询
if(mysqli_num_rows($result)>0) //执行结果>0,说明数据获取成功。
{
$rows = mysqli_fetch_array($result); //根据PreviousPosition路段号,获取这一行的数据
$rows['AverageSpeed']= ($rows['AverageSpeed']*$rows['VehiclesNumber']-$PreviousSpeed)/($rows['VehiclesNumber']-1);
$rows['VehiclesNumber']=$rows['VehiclesNumber']-1;
$sql = "update `Real-time_Road_Condition` set AverageSpeed=".$rows['AverageSpeed'].", VehiclesNumber=".$rows['VehiclesNumber']." where RoadSegmentNumber = ".$PreviousPosition; //定义SQL语句
$result=mysqli_query($conn,$sql);
}
$sql = "select * from `Real-time_Road_Condition` where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql); //执行模糊查询
if(mysqli_num_rows($result)>0) //执行结果>0,说明数据获取成功。
{
$rows = mysqli_fetch_array($result); //根据CurrentPosition路段号,获取这一行的数据
$rows['AverageSpeed']= ($rows['AverageSpeed']*$rows['VehiclesNumber']+$CurrentSpeed)/($rows['VehiclesNumber']+1);
$rows['VehiclesNumber']=$rows['VehiclesNumber']+1;
$sql = "update `Real-time_Road_Condition` set AverageSpeed=".$rows['AverageSpeed'].", VehiclesNumber=".$rows['VehiclesNumber']." where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql);
}
}
}
elseif($DataFlag == 0xaa) //导航结束最后一帧数据 最后一帧数据,当前速度设置为0
{
$sql = "select * from `Real-time_Road_Condition` where RoadSegmentNumber = ".$PreviousPosition; //定义SQL语句
$result=mysqli_query($conn,$sql); //执行模糊查询
if(mysqli_num_rows($result)>0) //执行结果>0,说明数据获取成功。
{
$rows = mysqli_fetch_array($result); //根据CurrentPosition路段号,获取这一行的数据
$rows['AverageSpeed']= ($rows['AverageSpeed']*$rows['VehiclesNumber']-$PreviousSpeed)/($rows['VehiclesNumber']-1);
$rows['VehiclesNumber']=$rows['VehiclesNumber']-1;
$sql = "update `Real-time_Road_Condition` set AverageSpeed=".$rows['AverageSpeed'].", VehiclesNumber=".$rows['VehiclesNumber']." where RoadSegmentNumber = ".$PreviousPosition; //定义SQL语句
$result=mysqli_query($conn,$sql);
}
}
else //无效的数据Flag
{
echo "Data Flag is invalid.";
exit;
}
/***
$sql = "select * from `Real-time_Road_Condition` where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql); //执行模糊查询
if(mysqli_num_rows($result)>0) //执行结果>0,说明数据获取成功。
{ //获取查询结果
$rows = mysqli_fetch_array($result);
if ($DataFlag == 0)
{
echo $DataFlag;
echo "***";
$rows[2]=$rows[2]+1;
echo $rows[2];
}
elseif ($DataFlag == 2)
{
echo $DataFlag;
$rows[2]=$rows[2]-1;
}
else
{
echo $DataFlag;
$rows[4]= ($rows[2]*($rows[4]+1)+$CurrentSpeed)/$rows[4];
}
$sql = "update `Real-time_Road_Condition` set AverageSpeed=".$rows[4].", VehiclesNumber=".$rows[2]." where RoadSegmentNumber = ".$CurrentPosition; //定义SQL语句
$result=mysqli_query($conn,$sql);
}
***/
/***
else
{
echo "插入一个新路段";
$sql = "insert into `Real-time_Road_Condition` (RoadSegmentNumber) value (".$CurrentPosition.")";
$result=mysqli_query($conn,$sql);
}
***/
?>
GetRoadData.php
<?php
header('Content-type: text/html;charset=GB2312'); //指定发送数据的编码格式
include_once 'conn/conn.php'; //连接数据库
$GetDataID = $_GET['GetDataID'];
$sql = "select AverageSpeed from `Real-time_Road_Condition`"; //定义SQL语句
$result=mysqli_query($conn,$sql);
$rowcount=mysqli_num_rows($result);
$averagespeedstr = "";
for($i=1; $i<=$rowcount; $i++)
{
$rows = mysqli_fetch_array($result);
$averagespeedstr = $averagespeedstr." ".$rows[0];
}
echo $averagespeedstr;
?>
下图就是网页界面: