基于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();
}

转载于:https://www.cnblogs.com/chenjq0717/archive/2012/05/01/2478200.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值