基於GMap.net開發 車載即時定位跟蹤

來源:互聯網
上載者:User

主要功能與目的

利用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();
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.