Differenze tra le versioni di "Utilizzando un Oggetto di visualizzazione diverso da una MapView consentire uno spostamento morbido e uniforme della mappa"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Utilizzando un Oggetto di visualizzazione diverso da una ''MapView'' (ad esempio una ''DrawingArea'' oppure una ''ImageView'')l lo spostamento della mappa mediante il puntator...")
 
Riga 1: Riga 1:
 
Utilizzando un Oggetto di visualizzazione diverso da una ''MapView'' (ad esempio una ''DrawingArea'' oppure una ''ImageView'')l lo spostamento della mappa mediante il puntatore del mouse non avviene in modo omogeneo e coerente con il mouse.
 
Utilizzando un Oggetto di visualizzazione diverso da una ''MapView'' (ad esempio una ''DrawingArea'' oppure una ''ImageView'')l lo spostamento della mappa mediante il puntatore del mouse non avviene in modo omogeneo e coerente con il mouse.
  
Per consentire dunque lo spostamento morbido, coerente e uniforme della mappa con il movimento del puntatore del mouse bisogna in particolare utilizzare alcune risorse della Classe statica "Geo" del Componente "gb.map".
+
Per consentire dunque lo spostamento morbido, coerente e uniforme della mappa con il movimento del puntatore del mouse, bisogna in particolare utilizzare alcune risorse della Classe statica "Geo" del Componente "gb.map".
  
 
Mostriamo gli elementi <SPAN Style="text-decoration:underline">essenziali e necessari</span> del codice per ottenere quel risultato, usando ad esempio una ''DrawingArea'':
 
Mostriamo gli elementi <SPAN Style="text-decoration:underline">essenziali e necessari</span> del codice per ottenere quel risultato, usando ad esempio una ''DrawingArea'':

Versione delle 09:42, 20 dic 2021

Utilizzando un Oggetto di visualizzazione diverso da una MapView (ad esempio una DrawingArea oppure una ImageView)l lo spostamento della mappa mediante il puntatore del mouse non avviene in modo omogeneo e coerente con il mouse.

Per consentire dunque lo spostamento morbido, coerente e uniforme della mappa con il movimento del puntatore del mouse, bisogna in particolare utilizzare alcune risorse della Classe statica "Geo" del Componente "gb.map".

Mostriamo gli elementi essenziali e necessari del codice per ottenere quel risultato, usando ad esempio una DrawingArea:

Private mappa As Map
Private mx As Integer
Private my As Integer
Private pt As New Point
Private cpx As New Point

Public Sub DrawingArea1_MouseDown()  

 pt = Point(Mouse.X, Mouse.Y)

 mx = pt.X  
 my = pt.Y

 cpx = Geo.MapPointToPixel(mappa.Center, mappa.Zoom)

End

Public Sub DrawingArea1_MouseMove()  

 Dim pix As New Point(cpx.X, cpx.Y)

 pix.X += mx - Mouse.X
 pix.Y += my - Mouse.Y

' Le seguenti righe di comando consentono uno spostamento morbido e uniforme della mappa per ciascun livello di zoom:
 mappa.Center.Lat = Geo.PixelToMapPoint(pix, mappa.Zoom).Lat
 mappa.Center.Lon = Geo.PixelToMapPoint(pix, mappa.Zoom).Lon

End