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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 28 April 2010 14:16

Tony VINCENT
Participant actif
Lieu: Poitiers
Date d'inscription: 13 Jan 2010
Messages: 86

Mapfish : ajouter une légende à la carte

Bonjour,

je veux ajouter une légende à ma carte, pour cela j'ai fais une recherche et regardé les exemples de Mapfish, OpenLayers et GeoExt.

J'ai vu dans les exemples de GeoExt (legendpanel.html) que cela était possible, et correspondait à mon attente.
Donc je l'ai intégré à mon interface, mais cela ne fonctionne.

Voilà le code que j'ai repris :

Code:

    var legendPanel = new GeoExt.LegendPanel({
        defaults: {
            labelCls: 'mylabel',
            style: 'padding:5px'
        },
        bodyStyle: 'padding:5px',
        width: 350,
        autoScroll: true,
        region: 'center'
    });

Et, intégré dans mon Ext.Viewport. Comme ceci :

Code:

viewport = new Ext.Viewport({
                layout: 'border',
                items: [
                    {
                        region: 'west',
                        id: 'west-panel',
                        width: 285,
                        minSize: 175,
                        maxSize: 400,
                        border: true,
                        margins: '5 0 0 5',
                        split: true,  
                        layout: 'border',
                        collapsible: false,
                        layoutConfig:{
                            animate: true
                        },
                        items: [{
                        contentEl: 'west',
                        title: 'Arbre des couches',
                        border: false,
                        xtype: 'layertree',
                        map: map,
                                region:'north',
                                height: 350,
                                minSize: 100,
                                maxSize: 500,
                                model: model
                    }, 
                    legendPanel
                    ,{
                        id: 'ancart_logo'
                        forceFit: true,
                        scrollOffset: 20,
                        height: 55,
                        region:'south', 
                        frame: true,
                        margins: '0 0 0 0',
                        contentEl: 'south',
                        border: false,
                        bodyStyle: 'text-align:left;padding:0px;'
                    }]
                    },{
                        region: 'center',
                        layout: 'fit',
                        frame: false,
                        border: true,
                        margins: '5 5 0 0',
                        items: [{
                            xtype: 'mapcomponent',
                            map: map,
                            tbar: toolbar,
                            border: false
                        }]
                    },{
                        region: 'south',
                        id: 'statusBar',
                        border: false,
                        bodyStyle: 'text-align:left;padding:0px;text-align:right;',
                        height: 27,
                        margins: '5 0 0 0',
                        frame: true,
                        html: 'a status bar'
                    }
                ]
            });
        };

Lorsque je recharge ma page, cela ne fonctionne pas.
Je n'ai plus la carte, je n'ai pas la légende, ...

Peut-être que n'utilise pas GeoExt.LegendPanel comme il faut ?

Tony

Hors ligne

 

#2 Thu 29 April 2010 10:37

Tony VINCENT
Participant actif
Lieu: Poitiers
Date d'inscription: 13 Jan 2010
Messages: 86

Re: Mapfish : ajouter une légende à la carte

Je vois que personnes n'a de réponse à m'apporter.

Donc je suppose que ne c'est pas la bonne façon de faire.


Est-ce que quelqu'un aurait déjà fait une légende des couches, affichées avec Mapfish ?

Tony

Hors ligne

 

#3 Thu 29 April 2010 10:45

frankySIG
Participant occasionnel
Date d'inscription: 12 Apr 2010
Messages: 42

Re: Mapfish : ajouter une légende à la carte

j'ai essayé les légendes de GeoExt hier sur une couche WFS, j'ai un affichage mais rien de concluant (il me fait la légende de mon raster).

Hors ligne

 

#4 Thu 29 April 2010 11:11

Tony VINCENT
Participant actif
Lieu: Poitiers
Date d'inscription: 13 Jan 2010
Messages: 86

Re: Mapfish : ajouter une légende à la carte

Oui, j'ai aussi essayé à partir de l'exemple de GeoExt (legendPanel) et mes propres couches WMS.

La légende fonctionne correctement.
Mais si je reprends le code de mon exemple et que je l'intégre à Mafish. Il me casse toute l'interface et pas de légende.

Tony

Hors ligne

 

#5 Thu 29 April 2010 12:01

frankySIG
Participant occasionnel
Date d'inscription: 12 Apr 2010
Messages: 42

Re: Mapfish : ajouter une légende à la carte

Bizarre, mapFish utilise pourtant la librairie GeoExt la translation ne devrait donc pas posé de soucis, utilise tu les deux mêmes librairies dans tes deux appli?

Hors ligne

 

#6 Thu 29 April 2010 16:21

Tony VINCENT
Participant actif
Lieu: Poitiers
Date d'inscription: 13 Jan 2010
Messages: 86

Re: Mapfish : ajouter une légende à la carte

Oui, j'ai redéfini le chemin des fichiers pour qui pointes vers la même librairie.


Je viens de voir que dans firebug, qu'il m'indique l'erreur suivante :

Code:

GeoExt.MapPanel.guess() is null
        this.layerStore = GeoExt.MapPanel.guess().layers;                 LegendPanel.js(ligne 95)

Tony

Hors ligne

 

#7 Mon 02 August 2010 14:53

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

Re: Mapfish : ajouter une légende à la carte

Bonjour,

Un peu tard mais pour l'histoire : cette erreur vient du fait que l'instance treePanel (pas exactement lui mais pour l'explication cela passera smile ) recherche automatiquement un mapPanel (via la méthode GeoExt.MapPanel.guess()).

Si celle-ci renvoie null c'est qu'il n'a pas trouvé cette instance mapPanel. Il y a plusieurs raisons pour que cela arrive :

1) tu n'as pas créé d'instance MapPanel donc il ne la trouve pas, il faut en créer une.
2) Ton MapPanel est créé après l'instance TreePanel, l'instance MapPanel n'est pas encore créé au moment où le treePanel est créé, donc la recherche du MapPanel renvoie null.

Pour corriger ce problème il y a 2 solutions possibles : tu créés un mapPanel s'il n'existe pas, tu le déplaces si le treePanel est créé avant.

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

 

Pied de page des forums

Powered by FluxBB