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

Da Gambas-it.org - Wikipedia.
Versione del 17 dic 2019 alle 02:22 di Vuott (Discussione | contributi) (Creata pagina con "Per individuare su una ''MapView'' un punto geografico avendo: <BR>- l'Oggetto del punto iniziale; <BR>- l'angolo di declinazione rispetto all'asse della latitudine di tale pu...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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