Individuare su una MapView un punto geografico avendo un punto iniziale, l'angolo di declinazione e la distanza

Da Gambas-it.org - Wikipedia.

Per individuare su una MapView un punto geografico avendo:
- l'Oggetto del punto iniziale;
- l'angolo di declinazione rispetto all'asse della latitudine di tale punto;
- la distanza tra il punto iniziale e il punto da individuare;
si dovrà utilizzare il Metodo ".From( )" della Classe MapPoint.

Vediamo un esempio (basterà cliccare una sola volta con il tasto destro del mouse, per vedere individuato sulla MapView il secondo punto):

Public Sub Form_Open()
 
 MapView1.Map.AddTile("GoogleMap", "https://khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "859"]).SubDomains = ["0", "1", "2"]
 
End


Public Sub MapView1_MouseUp()
 
 Dim pt As New Point(Mouse.X, Mouse.Y)
 Dim mmpp As New MapPoint[]
 
 If Mouse.Right Then
   With MapView1
' Per individuare il primo punto (iniziale):
     mmpp.Push(.Map.PixelToMapPointRel(pt))
' Per individuare il secondo punto (finale):
   mmpp.Push(MapPoint.From(mmpp[mmpp.Max], 47.83, 2181.969))
' Mostra le coordinate geografiche del secondo punto (finale):
   Print mmpp[mmpp.Max].lat, mmpp[mmpp.Max].Lon
' Per disegnare il punto finale:
   .Map.AddShape("punto").AddPoint("punto", mmpp[mmpp.Max], Color.Red, Null)
' Per disegnare la linea congiungente i due punti:
   .Map.AddShape("polyline").AddPolyLine("polyline", mmpp, Color.Red, 2, 4)
   .Refresh()
   .Map.Refresh()
   End With  
 Endif
  
End