Я использую версию Gmap.NET для WinForm. Я создаю 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