Differenze tra le versioni di "Mostrare sulla MapView disegni, immagini e Controlli senza l'uso del Metodo Map.AddShape()"
Riga 17: | Riga 17: | ||
avendo cura in tale routine di assegnare al Metodo ".Begin()" della Classe ''Paint'' l'Oggetto ''DrawingArea'', "Figlio" del ''Panel''. | avendo cura in tale routine di assegnare al Metodo ".Begin()" della Classe ''Paint'' l'Oggetto ''DrawingArea'', "Figlio" del ''Panel''. | ||
− | + | ==Mostrare ''Controlli'' sulla ''MapView''== | |
+ | La suddetta routine "MapView_Draw()" è valida anche nel caso di impostazione sulla ''MapView'' di uno o più ''Controlli'' grafici (''Button'', ''Label'', etc), sebbene solo per far sì che, qualora si sposti la Mappa con il mouse, il ''Controllo'' si mostri solo e sempre alle sue coordinate geografiche prestabilite. | ||
− | + | ||
+ | ==Esempio astratto== | ||
Mostriamo di seguito un esempio astratto, per disegnare qualsiasi cosa, facendola apparire al di sopra della mappa: | Mostriamo di seguito un esempio astratto, per disegnare qualsiasi cosa, facendola apparire al di sopra della mappa: | ||
Private pn As Panel | Private pn As Panel | ||
Riga 55: | Riga 57: | ||
End | End | ||
− | + | ==Esempi pratici== | |
Esempi pratici posso essere rinvenuti nelle seguenti pagine: | Esempi pratici posso essere rinvenuti nelle seguenti pagine: | ||
* [[Inserire_del_testo_su_una_MapView#Disegnare_il_testo_su_una_MapView_usando_l.27Oggetto_.22Figlio.22_DrawingArea|Disegnare il testo su una MapView usando l'Oggetto "Figlio" DrawingArea]] | * [[Inserire_del_testo_su_una_MapView#Disegnare_il_testo_su_una_MapView_usando_l.27Oggetto_.22Figlio.22_DrawingArea|Disegnare il testo su una MapView usando l'Oggetto "Figlio" DrawingArea]] |
Versione delle 20:40, 12 gen 2022
Indice
Introduzione: la struttura della MapView
Il Controllo grafico "MapView " è costituito da un Oggetto "Figlio" Panel, il quale è a sua volta ha un Oggetto "Figlio" che è una DrawingArea:
MapView ⬇ genitore di un Panel ⬇ genitore di una DrawingArea
Mostrare effetti grafici non riproducibili con il Metodo "Map.AddShape()"
Di norma, per mostrare alcuni elementi grafici (punti, figure piane e immagini), si deve fare riferimento al Metodo ".AddShape()" della Classe Map.
Questo Metodo, però, non consente di inserire direttamente anche altri elementi, come ad esempio: testo, effetti grafici in movimento, Controlli grafici ed altro.
In caso di bisogno, dunque, per mostrare sulla MapView elementi ed effetti grafici, testo, disegni, immagini e anche Controlli, non riproducibili normalmente con il Metodo Metodo "Map.AddShape()", si utilizzerà l'Oggetto DrawingArea, "Figlio" dell'Oggetto Panel a sua volta "Figlio" del Controllo MapView.
In particolare va detto che l'Evento, ove avverrà la realizzazione del disegno resta comunque quello dell'Oggetto MapView:
MapView_Draw()
avendo cura in tale routine di assegnare al Metodo ".Begin()" della Classe Paint l'Oggetto DrawingArea, "Figlio" del Panel.
Mostrare Controlli sulla MapView
La suddetta routine "MapView_Draw()" è valida anche nel caso di impostazione sulla MapView di uno o più Controlli grafici (Button, Label, etc), sebbene solo per far sì che, qualora si sposti la Mappa con il mouse, il Controllo si mostri solo e sempre alle sue coordinate geografiche prestabilite.
Esempio astratto
Mostriamo di seguito un esempio astratto, per disegnare qualsiasi cosa, facendola apparire al di sopra della mappa:
Private pn As Panel Public Sub Form_Open() With MapView1 .Map.AddTile("topo", "https://a.tile.opentopomap.org/{z}/{x}/{y}.png") .Map.Zoom = 14 .Map.Center = MapPoint(41.89018, 12.49230) End With ' Individua dapprima l'Oggetto "Figlio" della "MapView", che è un "Panel": pn = MapView1.Children[0] End Public Sub MapView1_Draw() ' Individua l'Oggetto "Figlio" del "Panel", che è una "DrawingArea": Dim da As DrawingArea da = pn.Children[0] With Paint ' Disegna sull'Oggetto "Figlio" del "Panel", che è una "DrawingArea" (ossia lo stesso Oggetto che la Classe "MapView" usa ordinariamente per mostrare la mappa): .Begin(da) ' ...qui disegna qualcosa... .End End With End
Esempi pratici
Esempi pratici posso essere rinvenuti nelle seguenti pagine:
- Disegnare il testo su una MapView usando l'Oggetto "Figlio" DrawingArea
- Disegnare sulla MapView dei cerchi concentrici al punto ove si è cliccato con il puntatore del mouse
- Disegnare un cerchio o una ellisse o un punto su una MapView usando l'Oggetto "Figlio" DrawingArea
- Disegnare un mirino come cursore del mouse su una MapView
- Disegnare un'immagine su una MapView usando l'Oggetto "Figlio" DrawingArea
- Inserire un Oggetto grafico (un Controllo) su una MapView