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项目截图
 

 

posted @ 2020-03-01 13:29  C/S框架网  阅读(1738)  评论(0编辑  收藏  举报