banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Mise à jour automatisée sous OpenLayers

Merci René-Luc smile

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.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#8 Wed 28 January 2009 13:12

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 wink

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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! hmm

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 ?!? big_smile

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 wink

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

 

Pied de page des forums

Powered by FluxBB