Differenze tra le versioni di "Individuare le coordinate geografiche su una MapView dal puntatore del mouse"
(Creata pagina con "Per individuare le coordinate geografiche in gradi decimali (DD) dal puntatore del mouse posto su una ''MapViewer'', è necessario prima assegnare alle proprietà ".X" e ".Y"...") |
|||
Riga 9: | Riga 9: | ||
Print " Latitudine "; MapView1.Map.PixelToMapPointRel(pt).Lat; " - Longitudine "; MapView1.Map.PixelToMapPointRel(pt).Lon | Print " Latitudine "; MapView1.Map.PixelToMapPointRel(pt).Lat; " - Longitudine "; MapView1.Map.PixelToMapPointRel(pt).Lon | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | ===Ottenere le coordinate geografiche passando il puntatore del mouse sulla mappa=== | ||
+ | In questo esempio pratico si otterranno le coordinate geografiche semplicemente passando il puntatore del mouse sulla mappa (<SPAN Style="text-decoration:underline">non</span> è necessario tenere premuto un tasto del mouse mentre lo si sposta). | ||
+ | Private MapView1 As MapView | ||
+ | |||
+ | |||
+ | '''Public''' Sub _new() | ||
+ | |||
+ | With Me | ||
+ | .W = Screen.AvailableWidth | ||
+ | .H = Screen.AvailableHeight | ||
+ | .Arrangement = Arrange.Fill | ||
+ | End With | ||
+ | With MapView1 = New MapView(Me) As "MapView1" | ||
+ | .X = 0 | ||
+ | .Y = 0 | ||
+ | End With | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | '''Public''' Sub Form_Open() | ||
+ | |||
+ | With MapView1.Map | ||
+ | .AddTile("Open Topo", "https://a.tile.opentopomap.org/{z}/{x}/{y}.png") | ||
+ | .Zoom = 15 | ||
+ | .Center = MapPoint(41.89018, 12.49230) | ||
+ | End With | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | '''Public''' Sub MapView1_MouseMove() | ||
+ | |||
+ | Dim pt As New Point(Mouse.X, Mouse.Y) | ||
+ | Dim mp As MapPoint = MapView1.Map.PixelToMapPointRel(pt) | ||
+ | |||
+ | Me.Text = "Lat. = " & Format(mp.Lat, "#.000000") & " " & "Lon. = " & Format(mp.Lat, "#.000000") | ||
'''End''' | '''End''' |
Versione delle 13:16, 17 ott 2021
Per individuare le coordinate geografiche in gradi decimali (DD) dal puntatore del mouse posto su una MapViewer, è necessario prima assegnare alle proprietà ".X" e ".Y" di un oggetto della Classe Point il valore risultante rispettivamente dalla proprietà "Mouse.X" e "Mouse.Y", successivamente passare tale oggetto Point al Metodo "MapView1.Map.PixelToMapPointRel( )" leggendo contestualmente la proprietà ".Lat", per ottenere la "Latitudine", la proprietà ".Lon", per ottenere la "Longitudine".
Ovviamente le proprietà "Mouse.X" e "Mouse.Y" dovranno essere presenti e lette all'interno di un evento del mouse.
Mostriamo un semplice esempio:
Public Sub MapView1_MouseUp() Dim pt As New Point(Mouse.X, Mouse.Y) Print " Latitudine "; MapView1.Map.PixelToMapPointRel(pt).Lat; " - Longitudine "; MapView1.Map.PixelToMapPointRel(pt).Lon End
Ottenere le coordinate geografiche passando il puntatore del mouse sulla mappa
In questo esempio pratico si otterranno le coordinate geografiche semplicemente passando il puntatore del mouse sulla mappa (non è necessario tenere premuto un tasto del mouse mentre lo si sposta).
Private MapView1 As MapView Public Sub _new() With Me .W = Screen.AvailableWidth .H = Screen.AvailableHeight .Arrangement = Arrange.Fill End With With MapView1 = New MapView(Me) As "MapView1" .X = 0 .Y = 0 End With End Public Sub Form_Open() With MapView1.Map .AddTile("Open Topo", "https://a.tile.opentopomap.org/{z}/{x}/{y}.png") .Zoom = 15 .Center = MapPoint(41.89018, 12.49230) End With End Public Sub MapView1_MouseMove() Dim pt As New Point(Mouse.X, Mouse.Y) Dim mp As MapPoint = MapView1.Map.PixelToMapPointRel(pt) Me.Text = "Lat. = " & Format(mp.Lat, "#.000000") & " " & "Lon. = " & Format(mp.Lat, "#.000000") End