Individuare su una MapView un punto geografico avendo un punto iniziale, l'angolo di declinazione e la distanza: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (6 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
Per individuare su una ''MapView'' un punto geografico avendo: | Per individuare su una ''MapView'' un punto geografico avendo: | ||
<BR>- | <BR>- il punto iniziale (Pi); | ||
<BR>- l'angolo di declinazione rispetto all'asse della latitudine di tale punto; | <BR>- l'angolo (a) di declinazione rispetto all'asse della latitudine (AL) di tale punto; | ||
<BR>- la distanza tra il punto iniziale e il punto da individuare; | <BR>- la distanza (D) tra il punto iniziale e il punto da individuare (Pf); | ||
AL | |||
| '''Pf''' | |||
| / | |||
| / | |||
|^^/D | |||
|a/ | |||
|/ | |||
'''Pi''' | |||
si dovrà utilizzare il Metodo ".From()" della Classe ''MapPoint''. | |||
Vediamo un esempio <SUP>[[[#Note|nota 1]]]</sup> (basterà cliccare una sola volta con il tasto destro del mouse, per vedere individuato sulla ''MapView'' il secondo punto): | Vediamo un esempio <SUP>[[[#Note|nota 1]]]</sup> (basterà cliccare una sola volta con il tasto destro del mouse, per vedere individuato sulla ''MapView'' il secondo punto): | ||
| Riga 25: | Riga 33: | ||
With MapView1.Map | With MapView1.Map | ||
.AddTile("GoogleMap", "https://khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": " | .AddTile("GoogleMap", "https://khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "999"]).SubDomains = ["0", "1", "2"] | ||
.Zoom = 15 | .Zoom = 15 | ||
.Center = MapPoint(41.89018, 12.49230) | .Center = MapPoint(41.89018, 12.49230) | ||
| Riga 42: | Riga 50: | ||
<FONT Color=gray>' ''Per individuare il primo punto (iniziale):''</font> | <FONT Color=gray>' ''Per individuare il primo punto (iniziale):''</font> | ||
mmpp.Push(.Map.PixelToMapPointRel(pt)) | mmpp.Push(.Map.PixelToMapPointRel(pt)) | ||
<FONT Color=gray>' ''Per individuare il secondo punto (finale):''</font> | <FONT Color=gray>' ''Per individuare il secondo punto (finale), si impostano i <FONT Color=darkorange>gradi di declinazione</font> e la <FONT Color=darkgreen>distanza</font> del punto iniziale rispetto a quello da individuare:''</font> | ||
mmpp.Push(MapPoint.<FONT Color=#B22222>From</font>(mmpp[mmpp.Max], 47.83, 2181.969)) | mmpp.Push(MapPoint.<FONT Color=#B22222><B>From</b></font>(mmpp[mmpp.Max], <FONT Color=darkorange>47.83</font>, <FONT Color=darkgreen>2181.969</font>)) | ||
<FONT Color=gray>' ''Mostra le coordinate geografiche del secondo punto (finale):''</font> | <FONT Color=gray>' ''Mostra le coordinate geografiche del secondo punto (finale):''</font> | ||
Print mmpp[mmpp.Max].lat, mmpp[mmpp.Max].Lon | Print mmpp[mmpp.Max].lat, mmpp[mmpp.Max].Lon | ||
| Riga 60: | Riga 68: | ||
=Note= | =Note= | ||
[1] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla in questa parte del codice: ["version": " | [1] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla in questa parte del codice: ["version": "999"] | ||
<BR>Al riguardo vedere: [[Conoscere la versione più recente di Google Maps satellite]] | <BR>Al riguardo vedere: [[Conoscere la versione più recente di Google Maps satellite]] | ||
Versione attuale delle 00:54, 27 lug 2025
Per individuare su una MapView un punto geografico avendo:
- il punto iniziale (Pi);
- l'angolo (a) di declinazione rispetto all'asse della latitudine (AL) di tale punto;
- la distanza (D) tra il punto iniziale e il punto da individuare (Pf);
AL | Pf | / | / |^^/D |a/ |/ Pi
si dovrà utilizzare il Metodo ".From()" della Classe MapPoint.
Vediamo un esempio [nota 1] (basterà cliccare una sola volta con il tasto destro del mouse, per vedere individuato sulla MapView il secondo punto):
Private MapView1 As MapView
Public Sub _new()
With Me
.W = Screen.AvailableWidth
.H = Screen.AvailableHeight
.Arrangement = Arrange.Fill
End With
MapView1 = New MapView(Me) As "MapView1"
End
Public Sub Form_Open()
With MapView1.Map
.AddTile("GoogleMap", "https://khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "999"]).SubDomains = ["0", "1", "2"]
.Zoom = 15
.Center = MapPoint(41.89018, 12.49230)
End With
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), si impostano i gradi di declinazione e la distanza del punto iniziale rispetto a quello da individuare:
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
Note
[1] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla in questa parte del codice: ["version": "999"]
Al riguardo vedere: Conoscere la versione più recente di Google Maps satellite