【发布时间】:2019-01-04 21:59:19
【问题描述】:
我正在使用 Gmap.NET 的 WinForm 版本。我正在做的是为每个标记创建 1 个叠加层,然后将其添加到我的地图控件中。这显着减少了我程序中的延迟。现在唯一的问题是,如果我想隐藏一个叠加层,我有多个叠加层,我必须使用索引号来隐藏那个 1 个叠加层。
这就是我将标记添加到我的地图的操作。我为每个标记创建 1 个叠加层:(伪代码)
For (int i = 0; i >= dataset.rows.count; i++)
{
for each row in dataset
create overlay("stores")
add overlay to map
create marker(GPS from dataset)
addMarkerToOverlay
}
现在,如果我想隐藏某些商店,可能来自不同的州,我必须这样做MapControl.Overlays(index).IsVisible = False。
这是一个问题,因为我有 100 多个叠加层。
如果我创建 1 个单一叠加层并将所有标记添加到其中,WinForm 几乎会冻结和滞后,以至于无法使用。
我想知道是否有其他人以前使用过 Gmaps.NET,或者知道我可以通过什么方式来提高性能?将所有标记放在 1 个单一叠加层上会很好,这样我就可以隐藏 1 个叠加层,这将隐藏所有标记。
这是我的真实代码:
Dim i As Integer = (DS.Tables(0).Rows.Count - 1)
Do While (i >= 0)
Dim lat As Double = DS.Tables(0).Rows(i)(1)
Dim lng As Double = DS.Tables(0).Rows(i)(2)
Dim StoreOverlay As GMapOverlay = New GMapOverlay("Stores")
map.Overlays.Add(StoreOverlay)
Dim marker As GMapPoint
marker = New GMapPoint(New PointLatLng(lat, lng), 15)
StoreOverlay.Markers.Add(marker)
i = (i - 1)
Loop
【问题讨论】:
标签: gmap.net