Differenze tra le versioni di "Individuare su una MapView un punto geografico avendo un punto iniziale, l'angolo di declinazione e la distanza"
Da Gambas-it.org - Wikipedia.
Riga 50: | 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), si impostano i gradi di declinazione e la distanza del punto iniziale rispetto a quello da individuare:''</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><B>From</b></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 |
Versione delle 18:21, 9 giu 2024
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": "979"]).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": "979"]
Al riguardo vedere: Conoscere la versione più recente di Google Maps satellite