<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
|
<%Session.CodePage=65001%>
|
<!--#include file="odbc.asp"-->
|
<!--#include file="JsonPost.gds"-->
|
|
<%
|
'签名验证----------
|
ApiSign=trim(Request("Sign"))
|
if ApiSign="" Then
|
'Response.end
|
Response.Redirect "weixinURLerror.gds"
|
else
|
'待签名字符串
|
ReDim arr(Request.QueryString.Count,2)
|
Dim v '所有表单值
|
Dim t '所有表单数量
|
v=Request.QueryString
|
t=Request.QueryString.Count
|
For i=0 To t-1
|
arr(i,1)=Split(Split(v,"&")(i),"=")(0)
|
arr(i,2)=Split(Split(v,"&")(i),"=")(1)
|
Next
|
For i = 0 To t-1
|
For j = i + 1 To t-1
|
If arr(i,1) > arr(j,1) Then
|
tmp1 = arr(i,1)
|
arr(i,1) = arr(j,1)
|
arr(j,1) = tmp1
|
tmp2 = arr(i,2)
|
arr(i,2) = arr(j,2)
|
arr(j,2) = tmp2
|
End If
|
Next
|
Next
|
For i = 0 To t-1
|
'response.write arr(i,1) & "=" & arr(i,2) & "<br>"
|
If arr(i,1)="Sign" Then
|
reserve=arr(i,2)
|
else
|
If arr(i,2)="timestamp" Then arr(i,2)=Date() &" "& Time()
|
sParaSort=sParaSort & arr(i,1) & arr(i,2)
|
sParaRunning=sParaRunning &"&"& arr(i,1) &"="& arr(i,2)
|
End if
|
Next
|
sign_type = "MD5"
|
input_charset="utf-8"
|
stringA=sParaSort&key
|
'response.write sParaSort & "<br>"
|
Private Function BuildRequestMysign(sParaSort)
|
'获得签名结果
|
Select Case sign_type
|
Case "MD5" BuildRequestMysign = Md5Sign(sParaSort,key,input_charset)
|
Case Else BuildRequestMysign = ""
|
End Select
|
End Function
|
sParaSort=BuildRequestMysign(sParaSort)
|
If CStr(ApiSign)<>CStr(sParaSort) Then
|
'Response.end
|
'Response.Redirect "weixinURLerror.gds"
|
'签名调试
|
errmsg="invalid stringA:"&stringA&",Sign:"&sParaSort
|
'Response.Write errmsg
|
'Response.End
|
Response.Redirect "weixinURLerror.gds"
|
End If
|
End If
|
'签名验证---end
|
|
s=trim(request("s"))
|
|
DispatchOrdID=s
|
If DispatchOrdID="" Then Response.Redirect "weixinURLerror.gds"
|
Set rs = Server.CreateObject("ADODB.Recordset")
|
sql="select * from DispatchOrd where DispatchOrdID="&DispatchOrdID
|
rs.open sql,objConn,1,1
|
If not rs.Eof then
|
DispatchOrdID = rs("DispatchOrdID") '调度单号
|
DispatchOrdClass = rs("DispatchOrdClass") '单据类型
|
ServiceOrdID = rs("ServiceOrdIDDt") '对应受理单号
|
DispatchOrdState = rs("DispatchOrdState") '调度单状态
|
DispatchOrdStartDate = rs("DispatchOrdStartDate") '调度单状态时间
|
DispatchOrd_NS_ID = rs("DispatchOrd_NS_ID") '开单人ID
|
DispatchOrd_NS_Time = rs("DispatchOrd_NS_Time") '开单时间
|
DispatchOrd_AP_ID = rs("DispatchOrd_AP_ID") '审核人ID
|
DispatchOrd_AP_Time = rs("DispatchOrd_AP_Time") '审核时间
|
DispatchOrd_AP_Check = rs("DispatchOrd_AP_Check") '是否审核(0否,1是)
|
DispatchOrdCarID = rs("DispatchOrdCarID") '派遣车辆ID
|
DispatchOrdTraSDTime = rs("DispatchOrdTraSDTime") '拟出发时间
|
DispatchOrdActualDate = rs("DispatchOrdActualDate") '实际出车时间
|
DispatchOrdTraDistance = rs("DispatchOrdTraDistance") '实际距离
|
DispatchOrdTraStreet = rs("DispatchOrdTraStreet") '实际出发地
|
DispatchOrdTraEnd = rs("DispatchOrdTraEnd") '实际目的地
|
DispatchOrdTraVia = rs("DispatchOrdTraVia") '实际途经地
|
DispatchOrdCoName = rs("DispatchOrdCoName") '调度联系人
|
DispatchOrdCoPhone = rs("DispatchOrdCoPhone") '调度联系电话
|
|
DispatchOrdTraStreetMileage= rs("DispatchOrdTraStreetMileage")'开始里程数
|
DispatchOrdTraEndMileage= rs("DispatchOrdTraEndMileage")'结束里程数
|
DispatchOrdMileage = rs("DispatchOrdMileage") '实际里程数
|
DispatchOrdGasoline = rs("DispatchOrdGasoline") '油耗
|
DispatchOrdRemarks = rs("DispatchOrdRemarks") '行驶备注记录
|
|
DispatchOrdIsEnd = rs("DispatchOrdIsEnd") '完成报告提交情况
|
DispatchOrdPerfomance = rs("DispatchOrdPerfomance")
|
StretcherMoney = rs("StretcherMoney") '担架费
|
|
EntourageName_aid1 = rs("EntourageName_aid1") '外援人员1
|
EntourageName_aid2 = rs("EntourageName_aid2") '外援人员2
|
RecommendedCar = rs("RecommendedCar") '指定车型
|
DispatchOrdCancelReason= rs("DispatchOrdCancelReason")
|
DispatchOrdCancelReasonTXT= rs("DispatchOrdCancelReasonTXT")
|
|
|
DispatchOrdNo = DispatchOrdClass& year(rs("DispatchOrd_NS_Time"))&Right("0"&month(rs("DispatchOrd_NS_Time")),2)&Right("0"&day(rs("DispatchOrd_NS_Time")),2) & "-"&Right("00"&rs("DispatchOrdNo"),3) '调度单编号
|
End If
|
rs.close()
|
|
If DispatchOrdCarID="" or DispatchOrdState<4 or DispatchOrdState>7 then
|
Response.Redirect "weixinURLerror.gds"
|
End If
|
CarID = DispatchOrdCarID
|
sql="select CarLicense,GPS_IMEI from CarData where CarID="&CarID
|
rs.open Sql,objConn,1,1
|
If not rs.Eof Then
|
CarLicense = rs("CarLicense")
|
imeis = rs("GPS_IMEI")
|
End If
|
rs.close()
|
|
|
appUrl="http://api.gpsoo.net/1/account/monitor"
|
|
args1="access_token="&access_token
|
args1=args1&"&map_type=BAIDU&target="&account&"&account="&account&"&time="&ToUnixTime(now(),0)
|
'args1=args1&"&map_type=BAIDU" '如果要显示在百度地图上,map_type=BAIDU此时返回的经纬度将经过baidu校准方式校准,如果要显示在google地图上,map_type=GOOGLE,此时返回的经纬度将经过google校准方式校准,map_type如果不填,则返回原始经纬度
|
|
|
HTMLCODE= GetBody(appUrl,args1)
|
'Response.Write args1&"<br><br>"
|
'HTMLCODE= PostBody(appUrl,args1)
|
'Response.Write HTMLCODE &"<br>"
|
|
json = HTMLCODE
|
%>
|
<script language="JScript" runat="Server">
|
function toObject(json) {
|
eval("var o=" + json);
|
return o;
|
}
|
function toArray(s){
|
var dic = Server.CreateObject("Scripting.Dictionary")
|
eval("var a=" + json);
|
for(var i=0;i<a.length;i++){
|
var obj = Server.CreateObject("Scripting.Dictionary")
|
for(x in a[i]) obj.Add(x,a[i][x])
|
dic.Add(i, obj);
|
}
|
return dic
|
}
|
</script>
|
|
<script language="jscript" runat="server">
|
Array.prototype.get = function(i)
|
{
|
return this[i];
|
};
|
function getjson(str){
|
try{
|
eval("var jsonStr = (" + str + ")");
|
}catch(ex){
|
var jsonStr = null;
|
}
|
return jsonStr;
|
}
|
</script>
|
<%
|
str=json
|
str=right(str,len(str)-instr(str,"[")+1)
|
str=left(str,InstrRev(str,"]"))
|
dim obj
|
set obj = getjson(str)
|
str0=""
|
for i=0 to obj.length-1
|
data_imei = obj.get(i).imei '设备IMEI
|
If data_imei=imeis Then
|
data_imei = obj.get(i).imei '设备IMEI
|
device_info = obj.get(i).device_info '0:正常数据 1:设备未上线 2:设备已过期 3:设备离线
|
data_lng = obj.get(i).lng '经度
|
data_lat = obj.get(i).lat '纬度
|
data_course = obj.get(i).course '航向
|
data_speed = obj.get(i).speed '速度
|
End if
|
|
Next
|
%>
|
|
<!DOCTYPE html>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
<meta http-equiv="refresh" content="10">
|
<style type="text/css">
|
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
|
#golist {display: none;}
|
@media (max-device-width: 780px){#golist{display: block !important;}}
|
</style>
|
<script type="text/javascript" src="http://api.map.baidu.com/api?type=quick&ak=TE9OTtYm29ALeP84zCsaGNCFxsBoCaj2&v=1.0"></script>
|
<title><%=CarLicense%>实时位置</title>
|
</head>
|
<body>
|
<div id="allmap"></div>
|
</body>
|
</html>
|
<script type="text/javascript">
|
// 百度地图API功能
|
var map = new BMap.Map("allmap");
|
map.centerAndZoom(new BMap.Point(<%=data_lng%>, <%=data_lat%>), 15);
|
|
map.addControl(new BMap.ZoomControl()); //添加地图缩放控件
|
var marker1 = new BMap.Marker(new BMap.Point(<%=data_lng%>, <%=data_lat%>)); //创建标注
|
map.addOverlay(marker1); // 将标注添加到地图中
|
//创建信息窗口
|
var infoWindow1 = new BMap.InfoWindow("<%=CarLicense%><br/>速度:<%=data_speed%>km/h");
|
marker1.addEventListener("click", function(){this.openInfoWindow(infoWindow1);});
|
</script>
|