Differenze tra le versioni di "Rendere trasparente la mappa mostrata da una MapView"

Da Gambas-it.org - Wikipedia.
Riga 4: Riga 4:
  
 
Mostriamo di seguito un semplice esempio, nel quale si farà vedere un'immagine, caricata in un oggetto ''PictureBox'', al di sotto della mappa dell'isola di Linosa, ripresa da satellite, mostrata su una ''MapView''.
 
Mostriamo di seguito un semplice esempio, nel quale si farà vedere un'immagine, caricata in un oggetto ''PictureBox'', al di sotto della mappa dell'isola di Linosa, ripresa da satellite, mostrata su una ''MapView''.
<BR>Inoltre, cliccando su un qualunque punto dell'oggetto ''MapView'' (compresa la parte sovrastante la ''PictureBox'', saranno mostrate in console le coordinate geografiche del punto cliccato con il puntatore del mouse.
+
<BR>Inoltre, cliccando su un qualunque punto dell'oggetto ''MapView'' (compresa la parte sovrastante la ''PictureBox'', saranno mostrate in console le coordinate geografiche del punto cliccato con il puntatore del mouse. <SUP>&#091;[[#Note|Nota 2]]&#093;</sup>
 
  '''Public''' Sub Form_Open()
 
  '''Public''' Sub Form_Open()
 
    
 
    
Riga 19: Riga 19:
 
   With MapView1
 
   With MapView1
 
     <FONT Color=#B22222>.Background = Color.Transparent</font>
 
     <FONT Color=#B22222>.Background = Color.Transparent</font>
     .Map.AddTile("GoogleMaps", "https&#058;//khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "859"])
+
     .Map.AddTile("GoogleMaps", "https&#058;//khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "860"])
 
     .Map["GoogleMaps"].SubDomains = ["0", "1", "2"]
 
     .Map["GoogleMaps"].SubDomains = ["0", "1", "2"]
 
     <FONT Color=#B22222>.Map["GoogleMaps"].Opacity = 0.6</font>
 
     <FONT Color=#B22222>.Map["GoogleMaps"].Opacity = 0.6</font>
Riga 42: Riga 42:
 
=Note=
 
=Note=
 
[1] Si ringrazia il membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] per il suo contributo di idee.
 
[1] Si ringrazia il membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] per il suo contributo di idee.
 +
 +
[2] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla in questo punto: ["version": "860"]
 +
<BR>Al riguardo vedere: https://www.gisenglish.com/2018/06/download-sas-planet-nightly-all.html

Versione delle 03:07, 14 gen 2020

E' possibile rendere trasparente la mappa mostrata da una MapView, al fine ad esempio di far vedere contemporaneamente e al di sotto di tale oggetto un'altra immagine. [Nota 1]

Essenzialmente è necessario assegnare alla proprietà "MapView.Background" il valore della costante Color.Transparent, e assegnare alla proprietà ".Opacity" del " "Tile" dell'oggetto ".Map" un valore compreso tra 0,00 e 1,00.

Mostriamo di seguito un semplice esempio, nel quale si farà vedere un'immagine, caricata in un oggetto PictureBox, al di sotto della mappa dell'isola di Linosa, ripresa da satellite, mostrata su una MapView.
Inoltre, cliccando su un qualunque punto dell'oggetto MapView (compresa la parte sovrastante la PictureBox, saranno mostrate in console le coordinate geografiche del punto cliccato con il puntatore del mouse. [Nota 2]

Public Sub Form_Open()
 
 With PictureBox1
' Assegnamo la "PictureBox come oggetto nuovo "figlio" della "MapView":
   .Reparent(MapView1, 0, 0)
' Gerarchicamente poniamo la "PictureBox al di sotto del suo nuovo "genitore":
   .Lower()
   .Picture = Picture.Load(".icon.png")
   .W = .Picture.W
   .H = .Picture.H
 End With
 
 With MapView1
   .Background = Color.Transparent
   .Map.AddTile("GoogleMaps", "https://khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "860"])
   .Map["GoogleMaps"].SubDomains = ["0", "1", "2"]
   .Map["GoogleMaps"].Opacity = 0.6
   .Map.Center = MapPoint(35.8552054, 12.8692769)
   .Map.Zoom = 14
 End With
 
End


Public Sub MapView1_MouseUp()
 
 Dim pt As New Point(Mouse.X, Mouse.Y)
 
 Print "Lat. "; Geo.DecToSex(MapView1.Map.PixelToMapPointRel(pt).Lat, 1); "  -  Lon. "; Geo.DecToSex(MapView1.Map.PixelToMapPointRel(pt).Lon, 2)
  
End



Note

[1] Si ringrazia il membro Gianluigi per il suo contributo di idee.

[2] Qualora la mappa non appaia, verificare la versione GoogleMap, ed eventualmente modificarla in questo punto: ["version": "860"]
Al riguardo vedere: https://www.gisenglish.com/2018/06/download-sas-planet-nightly-all.html