#1 Tue 27 January 2009 22:21
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Mise à jour automatisée sous OpenLayers
Bonsoir,
Quelqu'un peut-il m'aiguiller un peu, je galère sur un problème de mise à jour automatique?!?
Définition du problème :
Je fais une cartographie en temps réel au moyen de données PostgreSQL-PostGIS via MapServer pour un affichage WMS sous OpenLayers. Cela fonctionne parfaitement... Alors pourquoi poster direz-vous ? Pour le rafraîchissement!!!
En effet, si je peux rafraîchir au moyen du navigateur (ce qui soit dit en passant est assez long car il refresh aussi les couches non nécessaires telles les rasters) ce que je souhaite implémenter est un rafraîchissement périodique (30'000 ms) de certaines couches de la base de données spatiale.
Est-ce possible de réaliser cela ?
Merci d'avance pour vos éclairages et bonne soirée
Didier
Hors ligne
#2 Wed 28 January 2009 08:51
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: Mise à jour automatisée sous OpenLayers
Bien sûr qu'il est possible de réaliser cela. Il suffit de hacker OpenLayers et de bien tenir compte du fonctionnement du cache image des navigateurs.
Tu peux me contacter directement si tu souhaites entrer dans le détail.
René-luc D'Hont
3Liz SARL
Hors ligne
#3 Wed 28 January 2009 09:21
Re: Mise à jour automatisée sous OpenLayers
Bonjour,
Peut être que cela pourrait intéresser du monde ?
N'y a t-il pas moyen de faire en sorte de relancer le rafraichissement de la couche à intervalle régulier plutôt que la page ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Wed 28 January 2009 09:25
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Re: Mise à jour automatisée sous OpenLayers
Bonjour Y,
C'est en effet tout l'objet de ma question. Je me demande si je ne devrais pas travailler en WFS quand bien même il n'est pas nécessaire (dans mon applicatif) d'accéder directement à la db.
Hors ligne
#5 Wed 28 January 2009 10:40
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: Mise à jour automatisée sous OpenLayers
Finalement c'est hyper simple :
Code:
function refresh() { //force to redraw WMS layer //and force the browser to download new images myWMSLayer.redraw(true); } window.setTimeout(refresh,30000);
En espérant que ça serve ;-)
Hors ligne
#6 Wed 28 January 2009 11:23
Re: Mise à jour automatisée sous OpenLayers
Merci René-Luc
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Wed 28 January 2009 12:37
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Re: Mise à jour automatisée sous OpenLayers
Merci OUI mais...
Je joint ma page html car je n'arrive pas a implémenter vos conseils.
Vous constaterez que j'affiche 4 cartes (map, map2, map3, map4) qui sont contenues dans 4 <div> du <body>.
J'ai créé la function refresh() dans le head
et je fais appel à elle à la fin du init() par un window.setInterval("refresh()",30000); (firebug trace bien la manoeuvre jusqu'à l'appel de refresh()). ps. j'utilise setInterval au lieu de setTimeout pour la répétition automatique.
Mais dans le refresh() golf.redraw(true), qui selon moi est la traduction dans mon cas de l'exemple donné, myWMSLayer.redraw(true) provoque un message d'erreur : golf is not defined.
Merci d'avance pour le coup d'oeil.
Hors ligne
#8 Wed 28 January 2009 13:12
Re: Mise à jour automatisée sous OpenLayers
Didier,
Et les variables global ?
Il faut définir var golf; hors de tes fonctions pour qu'elles soient accessibles dans toutes tes fonctions
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#9 Wed 28 January 2009 13:18
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: Mise à jour automatisée sous OpenLayers
Merci Yves!
Hors ligne
#10 Wed 28 January 2009 13:21
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Re: Mise à jour automatisée sous OpenLayers
Oui, merci, et cette fois j'ai bien corrigé...
Je l'avais fait avant en faisant un var golf, etc etc; avant les functions ().
MAIS ! MAIS! MAIS!
J'avais laissé var golf = new OpenLay.... dans la fonction init(),ce qui créait la variable en local et laissait ma variable globale non définie (sic!).
Bon ben voilà.
Un grand meci à vous deux d'avoir pris le temps de réfléchir à mon problème.
C'est trop génial de voir mes points se déplacer tous seuls... sans refresh manuel !
Merci
Amitiés genevoises, Didier
Hors ligne
#11 Wed 28 January 2009 13:29
Re: Mise à jour automatisée sous OpenLayers
On attend une petite capture vidéo pour preuve !
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#12 Wed 28 January 2009 15:42
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: Mise à jour automatisée sous OpenLayers
Moi aussi je suis preneur...
Hors ligne
#13 Wed 28 January 2009 19:19
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Re: Mise à jour automatisée sous OpenLayers
ok !
Je download wink ou wunk je ne sais plus ce soir depuis la maison et demain je tente la démo vidéo!
Et merci encore pour votre investissement!
J'ai déjà la prochaine question, mais dans un prochain post.
Hors ligne
#14 Wed 28 January 2009 23:25
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Re: Mise à jour automatisée sous OpenLayers
Voili voilà, Messieurs les vérificateurs de bons tuyaux!
J'ai uploadé une vidéo de 2 minutes prises avec mon natel, euh non! natel c'est helvético-suisse, avec mon mobile pour prouver l'efficacité de vos réponses et la véracité de ma compréhension ?!?
Elle se trouve sur http://www.azimut-360.ch/video/28012009017.mp4
Avec le son et mes explications, reste plus qu'à faire confiance... je ne touche pas le clavier pendant la démo!
Trève de plaisanteries, encore merci à vous deux pour la qualité de vos réponses. Et je suis sincère, j'ai lu de tout sur de nombreux forums, et souvent à côté de la plaque.
Comme dit auparavant je vais revenir dans un nouveau sujet.
Salutations
Didier
Hors ligne
#15 Thu 29 January 2009 09:18
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: Mise à jour automatisée sous OpenLayers
Merci, ça serait intéressant de la déposer dans sur un site de partage de vidéo, non ?
Hors ligne
#16 Thu 29 January 2009 19:51
- didier.genier@bluewin.ch
- Participant actif
- Lieu: Bernex - Genève
- Date d'inscription: 8 Nov 2006
- Messages: 52
Re: Mise à jour automatisée sous OpenLayers
Merci de me faire un petit tuto pour cette manip
Hors ligne
#17 Thu 29 January 2009 20:07
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: Mise à jour automatisée sous OpenLayers
Je ne suis pas très aggerri, mais il suffit d'avoir un compte chez Youtube ou DailyMotion pour pouvoir déposer une vidéo en ligne. Pour tout autre méthode, comme généré du flash, je ne sais pas faire.
Hors ligne