Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Printemps des cartes 2024

#1 Thu 05 February 2009 16:15

adegroof
Participant occasionnel
Date d'inscription: 15 Oct 2008
Messages: 13

[MapGuide OS] utilisation de la technologie fusion

Bonjour,

J'ai transféré ma map depuis un simple layout MapGuide vers un layout utilisant Fusion afin de bénéficier de certaines applications. Néanmoins, j'aimerais pouvoir utiliser via ce nouveau layout certaines applications (php) qui sont disponbiles pour un layout "normal". Dans ce cas ci, il s'agit des applications "Query" et "Theme layer" que j'ai légèrement modifiées.
A l'aide de MapGuide Maestro, j'ai donc configuré 2 widgets référençant le chemin d'accès à ces applications php. Malheureusement, lorsque je désire lancer ces deux applications, l'erreur suivante survient:

Error

--------------------------------------------------------------------------------

Invalid argument(s): [1] = "" The session ID is invalid because the session separator character was not found. Invalid argument(s): [1] = "" The session ID is invalid because the session separator character was not found. Exception occurred in method MgUserInformation.SetMgSessionId at line 183 in file d:\build\mapguide_open_source_v2.0\build_30.11\mgdev\common\mapguidecommon\System/UserInformation.cpp

J'ai déjà modifié sans succès la valeur 'SESSION' par 'session' dans mes scripts comme cela m'avait été suggéré.

Pourriez-vous m'informer d'une éventuelle solution ou d'une méthode d'intégration des scripts php (issus du répertoire phpviewersample) sous Fusion.

Merci

Hors ligne

 

#2 Fri 06 February 2009 19:03

poulet1212
Participant actif
Date d'inscription: 10 Apr 2007
Messages: 74

Re: [MapGuide OS] utilisation de la technologie fusion

Bonjour,
j'ai essayé avec un widget UrlInvoke vers le script "phpviewersample/query/querymain.php"
et il se charge sans problème. Il y a peut-être d'autre problème après cependant....

Il doit y avoir un problème quand lors de la récupération de la variable session. Comment récupérez vous dans vos scripts la variable session afin d'ouvrir votre site?

Hors ligne

 

#3 Mon 09 February 2009 16:11

adegroof
Participant occasionnel
Date d'inscription: 15 Oct 2008
Messages: 13

Re: [MapGuide OS] utilisation de la technologie fusion

Bonjour,

Merci pour ta réponse. J'ai tenté également de tester le widget 'invokeurl' mais malheureusement ce dernier ne fonctionne pas correctement. En fait, il ne se passe rien lorsque que clic sur ce widget et par ailleurs, il supprime/cache l'ensemble des widgets qui le suivent. 
Peux-tu me dire où je pourrais trouver le code de ce widget afin de vérifier sa validité (*.js et $.xml)? J'ai déjà pris en considération la note 832 (http://trac.osgeo.org/mapguide/ticket/832) mais le problème est toujours présent.

En ce qui concerne la récupération des variables, elle est identique au application "theme layer" et "query" du dossier phpviewersample. Ce sont par ailleurs ces deux applications que j'aimerais pouvoir utiliser.

Merci

Hors ligne

 

#4 Tue 10 February 2009 14:14

poulet1212
Participant actif
Date d'inscription: 10 Apr 2007
Messages: 74

Re: [MapGuide OS] utilisation de la technologie fusion

Bonjour,
si vous cliquez sur le lien et que rien ne se passe, c'est probablement que dans la configuration du composant URLinvoke, la case "désactiver si rien n'est sélectionné" est active. Il faut donc la déchocher.
Le code de ce widget "query, markup, theme" est situé initialement dans l'application "generic tasks" situé dans l'onglet "live gallery" du site mapguide.osgeo.org:

http://data.mapguide.com/mapguide/gt/index.php

Mais c'est bizarre parce que le lien vers la source à disparu!!
J'ai pas accès à mon répertoire pour des raisons que seul mon firewall sait, je tâcherai de voir si je peux pas récupérer une copie de cette archive....

Hors ligne

 

#5 Tue 10 February 2009 14:18

poulet1212
Participant actif
Date d'inscription: 10 Apr 2007
Messages: 74

Re: [MapGuide OS] utilisation de la technologie fusion

Hors ligne

 

#6 Tue 10 February 2009 17:33

adegroof
Participant occasionnel
Date d'inscription: 15 Oct 2008
Messages: 13

Re: [MapGuide OS] utilisation de la technologie fusion

Grand merci, j'ai débloqué mon code. c'était bien le problème de l'utilisation des majuscules qui posait problème.
Néanmoins, il me reste une soucis au niveau du code javascript des applis "query" et "theme".
Les trois erreurs me sont référencés par firebug:
parent.parent.Refresh is not a function

Code:

parent.parent.Refresh();

parent.parent.mapFrame is undefined :

Code:

parent.parent.mapFrame.ZoomToView(fea....centerX, feature.centerY, scale, true);

Code:

parent.parent.mapFrame.SetSelectionXML(TrimString(selectionXml));

As-tu une iddée de l'origine de l'erreur? J'ai testé ces 2 applis via la taskpane, une nouvelle fenêtere ou la frame mais rien ne change.

Merci

Hors ligne

 

#7 Thu 12 February 2009 19:33

poulet1212
Participant actif
Date d'inscription: 10 Apr 2007
Messages: 74

Re: [MapGuide OS] utilisation de la technologie fusion

Ben voilà... Justement le code que tu as repris ne fonctionne pas avec Fusion car il utilise l'API MapViewerAjax. Par exemple l'appel parent.parent.Refresh(); concerne une fonction contenue dans un fichier script: www\viewerfiles\mainframe.templ
function Refresh()
{
    GetMapFrame().Refresh();
}

Les deux autres fonctions doivent être définies dans ajaxmappane.templ.

Mais puisque tu utilises Fusion, alors il faut rafraîchir la carte en utilisant l'API Fusion.

Des scripts exemple de fusion sont là:
http://mapguide.osgeo.org/2.0/documentation.html
"fusion learning material"

Faut voir si dans le Javascript de ton application tu peux écrire:
Fusion.NomDeLaFonction()...

Si ça retourne une erreur "Fusion is not initialized" alors il faut l'initialiser comme c'est expliqué dans "fusion learning material".

Dès que Fusion est initialisé, faudra après que tu trouves les homologues dans l'API Fusion des trois fonctions ci-dessus. Voir documentation dans "fusion\docs" de ton installation.

Voilà en gros la marche à suivre.
Salutations,

Hors ligne

 

Pied de page des forums

Powered by FluxBB