Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Apuntar en el mapa de un MapView
#1

Apuntar Big Grin  en el mapa de un MapView: 

GAMBAS
  1. Private MapView1 As MapView
  2. Private mp As MapPoint = MapPoint(36.490590, -6.238170)  ' en honor de mi amigo, Romanorum Consul Shell
  3. Private DrawingArea1 As DrawingArea
  4.  
  5.  
  6. Public Sub Form_Open()
  7.  
  8.   Dim pn As Panel
  9.  
  10.   With Me
  11.     .W = Screen.AvailableWidth
  12.     .H = Screen.AvailableHeight
  13.     .Arrangement = Arrange.Fill
  14.     .Mouse = Mouse.Blank
  15.   With MapView1 = New MapView(Me) As "MapView1"
  16.     .Map.AddTile("GoogleMap", "https://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}")
  17.     .Map.Zoom = 11
  18. ' Imposta il centro della mappa:
  19.     .Map.Center = mp
  20.  
  21.   pn = MapView1.Children[0]
  22.   DrawingArea1 = pn.Children[0]
  23.    
  24.  
  25. Public Sub MapView1_MouseMove()
  26.  
  27.   Dim pt As New Point(Mouse.X, Mouse.Y)
  28.   Dim lat As Float = MapView1.Map.PixelToMapPointRel(pt).Lat
  29.   Dim lon As Float = MapView1.Map.PixelToMapPointRel(pt).Lon
  30.  
  31.   mp = MapPoint(lat, lon)
  32.  
  33.   MapView1.Refresh
  34.   MapView1.Map.Refresh
  35.  
  36.  
  37. Public Sub MapView1_Draw()
  38.  
  39.   Dim c, x, y, r As Short
  40.   Dim po As Point = MapView1.Map.MapPointToPixelRel(mp)
  41.  
  42.   With Paint
  43.     .Begin(DrawingArea1)
  44.     .Brush = .Color(Color.DarkOrange)
  45.     .LineWidth = 2.0
  46.     .Arc(MapView1.Map.MapPointToPixelRel(mp).X, MapView1.Map.MapPointToPixelRel(mp).Y, 50, 0, 360, False)
  47.     .Arc(MapView1.Map.MapPointToPixelRel(mp).X, MapView1.Map.MapPointToPixelRel(mp).Y, 30, 0, 360, False)
  48.     .Stroke
  49.     .Brush = .Color(Color.Red)
  50.     .Arc(MapView1.Map.MapPointToPixelRel(mp).X, MapView1.Map.MapPointToPixelRel(mp).Y, 1.5, 0, 360, False)
  51.     .Fill
  52.     
  53.     r = 50
  54.     x = po.X
  55.     y = po.Y
  56.     
  57.     For c = 0 To 360 Step 90
  58.       po.X = x + r * Cos(Rad(c))
  59.       po.Y = y + r * Sin(Rad(c))
  60.       .MoveTo(po.X, po.Y)
  61. ' Per ridurre la lunghezza della "x" per i gradi 0, 90, 180 e 270 è necessaria questa sequenza: +n 0 -n 0 che si ottiene con il Coseno di c.
  62. ' Per ridurre la lunghezza della "y" per i gradi 0, 90, 180 e 270 è necessaria questa sequenza: 0 -n 0 +n che si ottiene con il Coseno di c + 90.
  63.       .LineTo(x + (20 * Cos(Rad(c))), y - (20 * Cos(Rad(c + 90))))
  64.       .Stroke
  65.     Next
  66.     .Brush = .Color(Color.Yellow)
  67.     .DrawText(Format(mp.Lat, "0.######"), x + r * Cos(Rad(270)) - (Me.Font.TextWidth(Format(mp.Lat, "0.######")) / 2), (y + (r + 15) * Sin(Rad(270))), Me.Font.TextWidth(Format(mp.Lat, "0.######")), Me.Font.TextHeight(Format(mp.Lat, "0.######")), Align.Left)
  68.     .DrawText(Format(mp.Lon, "0.######"), x + r * Cos(Rad(0)) - (Me.Font.TextWidth(Format(mp.Lon, "0.######")) / 2), (y + (r + 15) * Sin(Rad(0))), Me.Font.TextWidth(Format(mp.Lon, "0.######")), Me.Font.TextHeight(Format(mp.Lon, "0.######")), Align.Left)
  69.     .End
  70.  



"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)