Differenze tra le versioni di "Ottenere la Latitudine e la Longitudine del punto sulla mappa cliccato con il puntatore del mouse"

Da Gambas-it.org - Wikipedia.
 
Riga 6: Riga 6:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With Me
 
   With Me
Riga 19: Riga 19:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub MapView1_MouseUp()
+
   
 +
Public Sub MapView1_MouseUp()
 
   
 
   
 
   Dim <FONT Color=darkgreen>pt</font> As New <FONT Color=darkgreen><B>Point</b></font>(<FONT Color=darkorange>Mouse.X</font>, <FONT Color=darkorange>Mouse.Y</font>)
 
   Dim <FONT Color=darkgreen>pt</font> As New <FONT Color=darkgreen><B>Point</b></font>(<FONT Color=darkorange>Mouse.X</font>, <FONT Color=darkorange>Mouse.Y</font>)
Riga 31: Riga 32:
 
   Me.Text = Format(<FONT Color=red>mp</font><FONT Color=blue><B>.Lat</b></font>, "0.000000") & "  " & Format(<FONT Color=red>mp</font><FONT Color=blue><B>.Lon</b></font>, "0.000000")
 
   Me.Text = Format(<FONT Color=red>mp</font><FONT Color=blue><B>.Lat</b></font>, "0.000000") & "  " & Format(<FONT Color=red>mp</font><FONT Color=blue><B>.Lon</b></font>, "0.000000")
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 05:19, 18 gen 2024

Per ottenere la Latitudine e la Longitudine del punto sulla mappa, ove si è cliccato con il puntatore del mouse, è necessario usare il Metodo ".PixelToMapPointRel()" della Classe "Map" del Componente "gb.map", al quale va passato un Oggetto di tipo "Point" che dovrà contenere i valori delle Proprietà ".X" e ".Y" della Classe "Mouse".
Infatti detto Metodo converte le coordinate della superficie grafica, utilizzata per mostrare la mappa, in coordinate geografiche e restituisce un Oggetto di tipo della Classe "MapPoint", dalle cui Proprietà ".Lat" e ".Lon" si otterranno i valori dunque rispettivamente della Latitudine e della Longitudine del punto della mappa ove si è cliccato.

Mostriamo un semplice esempio:

Private MapView1 As MapView


Public Sub Form_Open()

 With Me
  .W = Screen.AvailableWidth
  .H = Screen.AvailableHeight
  .Arrangement = Arrange.Fill
 End With
 With MapView1 = New MapView(Me) As "MapView1"
   .Map.AddTile("GoogleMap", "https://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}")
   .Map.Zoom = 15
   .Map.Center = New MapPoint(41.89018, 12.49230)
 End With

End


Public Sub MapView1_MouseUp()

 Dim pt As New Point(Mouse.X, Mouse.Y)
 Dim mp As MapPoint

 mp = MapView1.Map.PixelToMapPointRel(pt)

' Mostra nell'intestazione della finestra principale il valore della Latitudine e della Longitudine:
 Me.Text = Format(mp.Lat, "0.000000") & "   " & Format(mp.Lon, "0.000000")

End