(les grandes villes fournissent des API qui donnent par exemple les horaires de bus et position GPS des arrêts)
OpenStreetMap est l'un des rares fournisseurs de carte capable de fonctionner sans erreur dans le WebGadget.
Il suffit simplement de lui passer les coordonnées en url sous la forme
https://www.openstreetmap.org/#map=<zoom>/<lat>/<long>
On peut ensuite se déplacer et zoomer sur la carte à la souris.
Question: comment récupérer la nouvelle URL une fois déplacé ou zoomé
(la navigateurs affichent cette url en temps réel)
Le but est de faire une application légère: S'il faut embarquer une DLL ou intégrer des centaines de lignes, je préfère m'en passer
J'ai regardé les différents exemples sur les forums.
J'ai essayé ça, mais la barre d'état ne change pas.
À vrai dire, je ne sais pas si zoomer dans le webgadget modifie quoi que ce soit comme attribut PB ?
Code : Tout sélectionner
EnableExplicit
; URL = https://www.openstreetmap.org/#map=<zoom>/<lat>/<long>
Define URL$ = "https://www.openstreetmap.org/#map=6/46.449/2.210"
Enumeration
#Win
#Web
#Sbt
EndEnumeration
OpenWindow(#Win, 0, 0, 600, 500, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateStatusBar(#Sbt, WindowID(#Win))
AddStatusBarField(#PB_Ignore)
WebGadget(#Web, 10, 10, WindowWidth(#Win)-20, WindowHeight(#Win)-50, URL$)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
If EventGadget() = #Web And EventType() = #PB_EventType_StatusChange
StatusBarText(#Sbt, 0, GetGadgetText(#Web))
EndIf
EndSelect
ForEver
EndIl doit y avoir du script la dessous et les attributs du webgadget ne sont pas modifiés, j'imagine
Edit 17:30 J'avais supprimé mon post (pour pas encombrer le serveur) car pas trouvé de solution après avoir essayé tous les paramètres de la doc et lu toute l'API d'OSM.
Et puis Zorro est arrivé, pas sur son cheval car il est moderne, mais par MP et m'a donné la solution: le texte arrive dans la barre de message en dernier. Donc ajouter ça.
Code : Tout sélectionner
debug GetGadgetItemText(#web, #PB_Web_StatusMessage)