簡體   English   中英

在C#中更新GMap.NET標記

[英]Updating GMap.NET Markers in C#

我需要在C#中更新我的GMap.NET標記。 我添加了我的標記,如下所示:

GMap.NET.WindowsForms.GMapMarker marker2 =
                new GMap.NET.WindowsForms.Markers.GMarkerGoogle(
                    new GMap.NET.PointLatLng(39.81750, 30.52686),
                    new Bitmap("hello.png"));
            marker2.ToolTipText = "Hello";
            marker2.ToolTip.Fill = Brushes.Black;
            marker2.ToolTip.Foreground = Brushes.White;
            marker2.ToolTip.Stroke = Pens.Black;
            markers.Markers.Add(marker2);
            gMapControl1.Overlays.Add(markers); 

我想在計時器中更新此標記的位置。 如何在計時器線程中更改此變量? 我需要將這些標記作為全局變量嗎? 謝謝你的回答。

您需要將疊加層傳遞給計時器:

System.Timers.Timer t = new System.Timers.Timer();
GMapOverlay overlay_ = new GMapOverlay();
//do stuff to your overlay
t.Elapsed += (sender, e) => MyElapsedMethod(sender, e, overlay_);

你的疊加層都是引用,所以你可以簡單地更新標記,它應該在地圖上更新(假設你已經將它添加到gmapcontrol):

static void MyElapsedMethod(object sender, System.Timers.ElapsedEventArgs e, GMapOverlay overlay) 
{
     overlay.Markers[..].Position = new PointLatLng(0,0); //for your new position
}

我沒有測試過這段代碼,但是我使用后台工作程序做了類似的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM