#1 Mon 29 June 2009 19:04
- Thierry21
- Participant occasionnel
- Date d'inscription: 10 Aug 2006
- Messages: 45
Mapguide et rafraichissement automatique de calques.
Bonjour,
J'ai construit une carte via studio. Dans celle-ci j'ai un calque, bâti à partir d'une requête sur une base spatiale.
Je voudrais rafraichir le contenu du calque à intervalle régulier, j'ai donc positionné un timer en javascript qui me fait un mapframe.refresh() à intervalle régulier.
Cela fonctionne à peu près à un bémol près : quand le rafraichissement via le javascript se télescope avec un rafraichissement lié à une commande utilisateur (zoom out/pan ...) le serveur part en vrille (mémoire utilisée monte en flêche).
Je voudrais donc vérifier si la carte n'est pas occupée avant de rafraichir automatiquement mais je n'arrive pas à accéder au modèle objet de mapguide en javascript (accès à l'objet MGMAP) tout ce que j'ai trouvé est basé sur des fichiers .MWF avec des balises <OBJECT ID="map".
Comment fait on à partir d'une syntaxe du type
<frame src="../mapviewerphp/ajaxviewer.php?SESSION=<?php echo $sessionId; ?>&WEBLAYOUT=<?php echo $webLayout; ?>" name="ViewerFrame"> ??
merci de votre aide.
Hors ligne
#2 Tue 06 October 2009 19:30
- didier37
- Juste Inscrit !
- Date d'inscription: 7 Sep 2009
- Messages: 7
Re: Mapguide et rafraichissement automatique de calques.
bonjour,
Je serais intéressé par votre solution. Dans quel fichier insérer le refresh, quelle commande et où. Votre première solution m'intéresse, même si vous n'avez pas progressé.
Merci de votre réponse.
Cordialement.
Hors ligne
#3 Wed 07 October 2009 08:49
- Gwenael Bachelot
- Participant assidu
- Lieu: Bureau Autodesk : Paris 12ème
- Date d'inscription: 5 Sep 2005
- Messages: 608
- Site web
Re: Mapguide et rafraichissement automatique de calques.
Bonjour,
Mon petit doigt m'a dit que ce type de rafraichissement (mapframe.refresh) fonctionne toutes les secondes, avec un fond tuilé, sous AMGE 2010.
Gwenael
PS : merci à mon petit doigt :-)
Hors ligne
#4 Wed 07 October 2009 17:25
- Thierry21
- Participant occasionnel
- Date d'inscription: 10 Aug 2006
- Messages: 45
Re: Mapguide et rafraichissement automatique de calques.
raté ...
j'ai modifié les templates pour faire un refresh "simple" qui ne va pas rafraichir les tuiles mais seulement les calques qui portent les données dynamiques. J'en ai profité pour gérer la collision avec les refresh initiés par l'utilisateur en testant "maploading".
Pour Didier37 :
Dans la fenêtre principale, j'ai un frameset
3 frames : un bandeau de titre/la carte/une frame invisible avec des scripts
dans la fenêtre de bandeau j'ai :
Code:
<script language="javascript"> var MapTimer; var viewer; var RefTimer; function refresh_conditionnel() { parent.ViewerFrame.GetMapFrame().Refresh_Simple(); } function init_timer() { MapTimer = window.setInterval('AttendCarte()',200); RefTimer = window.setInterval('refresh_conditionnel()',30000); } function AttendCarte() { try { viewer = parent.ViewerFrame.GetMapFrame(); if (viewer.mapInit) { //Ok tout est initialisé clearInterval(MapTimer); //alert(viewer.GetMapName()); } } catch(e) {} } </script>
et OnLoad="init_timer()" dans la balise <body>
dans le fichier ajaxmappane.templ, ajout d'une fonction :
Code:
function Refresh_Simple() { if (!mapLoading) { GotoView(extX1 + (extX2 - extX1) / 2, extY2 + (extY1 - extY2) / 2, curScale, false, false); } }
Dernière modification par Thierry21 (Wed 07 October 2009 17:28)
Hors ligne
#5 Wed 07 October 2009 19:52
- didier37
- Juste Inscrit !
- Date d'inscription: 7 Sep 2009
- Messages: 7
Re: Mapguide et rafraichissement automatique de calques.
Bonjour,
Merci Thierry pour toute ces infos détaillées. Je vais tester puis j'essaierai dès que j'arriverai à afficher mes données par dessus ma couche tuilée.
Merci aussi pour votre réponse à ce sujet. J'attends avec impatience le lien.
Cordialement
Didier
Hors ligne