Как получить индекс существующего маркера на GMap. net, используя vb. net? - PullRequest
0 голосов
/ 20 апреля 2020

Я подаю заявку на vb. net, используя библиотеку GMap. net. Я сделал кнопку (btnRemove), которая при каждом нажатии на нее удаляет маркер, указанный в TextBox1, вот код:

Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
    If TextBox1.Text < map.Overlays.Count.ToString() Then
        map.Overlays.RemoveAt(TextBox1.Text)
        map.Refresh()
    End If
End Sub

Где map - это GMapControl, где я отображать маркеры.

Это работает отлично и заставляет меня думать, что каждый маркер, который я создаю на карте, имеет индекс, который идет от 0 до map.Overlays.count.ToString () - 1 и изменяется всякий раз, когда маркер с более низким индексом удаляется (как массив).

Мне было интересно, как я могу получить индекс, нажав на маркер и показывая его на MsgBox?

Public Sub gMapControl_OnMarkerClick(item As GMapMarker, e As MouseEventArgs) Handles map.OnMarkerClick
   MsgBox(***index of the marker***)
End Sub

I покидаю процедуру создания маркеров, если она может быть полезна:

Public Sub AddMarker(pointToAdd As PointLatLng, markerType As GMarkerGoogleType)

    Dim markers = New GMapOverlay("markers")
    Dim marker = New GMarkerGoogle(pointToAdd, markerType)

    marker.ToolTipText = $"Latitudine: {map.Position.Lat }" + vbCrLf + $"Longitudine: {map.Position.Lng}"

    Dim toolTip = New GMapToolTip(marker)
    toolTip.Fill = New SolidBrush(Color.Blue)
    toolTip.Foreground = New SolidBrush(Color.WhiteSmoke)

    marker.ToolTip = toolTip
    markers.Markers.Add(marker)
    map.Overlays.Add(markers)
End Sub

Спасибо

...