<?php include "../inc/odbc.php"; ?>
|
<?php include "../inc/function.php"; ?>
|
<?php
|
$OrdID=empty($_REQUEST['OrdID'])!=false ? "" : $_REQUEST['OrdID'];
|
$time=empty($_REQUEST['UnixTime'])!=false ? "" : $_REQUEST['UnixTime'];
|
$sign=empty($_REQUEST['Sign'])!=false ? "" : $_REQUEST['Sign'];
|
$errcode=1;
|
$DispatchOrdState=0;
|
if ($OrdID=="" or $time=="" or $sign==""){
|
$errcode=40010;
|
$errmsg="invalid OrdID";
|
}
|
if ($sign!=MD5($OrdID.$time.$GPSKey)){
|
//$errcode=40005;
|
//$errmsg="invalid Sign";
|
}
|
|
//获取GPS access_token
|
Function GetAccess_token() {
|
$access_tokenID=4039; //对应数据库ID
|
global $conn;
|
global $account;
|
global $accountpass;
|
$sql = "select vtext,vMono from dictionary where id=".$access_tokenID;
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($rs = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
$access_token=$rs['vtext'];
|
$access_token_time=$rs['vMono'];
|
if(strtotime($access_token_time)<strtotime(date("y-m-d h:i:s"))){
|
$data_url="http://api.gpsoo.net/1/auth/access_token?account=".$account."&time=".time()."&signature=".MD5(MD5($accountpass).time());
|
//echo $data_url;exit;
|
$datainfo=file_get_contents($data_url);
|
$datainfo=json_decode($datainfo,true);
|
if ($datainfo['ret']==0){
|
$access_token=$datainfo['access_token'];
|
$sql="update dictionary set vtext='".$access_token."',vMono='".date("Y-m-d H:i:s",time()+7200)."' where id=".$access_tokenID;
|
$UPsql = sqlsrv_query($conn,$sql);
|
}else{
|
$errcode=40014;
|
$errmsg="GPS信息查询失败";
|
}
|
}
|
}
|
}
|
return $access_token;
|
}
|
|
if ($errcode==1) {
|
//调度单数据
|
//$sql="select DispatchOrdCarID from DispatchOrd where DispatchOrdState>=6 and DispatchOrdState<7 and DispatchOrdID=".$OrdID;
|
$sql="select DispatchOrdID,DispatchOrdCarID,CarLicense,DispatchOrdTraStreet,DispatchOrdTraVia,DispatchOrdTraEnd,DispatchOrdState from DispatchOrd,CarData where CarID=DispatchOrdCarID and DispatchOrdID=".$OrdID;
|
$data = sqlsrv_query($conn,$sql);
|
if($data == true){
|
if (sqlsrv_rows_affected($data)!=0) {
|
while($rs = sqlsrv_fetch_array($data) ) {
|
$CarID = $rs['DispatchOrdCarID']; //派遣车辆ID
|
$CarLicense = $rs['CarLicense']; //派遣车车辆牌
|
$webJson['CarLicense']=str_ireplace("(奔驰)","",$CarLicense);
|
$DispatchOrdTraStreet = $rs['DispatchOrdTraStreet'];//出发地
|
$DispatchOrdTraVia = $rs['DispatchOrdTraVia']; //途经
|
$DispatchOrdTraEnd = $rs['DispatchOrdTraEnd']; //目的地
|
$DispatchOrdState = $rs['DispatchOrdState']; //调度单状态
|
$webJson['DispatchOrdState']=$DispatchOrdState;
|
if ($DispatchOrdTraVia!=''){
|
$webJson['TraStreet'] = $DispatchOrdTraVia;
|
$webJson['TraEnd'] = $DispatchOrdTraEnd;
|
}else{
|
$webJson['TraStreet'] = $DispatchOrdTraStreet;
|
$webJson['TraEnd'] = $DispatchOrdTraEnd;
|
}
|
}
|
}else{
|
$errcode=40011;
|
$errmsg="转运未出车或已完成";
|
}
|
}
|
if ($errcode==1) {
|
//医院详细地址
|
$TraStreet=$webJson['TraStreet'];
|
$TraEnd=$webJson['TraEnd'];
|
if ($TraStreet!=''){
|
$sql="select TraStreet=(HopsProvince+HopsCity+HopsArea+HospAddress) from HospData where HospState=1 and HospName='".$TraStreet."'";
|
//echo $sql;
|
$data = sqlsrv_query($conn,$sql);
|
if($data == true){
|
if (sqlsrv_rows_affected($data)!=0) {
|
while($rs = sqlsrv_fetch_array($data) ) {
|
$TraStreet = $rs['TraStreet'];
|
}
|
}
|
}
|
}
|
if ($TraEnd!=''){
|
$sql="select TraEnd=(HopsProvince+HopsCity+HopsArea+HospAddress) from HospData where HospState=1 and HospName='".$TraEnd."'";
|
//echo $sql;
|
$data = sqlsrv_query($conn,$sql);
|
if($data == true){
|
if (sqlsrv_rows_affected($data)!=0) {
|
while($rs = sqlsrv_fetch_array($data) ) {
|
$TraEnd = $rs['TraEnd'];
|
}
|
}
|
}
|
}
|
|
//车辆数据
|
$sql="select CarLicense,GPS_IMEI from CarData where CarID=".$CarID;
|
//echo $sql;
|
$data = sqlsrv_query($conn,$sql);
|
if($data == true){
|
if (sqlsrv_rows_affected($data)!=0) {
|
while($rs = sqlsrv_fetch_array($data) ) {
|
$CarLicense = $rs['CarLicense'];
|
$imeis = $rs['GPS_IMEI'];
|
}
|
}else{
|
$errcode=40012;
|
$errmsg="车辆信息查询失败";
|
}
|
}
|
}
|
|
if ($errcode==1) {
|
if ($DispatchOrdState<7){
|
//当前GPS接口信息
|
$account="966120";
|
$accountpass="new966120";
|
$access_token=GetAccess_token();
|
$data_url='http://api.gpsoo.net/1/devices/tracking?access_token='.$access_token."&imeis=".$imeis."&map_type=BAIDU&time=".time();
|
$datainfo=file_get_contents($data_url);
|
$datainfo=json_decode($datainfo,true);
|
//var_dump($datainfo);exit;
|
if ($datainfo['ret']==0){
|
foreach ($datainfo['data'] as $ArrayValue) {
|
$webJson['method'] = $method;
|
$webJson['result'] = 1;
|
$webJson['data_imei'] = $ArrayValue['imei']; //设备IMEI
|
$webJson['device_info'] = $ArrayValue['device_info']; //0:正常数据 1:设备未上线 2:设备已过期 3:设备离线
|
|
$webJson['data_course'] = $ArrayValue['course']; //航向
|
$webJson['data_speed'] = $ArrayValue['speed']; //速度
|
if (floor((time()-$ArrayValue['gps_time'])/86400/60/60)<=90){
|
$webJson['CarLicense'] = $webJson['CarLicense']." 速度:".$ArrayValue['speed']."km/h";
|
}
|
|
//GPS坐标转腾讯坐标
|
$GPSdata_url='https://apis.map.qq.com/ws/coord/v1/translate?locations='.$ArrayValue['lat'].','.$ArrayValue['lng'].'&type=3&key=D56BZ-BFAHR-34GWH-WOM7M-H76VO-H6F4M';
|
$GPSdatainfo=file_get_contents($GPSdata_url);
|
$GPSdatainfo=json_decode($GPSdatainfo,true);
|
//var_dump($GPSdatainfo);exit;
|
if ($GPSdatainfo['status']==0){
|
foreach ($GPSdatainfo['locations'] as $ArrayGPSValue) {
|
$webJson['data_lat'] = $ArrayGPSValue['lat']; //纬度
|
$webJson['data_lng'] = $ArrayGPSValue['lng']; //经度
|
}
|
}else{
|
$webJson['data_lat'] = $ArrayValue['lat']; //纬度
|
$webJson['data_lng'] = $ArrayValue['lng']; //经度
|
}
|
}
|
}else{
|
$errcode=40013;
|
$errmsg="GPS信息查询失败";
|
}
|
}else{
|
//出发地坐标
|
$webJson['data_lng']='';
|
$webJson['data_lat']='';
|
$webJson['method'] = $method;
|
$webJson['result'] = 1;
|
$webJson['data_imei'] = ''; //设备IMEI
|
$webJson['device_info'] = 0; //0:正常数据 1:设备未上线 2:设备已过期 3:设备离线
|
|
$webJson['data_course'] = 0; //航向
|
$webJson['data_speed'] = 0; //速度
|
$webJson['CarLicense'] = $webJson['CarLicense']." (行程结束)";
|
$GPSdata_url='https://apis.map.qq.com/ws/geocoder/v1/?address='.$TraStreet.'&key=D56BZ-BFAHR-34GWH-WOM7M-H76VO-H6F4M';
|
$GPSdatainfo=file_get_contents($GPSdata_url);
|
$GPSdatainfo=json_decode($GPSdatainfo,true);
|
//var_dump($GPSdatainfo);//exit;
|
if ($GPSdatainfo['status']==0){
|
//var_dump($GPSdatainfo['result']['location']);//exit;
|
foreach ($GPSdatainfo['result']['location'] as $ArrayGPSEndValue) {
|
if ($webJson['data_lng']==''){$webJson['data_lng'] = $ArrayGPSEndValue;} //经度
|
else {$webJson['data_lat']= $ArrayGPSEndValue;} //纬度
|
}
|
}
|
}
|
|
//目的地坐标
|
$webJson['TraEnd_lat']='';
|
$webJson['TraEnd_lng']='';
|
if ($DispatchOrdState<6 and $TraStreet!='') {
|
$GPSdata_url='https://apis.map.qq.com/ws/geocoder/v1/?address='.$TraStreet.'&key=D56BZ-BFAHR-34GWH-WOM7M-H76VO-H6F4M';
|
$GPSdatainfo=file_get_contents($GPSdata_url);
|
$GPSdatainfo=json_decode($GPSdatainfo,true);
|
//var_dump($GPSdatainfo);//exit;
|
if ($GPSdatainfo['status']==0){
|
//var_dump($GPSdatainfo['result']['location']);//exit;
|
foreach ($GPSdatainfo['result']['location'] as $ArrayGPSEndValue) {
|
if ($webJson['TraEnd_lng']==''){$webJson['TraEnd_lng'] = $ArrayGPSEndValue;} //经度
|
else {$webJson['TraEnd_lat']= $ArrayGPSEndValue;} //纬度
|
}
|
}
|
}elseif ($DispatchOrdState>=6 and $TraEnd!=''){
|
$GPSdata_url='https://apis.map.qq.com/ws/geocoder/v1/?address='.$TraEnd.'&key=D56BZ-BFAHR-34GWH-WOM7M-H76VO-H6F4M';
|
$GPSdatainfo=file_get_contents($GPSdata_url);
|
$GPSdatainfo=json_decode($GPSdatainfo,true);
|
//var_dump($GPSdatainfo);//exit;
|
if ($GPSdatainfo['status']==0){
|
//var_dump($GPSdatainfo['result']['location']);//exit;
|
foreach ($GPSdatainfo['result']['location'] as $ArrayGPSEndValue) {
|
if ($webJson['TraEnd_lng']==''){$webJson['TraEnd_lng'] = $ArrayGPSEndValue;} //经度
|
else {$webJson['TraEnd_lat']= $ArrayGPSEndValue;} //纬度
|
}
|
}
|
|
}
|
|
}
|
}
|
|
If (substr($errcode,0,1)=="4") {
|
$webJson['result'] = 2;
|
$webJson['errcode'] = $errcode;
|
$webJson['errmsg'] = $errmsg;
|
}
|
|
|
|
echo json_encode($webJson,JSON_UNESCAPED_UNICODE);
|
?>
|