Ottenere un'Image dalla mappa mostrata da una MapView
Da Gambas-it.org - Wikipedia.
Versione del 3 mag 2020 alle 09:33 di Vuott (Discussione | contributi)
Per ottenere un oggetto Image, e da questo quindi un file immagine, della mappa corrente mostrata da una MapView, è possibile adottare due modalità.
Uso del Metodo MapView.Draw()
Mostriamo un esempio pratico:
Public Sub Form_Open() Dim mp As New MapPoint ' Imposta un "Raster Tiles Server" remoto: MapView1.Map.AddTile("opentopo", "https://a.tile.opentopomap.org/{z}/{x}/{y}.png") MapView1.Map.Zoom = 16 ' Imposta il centro della mappa viasualizzata specificandone preliminarmente le coordinate geografiche: mp.Lat = 41.8902142 mp.Lon = 12.4900422 MapView1.Map.Center = mp End Public Sub Button1_Click() Dim im As New Image(MapView1.W, MapView1.H, Color.White, Image.Standard) With Paint .Begin(im) MapView1.Map.Draw() .End End With im.Save("/tmp/prova.png", 100) End
Uso del Metodo MapView.Grab()
Di seguito mostriamo un semplice esempio:
Public Sub Form_Open() Dim mp As New MapPoint ' Imposta un "Raster Tiles Server" remoto: MapView1.Map.AddTile("opentopo", "https://a.tile.opentopomap.org/{z}/{x}/{y}.png") MapView1.Map.Zoom = 16 ' Imposta il centro del cerchio specificandone preliminarmente le coordinate geografiche: mp.Lat = 41.8902142 mp.Lon = 12.4900422 MapView1.Map.Center = mp End Public Sub Button1_Click() Dim im As New Image(MapView1.W, MapView1.H, Color.White, Image.Standard) ' Carica nell'oggetto "Image" i dati dell'immagine della mappa mostrata dalla "MapView": With MapView1 im = .Map.Grab(.Map.GetTile("GoogleMap").MaxBounds(.Map.Center, .Map.Center), .W, .H, 0, .Map.Zoom) End With im.Save("/tmp/prova.png", 100) End