Utilizzando un Oggetto di visualizzazione diverso da una MapView consentire uno spostamento morbido e uniforme della mappa
Da Gambas-it.org - Wikipedia.
Versione del 20 dic 2021 alle 08:42 di Vuott (Discussione | contributi)
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