Differenze tra le versioni di "Usare il Metodo 'AddPolyLine' di gb.map"
Riga 8: | Riga 8: | ||
− | + | Public Sub Form_Open() | |
With Me | With Me | ||
Riga 20: | Riga 20: | ||
End With | End With | ||
− | + | End | |
+ | |||
− | + | Public Sub MapView1_MouseWheel() | |
<FONT Color=gray>' ''Mostra il livello di zoom della mappa ad ogni rotazione della rotellina del mouse:''</font> | <FONT Color=gray>' ''Mostra il livello di zoom della mappa ad ogni rotazione della rotellina del mouse:''</font> | ||
Me.Text = "Zoom: " & CStr(MapView1.Map.Zoom) | Me.Text = "Zoom: " & CStr(MapView1.Map.Zoom) | ||
− | + | End | |
− | + | ||
+ | Public Sub MapView1_MouseDown() | ||
Dim pt As New Point(Mouse.X, Mouse.Y) | Dim pt As New Point(Mouse.X, Mouse.Y) | ||
Riga 36: | Riga 38: | ||
Me.Text = "Lat. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lat, "0.000000") & | Me.Text = "Lat. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lat, "0.000000") & | ||
" - Lon. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lon, "0.000000") | " - Lon. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lon, "0.000000") | ||
− | |||
− | |||
− | + | End | |
+ | |||
+ | |||
+ | Public Sub MapView1_MouseUp() | ||
Dim pt As New Point(Mouse.X, Mouse.Y) | Dim pt As New Point(Mouse.X, Mouse.Y) | ||
Riga 52: | Riga 55: | ||
Endif | Endif | ||
− | + | End | |
Riga 62: | Riga 65: | ||
− | + | Public Sub Form_Open() | |
− | + | ||
With Me | With Me | ||
.W = Screen.AvailableWidth | .W = Screen.AvailableWidth | ||
Riga 74: | Riga 77: | ||
End With | End With | ||
− | + | ||
+ | End | ||
+ | |||
− | + | Public Sub MapView1_MouseWheel() | |
<FONT Color=gray>' ''Mostra il livello di zoom della mappa ad ogni rotazione della rotellina del mouse:''</font> | <FONT Color=gray>' ''Mostra il livello di zoom della mappa ad ogni rotazione della rotellina del mouse:''</font> | ||
Me.Text = "Zoom: " & CStr(MapView1.Map.Zoom) | Me.Text = "Zoom: " & CStr(MapView1.Map.Zoom) | ||
− | + | End | |
+ | |||
− | + | Public Sub MapView1_MouseDown() | |
Dim pt As New Point(Mouse.X, Mouse.Y) | Dim pt As New Point(Mouse.X, Mouse.Y) | ||
Riga 91: | Riga 97: | ||
" - Lon. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lon, "0.000000") | " - Lon. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lon, "0.000000") | ||
− | + | End | |
− | + | ||
+ | Public Sub MapView1_MouseUp() | ||
Dim pt As New Point(Mouse.X, Mouse.Y) | Dim pt As New Point(Mouse.X, Mouse.Y) | ||
− | If Mouse. | + | If Mouse.Right Then |
With MapView1 | With MapView1 | ||
<FONT Color=gray>' ''Se gli elementi dell'array "mmpp" sono più di due, rimuove l'ultimo elemento che è stato aggiunto con la seconda riga di comando sottostante:''</font> | <FONT Color=gray>' ''Se gli elementi dell'array "mmpp" sono più di due, rimuove l'ultimo elemento che è stato aggiunto con la seconda riga di comando sottostante:''</font> | ||
Riga 111: | Riga 118: | ||
Endif | Endif | ||
− | + | End |
Versione delle 10:30, 30 dic 2023
Il Metodo ".AddPolyLine()" del Metodo ".AddShape()" della Classe Map consente di creare linee di collegamento fra i vari punti marcatori delle coordinate.
Esso si serve di un vettore di tipo MapPoint contenente due o più punti di coordinate di latitudine e longitudine.
Mostriamo di seguito un semplice esempio, nel quale cliccando con il tasto destro del mouse si individuano sulla MapView i punti delle coordinate che saranno collegati fra loro da una linea di forma frammentata.
Private MapView1 As MapView Private mmpp As New MapPoint[] 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", "http://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}") End With End Public Sub MapView1_MouseWheel() ' Mostra il livello di zoom della mappa ad ogni rotazione della rotellina del mouse: Me.Text = "Zoom: " & CStr(MapView1.Map.Zoom) End Public Sub MapView1_MouseDown() Dim pt As New Point(Mouse.X, Mouse.Y) ' Mostra la latitudine e la longitudine del punto ove si è cliccato: Me.Text = "Lat. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lat, "0.000000") & " - Lon. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lon, "0.000000") End Public Sub MapView1_MouseUp() Dim pt As New Point(Mouse.X, Mouse.Y) If Mouse.Right Then With MapView1 mmpp.Push(.Map.PixelToMapPointRel(pt)) .Map.AddShape("polyline").AddPolyLine("polyline", mmpp, Color.Red, 1, 4) .Refresh() .Map.Refresh() End With Endif End
Con disegno di un poligono mediante la chiusura temporanea della sua area sulla base dei punti stabiliti di volta in volta con il mouse
In quest'altro esempio usando il Metodo ".PolyLine()", se è stato cliccato con il tasto destro del mouse su più di due punti, viene disegnato il poligono, che ne deriva, mediante la chiusura temporanea della sua area con un segmento/lato aggiuntivo che collega l'ultimo punto immesso con il primo.
Private MapView1 As MapView Private mmpp As New MapPoint[] 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", "http://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}") End With End Public Sub MapView1_MouseWheel() ' Mostra il livello di zoom della mappa ad ogni rotazione della rotellina del mouse: Me.Text = "Zoom: " & CStr(MapView1.Map.Zoom) End Public Sub MapView1_MouseDown() Dim pt As New Point(Mouse.X, Mouse.Y) ' Mostra la latitudine e la longitudine del punto ove si è cliccato: Me.Text = "Lat. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lat, "0.000000") & " - Lon. " & Format(MapView1.Map.PixelToMapPointRel(pt).Lon, "0.000000") End Public Sub MapView1_MouseUp() Dim pt As New Point(Mouse.X, Mouse.Y) If Mouse.Right Then With MapView1 ' Se gli elementi dell'array "mmpp" sono più di due, rimuove l'ultimo elemento che è stato aggiunto con la seconda riga di comando sottostante: If mmpp.Count > 2 Then mmpp.Remove(mmpp.Max) mmpp.Push(.Map.PixelToMapPointRel(pt)) ' Se gli elementi dell'array "mmpp" sono più di due, aggiunge un elemento con coordinate eguali al primo punto di "MapPoint" per chiudere temporaneamente il poligono: If mmpp.Count > 2 Then mmpp.Push(mmpp[0]) ' Disegna l'attuale poligono in base ai punti sino ad ora impostati con il mouse sulla mappa: .Map.AddShape("polyline").AddPolyLine("polyline", mmpp, Color.Red, 1, 4) .Refresh() .Map.Refresh() End With Endif End