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