Ottenere un file png dalla mappa mostrata da una MapView
Vai alla navigazione
Vai alla ricerca
Possiamo ottenere un file di formato PNG dalla mappa mostrata da una MapView [nota 1], usando anche le risorse del Componente gb.media.
Mostriamo un esempio pratico (è necessario attivare anche i Componenti gb.map e gb.media ):
Private MapView1 As MapView
Public Sub Form_Open()
Dim mp As New MapPoint(41.89030, 12.49237)
With Me
.W = Screen.AvailableWidth
.H = Screen.Height * 0.9
.Arrangement = Arrange.Fill
End With
With MapView1 = New MapView(Me) As "MapView1"
.Map.AddTile("GoogleMap", "https://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}")
.Map.Zoom = 15
.Map.Center = mp
End With
End
Public Sub MapView1_MouseUp()
' Se si clicca sulla "MapView" con il tasto destro del mouse, si avvierà la procedura per ottenere il file PNG:
If Not Mouse.Right Then Return
Dim pl As MediaPipeline
Dim src, con, png, snk As MediaControl
pl = New MediaPipeline
src = New MediaControl(pl, "ximagesrc")
src["xid"] = MapView1.Id ' Assegna il numero identificativo della "MapView", della quale si otterrà il file PNG
con = New MediaControl(pl, "videoconvert")
png = New MediaControl(pl, "pngenc")
snk = New MediaControl(pl, "filesink")
snk["location"] = "/tmp/immagine_mappa.png"
src.LinkTo(con)
con.LinkTo(png)
png.LinkTo(snk)
' Crea il file PNG e poi chiude il flusso di dati:
pl.Play()
pl.Stop()
pl.Close
End
Note
[1] Vedere anche: Ottenere una Image dalla mappa mostrata da una MapView