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.
 
(18 versioni intermedie di uno stesso utente non sono mostrate)
Riga 3: Riga 3:
 
<BR>- l'angolo di declinazione rispetto all'asse della latitudine di tale punto;
 
<BR>- l'angolo di declinazione rispetto all'asse della latitudine di tale punto;
 
<BR>- la distanza tra il punto iniziale e il punto da individuare;
 
<BR>- la distanza tra il punto iniziale e il punto da individuare;
<BR>si dovrà utilizzare il Metodo "''.From( )''" della Classe ''MapPoint''.
+
<BR>si dovrà utilizzare il Metodo ".From( )" della Classe ''MapPoint''.
  
Vediamo un esempio <SUP>&#091;[[#Note|Nota 1]]&#093;</sup> (basterà cliccare una sola volta con il tasto destro del mouse, per vedere individuato sulla ''MapView'' il secondo punto):
+
Vediamo un esempio <SUP>&#091;[[#Note|nota 1]]&#093;</sup> (basterà cliccare una sola volta con il tasto destro del mouse, per vedere individuato sulla ''MapView'' il secondo punto):
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
   MapView1.Map.AddTile("GoogleMap", "https&#058;//khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "860"]).SubDomains = ["0", "1", "2"]
+
   MapView1.Map.AddTile("GoogleMap", "https&#058;//khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "979"]).SubDomains = ["0", "1", "2"]
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub MapView1_MouseUp()
+
  Public Sub MapView1_MouseUp()
 
    
 
    
 
   Dim pt As New Point(Mouse.X, Mouse.Y)
 
   Dim pt As New Point(Mouse.X, Mouse.Y)
Riga 23: Riga 23:
 
       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):''</font>
    mmpp.Push(MapPoint.<FONT Color=#B22222>From</font>(mmpp[mmpp.Max], 47.83, 2181.969))
+
      mmpp.Push(MapPoint.<FONT Color=#B22222>From</font>(mmpp[mmpp.Max], 47.83, 2181.969))
 
  <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
 
  <FONT Color=gray>' ''Per disegnare il punto finale:''</font>
 
  <FONT Color=gray>' ''Per disegnare il punto finale:''</font>
    .Map.AddShape("punto").AddPoint("punto", mmpp[mmpp.Max], Color.Red, Null)
+
      .Map.AddShape("punto").AddPoint("punto", mmpp[mmpp.Max], Color.Red, Null)
 
  <FONT Color=gray>' ''Per disegnare la linea congiungente i due punti:''</font>
 
  <FONT Color=gray>' ''Per disegnare la linea congiungente i due punti:''</font>
    .Map.AddShape("polyline").AddPolyLine("polyline", mmpp, Color.Red, 2, 4)
+
      .Map.AddShape("polyline").AddPolyLine("polyline", mmpp, Color.Red, 2, 4)
    .Refresh()
+
      .Refresh()
    .Map.Refresh()
+
      .Map.Refresh()
 
     End With   
 
     End With   
 
   Endif
 
   Endif
 
    
 
    
  '''End'''
+
  End
 
 
  
  
  
 
=Note=
 
=Note=
 
+
[1] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla in questa parte del codice: ["version": "979"]
[1] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla qui: ["version": "860"]
+
<BR>Al riguardo vedere: [[Conoscere la versione più recente di Google Maps satellite]]
<BR>Al riguardo vedere: https://www.gisenglish.com/2018/06/download-sas-planet-nightly-all.html
 

Versione attuale delle 18:29, 2 mag 2024

Per individuare su una MapView un punto geografico avendo:
- l'Oggetto del punto iniziale;
- l'angolo di declinazione rispetto all'asse della latitudine di tale punto;
- la distanza tra il punto iniziale e il punto da individuare;
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):

Public Sub Form_Open()
 
 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"]
 
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):
     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