我正在使用GMap.NET代码来处理地图和标记.添加标记并对地图执行任何操作都不是从地图中删除单个标记的问题.我在Google上到处研究过从地图上删除标记,但删除标记似乎不是一个热门话题.
这是我用来添加的代码的片段.
private void AddMarker_ButtonClick(object sender, AddMarkerEventArgs e)
{
DBDictAdd("Marker", " ",e.Latitude, e.Longitude, true, "192.168.1.1");
m_dbMarkers.Insert(_table, dbmarkertable);
dbmarkertable.Clear();
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(e.Latitude, e.Longitude),
GMarkerGoogleType.green);
marker.ToolTip = new GMapRoundedToolTip(marker);
marker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
marker.Tag = MarkerIndex;
marker.ToolTipText = (marker.Position.ToString());
markersOverlay.Markers.Add(marker);
MarkerIndex++;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用SQLite将数据ID和其他信息存储到数据库中以供标记使用.我正在使用数据库方法,因为我需要使用标记位置存储更多信息.这部分代码有效.
我遇到的问题是调用标记信息,所以我可以删除它.我知道这两个电话存在.
markersOverlay.Markers.Remove();
markersOverlay.Markers.RemoveAt();
Run Code Online (Sandbox Code Playgroud)
我已经使用了该removeAt命令,但我必须手动完成,并注意到使用该removeAt(0)命令每次从该数组的第一个条目获取它.
这是我到目前为止所尝试的:
private void uxRemoveMarkerButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Select the marker to remove.");
uxGmap.OnMarkerClick += new MarkerClick(uxGmap_OnMarkerClick);
}
private void uxGmap_OnMarkerClick(object sender, EventArgs e)
{ …Run Code Online (Sandbox Code Playgroud)