Winform C/S架構TMS物流運輸管理系統司機車輛GPS+手機APP定位參考設計


物流運輸管理系統TMS 司機車輛GPS+手機定位設計(C#源碼)

物流運輸管理系統(TMS)
 
適用於物流運輸公司、各企業下面的運輸車隊等,它主要包括訂單管理、配載作業、調度分配、行車管理、GPS車輛定位系統、車輛管理、人員管理、數據報表、基本信息維護、系統管理等模塊。該系統對車輛、駕駛員、線路等進行全面詳細的統計考核,能大大提高運作效率,降低運輸成本,使您在激烈的市場競爭中處於領先優勢。
 
物流運輸管理系統TMS 司機車輛GPS+手機定位設計(C#源碼)
 
 
TMS系統定位方式
 
傳統TMS系統采用GPS硬件模塊進行車輛定位,缺點是成本高。
 
我們的TMS系統采用雙終端定位方式,既車輛定位和APP定位。車輛定位采用中交興路第三方定位服務平台,TMS系統對接中交興路提供的定位服務接口,界面嵌入百度地圖即可實現定位。
 
 
TMS系統登錄界面
 
 
物流運輸管理系統(TMS) 司機車輛GPS手機定位設計
 
 
中交興路車輛定位,根據車牌號碼獲取車輛當前位置,如下圖:
 
 
貼圖圖片-物流運輸管理系統TMS司機車輛GPS手機定位設計2
 
 

C# Code:

/// <summary>
/// 根據車牌號查詢定位
/// </summary>
/// <param name="carNo"></param>
public void ShowLocation(string carNo)
{
  txtCarNo.Text = carNo;
  
  try
  {
    btnLocate.Enabled = false;
    CCursor.ShowWaitCursor();
    
    //調用WebApi接口獲取定位
     Firs95155Api.ModelLocation location = Get95155_Location(carNo);
    if (location == null) return;
    
    //智運開放平台除以600000得到84系坐標
     decimal lon = decimal.Parse(location.lon) / 600000;//經度115.83242333333333333333333333M
     decimal lat = decimal.Parse(location.lat) / 600000;//緯度28.036483333333333333333333333M
     string add = location.adr;
    
    DateTime locatTime = UtcToDateTime.ToDatetime(double.Parse(location.utc));
    locatTime = locatTime.AddHours(-8);
    
    lon = Math.Round(lon, 5);
    lat = Math.Round(lat, 5);
    
    //百度地圖顯示定位信息
     object[] args0 = { "1", lon, lat, locatTime.ToString("yyyy/MM/dd HH:mm:ss"), add };
    //webBrowser1.Refresh(WebBrowserRefreshOption.Normal);
     webBrowser1.Document.InvokeScript("clearOldPoints", null);
    webBrowser1.Document.InvokeScript("addMarker", args0);
    webBrowser1.Document.InvokeScript("setMapCenterPoint", args0);
    webBrowser1.Document.InvokeScript("addLine", null);
    
    Application.DoEvents();
    
    //自動生成跟蹤信息
     AddYDTraceLog(location.adr);
  }
  finally
  {
    btnLocate.Enabled = true;
    CCursor.ShowDefaultCursor();
  }
  
}

//來源:C/S框架網(www.csframework.com) QQ:23404761
 
位置信息模型

C# Code:

//定位節點模型 
public class ModelTraceNode
{
  public ModelTraceNode();
  
  public string agl { get; set; }
  public string gtm { get; set; }
  public string hgt { get; set; }
  public string lat { get; set; }
  public string lon { get; set; }
  public string mlg { get; set; }
  public string spd { get; set; }
}

//來源:C/S框架網(www.csframework.com) QQ:23404761
 
中交興路車輛行駛軌跡定位,顯示車輛指定時間區間的行駛軌跡,如下圖:
 


貼圖圖片-物流運輸管理系統TMS司機車輛GPS手機定位設計

 
 

C# Code:

/// <summary>
/// 顯示車輛行駛定位軌跡
/// </summary>
/// <param name="carNo">車牌號</param>
/// <param name="begin">開始時間</param>
/// <param name="end">結束時間</param>
public void ShowTrace(string carNo, DateTime begin, DateTime end)
{
  txtCarNo.Text = carNo;
  txtBegin.DateTime = begin;
  txtEnd.DateTime = end;
  
  //兼容,只差24小時內
   TimeSpan ts = end - begin;
  if (ts.TotalHours > 24) begin = end.AddHours(-23);
  
  try
  {
    btnTrace.Enabled = false;
    CCursor.ShowWaitCursor();
    
    List<ModelTraceNode> list = Get95155_Trace(carNo, begin, end);
    if (list == null || list.Count == 0) return;
    
    int count = (int)txtCount.Value;
    
    //最多顯示軌跡數量
     if (list.Count > count) list = GetList(list, count);
    
    decimal lon; decimal lat;
    object[] node;
    string addr;
    
    webBrowser1.Document.InvokeScript("clearOldPoints", null);
    
    //循環添加節點
     for (int i = 0; i <= count && i <= list.Count - 1; i++)
    {
      lon = decimal.Parse(list[i].lon) / 600000;
      lat = decimal.Parse(list[i].lat) / 600000;
      
      lon = Math.Round(lon, 5);
      lat = Math.Round(lat, 5);
      
      addr = "lon:" + (lon.ToString().Length > 11 ? lon.ToString().Substring(0, 11) : lon.ToString())
      + ",lat:" + (lat.ToString().Length > 11 ? lat.ToString().Substring(0, 11) : lat.ToString());
      
      node = new object[] { i, lon, lat, list[i].gtm, addr };
      //node = new object[] { i, lon, lat, "", "" };
       webBrowser1.Document.InvokeScript("addMarker", node);
    }
    
    webBrowser1.Document.InvokeScript("addLine", null);//繪制連接線 
    
    if (list.Count > 2)
    {
      lon = decimal.Parse(list[list.Count / 2].lon) / 600000;
      lat = decimal.Parse(list[list.Count / 2].lat) / 600000;
      lon = Math.Round(lon, 5);
      lat = Math.Round(lat, 5);
      object[] args0 = { lon, lat, "11" };//地圖居中顯示,取最中間的定位
       webBrowser1.Document.InvokeScript("setMapCenterPoint", args0);
    }
  }
  finally
  {
    btnTrace.Enabled = true;
    CCursor.ShowDefaultCursor();
  }
}

//來源:C/S框架網(www.csframework.com) QQ:23404761


APP終端定位,APP實時上報手機定位信息,若用戶關閉手機的定位服務,則不會上傳。


貼圖圖片-物流運輸管理系統TMS司機車輛GPS手機定位設計3
 
 
<本文完>
 

 
參考文章:
 
C/S系統開發框架成功案例-物流運輸管理系統(TMS)
 
 
 
WebApi開發框架成功案例-物流行業TMS系統+APP+微信小程序
 
 
 
WebApi開發框架成功案例-智運天下TMS系統APP項目截圖
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM