#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
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 ) 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