主要功能与目的
利用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();
}