zoukankan      html  css  js  c++  java
  • 基于GMap.net开发 车载实时定位跟踪

    主要功能与目的

    利用RFID+GPS实现待定位车辆的实时定位于轨迹跟踪

    实现了基于Gmap.net控件Map常规应用

    利用外接短信设备实现车辆打卡信息实时通报

    登录

    主页

    信息管理

    代码分析:

    Gmap部分

    #region    gmap初始化

    SuspendLayout();
    MainMap = new GMapControl();
    {
    //Google中国地图。
    MainMap.BackColor = Color.Green;
    MainMap.Manager.Mode = AccessMode.ServerAndCache; //设置控件的管理模式
    MainMap.MapProvider = GMapProviders.GoogleChinaMap;//设置控件显示的地图来源
    MainMap.Position = new PointLatLng(30.505, 114.397);//设置控件显示的当前中心位置
    MainMap.MinZoom = 1;//设置控件最小的缩放比例
    MainMap.MaxZoom = 19;//设置控件最大的缩放比例
    MainMap.Zoom = 10;//设置控件当前的缩放比例
    MainMap.Dock = DockStyle.Fill;
    MainMap.MarkersEnabled = true;
    toolStripStatusLabel5.Text = "东经:" + MainMap.Position.Lng.ToString() + " 北纬:" + MainMap.Position.Lat.ToString();
    }
    //地图默认语言类型
    GMapProvider.Language = LanguageType.ChineseSimplified;
    //最上层的图标显示。
    Cursor.Current = Cursors.WaitCursor;
    var current = new PointLatLng(MainMap.Position.Lat, MainMap.Position.Lng);//创建一个新坐标点
    var currentMark = new GMapMarkerGoogleGreen(current);//创建一个新标记
    var overlay = new GMapOverlay(MainMap, "current");//创建一个新图层

    overlay.Markers.Add(currentMark);
    MainMap.Overlays.Add(overlay);
    Cursor.Current = Cursors.Default;
    //用户双击标记选中点。并获得当前的经纬度。
    {
    MainMap.MouseDoubleClick += new MouseEventHandler(MainMap_MouseDoubleClick);
    }
    gMapControl1.Controls.Add(MainMap);
    ResumeLayout(true);

    objects = new GMapOverlay(this.gMapControl1, "objects");
    this.gMapControl1.Overlays.Add(objects);
    GMapMarkerRect rect = new GMapMarkerRect(MainMap.Position);
    rect.Size = new System.Drawing.Size(0, 0);
    rect.ToolTipText = "武汉市";
    rect.ToolTipMode = MarkerTooltipMode.Always;
    overlay.Markers.Add(rect);
    MainMap.DragButton = MouseButtons.Left;
    this.Center = new GMapMarkerCross(MainMap.Position);
    overlay.Markers.Add(Center);

    #endregion

    根据经纬度值来获取地址

    private void button2_Click(object sender, EventArgs e)
    {
    WebClient client = new WebClient();//webclient客户端对象
    string url = "http://maps.google.com/maps/api/geocode/xml?latlng=30.507814,114.394583&language=zh-CN&sensor=false";//请求地址
    client.Encoding = Encoding.UTF8;//编码格式
    string responseTest = client.DownloadString(url);//下载xml响应数据

    XmlDocument doc = new XmlDocument();//创建XML文档对象

    if (!string.IsNullOrEmpty(responseTest))
    {
    doc.LoadXml(responseTest);//加载xml字符串

    //获取状态信息
    string xpath = @"GeocodeResponse/status";
    XmlNode node = doc.SelectSingleNode(xpath);
    string status = node.InnerText.ToString();

    if (status == "OK")
    {
    //获取地址信息
    xpath = @"GeocodeResponse/result/formatted_address";
    node = doc.SelectSingleNode(xpath);
    string address = node.InnerText.ToString();

    Console.WriteLine("地址:{0}", address);//输出地址信息
    }

    }


    Console.Read();
    }

  • 相关阅读:
    jwt的简单使用
    使用golang对海康sdk进行业务开发
    产品项目开发流程
    Unity在场景切换之间清理下内存
    Unity3d中第三人称摄像机跟随的实现
    unity3d中利用网格去绘制血条
    java内存泄露原因简单总结
    线程安全的多参构建器实现
    java单例模式,多线程下实现
    forward和redirect的简单区别
  • 原文地址:https://www.cnblogs.com/chenjq0717/p/2478200.html
Copyright © 2011-2022 走看看