Inserire del testo su una MapView

Da Gambas-it.org - Wikipedia.

Una modalità per poter inserire del testo su una MapView è quella di scrivere il testo su un oggetto Image e successivamente passarlo all'ultimo argomento del Metodo ".AddPoint( ) ".
Pur spostando con il mouse la mappa, il testo resterà stabile sul punto ove era stato disegnato.


Vediamo un semplice esempio:

Private mp As New MapPoint


Public Sub Form_Open()
 
 With MapView1
   .X = 0
   .Y = 0
   .W = Me.W
   .H = Me.H
   .Map.AddTile("GoogleMap", "https://khms{s}.google.it/kh/v={version}&src=app&x={x}&y={y}&z={z}&s=Galile", ["version": "849"]).SubDomains = ["0", "1", "2"]
   .Map.Zoom = 16
   mp.Lat = 41.8902142
   mp.Lon = 12.4900422
   .Map.Center = mp
 End With
  
End


Public Sub MapView1_MouseDown()
 
 Dim pt As New Point(Mouse.X, Mouse.Y)
 
 mp = MapView1.Map.PixelToMapPointRel(pt)
  
End


Public Sub MapView1_MouseUp()
 
 Dim im As Image
 
' Crea l'oggetto "Image":
 im = New Image(60, 40, Color.Transparent, gb.Standard)
    
' Scrive le coordinate geografiche nell'oggetto "Image" in forma testuale:
 With Paint
   .Begin(im)
   .Font.Size = 12
   .Brush = .Color(Color.Red)
   .DrawText(Format(mp.Lat, "#.######") & "\n" & Format(mp.Lon, "#.######"), 1, 1, im.W, im.H, Align.Normal)
   .End
 End With
 
 With MapView1
' Passa l'oggetto "Image" al 3° argomento del Metodo ".AddPoint( )":
   .Map.AddShape("immagine").AddPoint("immagine", mp, Color.Default, im)
   .Refresh()
   .Map.Refresh()
 End With
 
End