zoukankan      html  css  js  c++  java
  • 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项目截图
     
  • 相关阅读:
    CPP STL学习笔记
    CPP 设计模式学习
    blackarch 安装指南
    通过 Http 请求获取 GitHub 文件内容
    实践
    升级
    部署-MySql 之Linux篇
    数据库
    RxJs
    Vue
  • 原文地址:https://www.cnblogs.com/jonnysun/p/12389388.html
Copyright © 2011-2022 走看看