DexExpress的mapcontrol根據經緯度在地圖上打點 C#地圖畫點 地圖標點

接着上一篇文章講,地圖實現顯示之後,可以通過經緯度進行打點操作,實現效果如圖:

在mapcontrol中添加一層

然後選擇MapItemStorage

之後可以通過添加MapBubble進行添加點

也可以使用map_dot這個方法實現,代碼如下:

 private void map_dot(double lat, double lon)
        {
            DevExpress.XtraMap.MapBubble mapBubble1 = new DevExpress.XtraMap.MapBubble();
            mapBubble1.Fill = System.Drawing.Color.Red;
            mapBubble1.Location = new DevExpress.XtraMap.GeoPoint(lat, lon);
            mapBubble1.Size = 10;
            this.mapItemStorage1.Items.Add(mapBubble1);
        }

這篇文章中提到的導航欄點擊使gridcontrol顯示https://mp.csdn.net/postedit/101680089,現在想同時通過導航欄的點擊在地圖上同步顯示所點擊的分類的數據到地圖上的對應位置,即更新地圖的打點,我的分類數據是存在DataTable中的,由於數據量小,每個欄一個datatable,因此需要用到DataTable的數據讀取,並顯示

 //顯示分區地圖打點
        private void show_dt(DataTable dt)
        {
            mapItemStorage1.Items.Clear();
            foreach (DataRow dataRow in dt.Rows)
            {
                string loc = dataRow["Location"].ToString();
                Regex reg = new Regex("lat\":(.+),.+long\":(.+)");
                Match match = reg.Match(loc);
                string lat = match.Groups[1].Value;
                string lon = match.Groups[2].Value;
                //Console.WriteLine(lat + "   " + lon);
                map_dot(Double.Parse(lat), Double.Parse(lon));
            }
        }

只要在分類的點擊事件加上這個調用就可以

        private void Click_all(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            
            gridControl1.DataSource = dt;
            show_dt(dt);
        }

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章