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 Fri 30 March 2012 10:23

zone12
Participant actif
Date d'inscription: 3 Jan 2008
Messages: 56

[ExtJs, GeoExt, Geoserver] GeoExt.data.WMSCapabilitiesStore

Bonjour,

j'ai ne parviens pas à afficher des données récupérées via WMS dans un tableau à l'aide des librairies Ext (4.0.2a) et GeoExt (1.1) et de Geoserver (2.1.3). Mon code fonctionne parfaitement en utilisant uniquement OpenLayers (suivant cette exemple), mon proxy est correctement paramétré.

Je me base sur l'exemple publié par OpenGeo. Cet exemple est un peu différent car il affiche les informations sur les couches et non pas les données des couches.

Dans la console de Firebug j'obtiens le message :

Code:

GeoExt.data.WMSCapabilitiesStore.superclass is undefined
GeoExt.data.WMSCapabilitiesStore.superclass.constructor.call(

Mon code est le suivant :

Code:

var grid = new Ext.grid.Panel({
                    title: "Available WMS layers",
                    renderTo: 'data', //correspond à <div id="data"></div>
                    width: 200,
                    height: 200,
                    //viewConfig: {forceFit: true},
                    store: new GeoExt.data.WMSCapabilitiesStore ({
                        url: "http://mondomaine:8080/geoserver/ows?service=WMS&request=GetCapabilities",
                        autoLoad: true
                    }),
                    columns: [
                        {header: "Name", dataIndex: "name", sortable: true},
                        {header: "Title", dataIndex: "title", sortable: true},
                        {header: "Abstract", dataIndex: "abstract"}
                    ]
                });

J'ai modifié Ext.grid.GridPanel de l'exemple en Ext.grid.Panel, car GridPanel n'existe pas dans la documentation officielle ExtJs.
J'ai également passé en commentaire "viewConfig" car je ne retrouve pas ce paramètre dans la documentation ExtJs.
(j'ai testé en laissant les paramètres tel que dans l'exemple mais j'ai le même message d'erreur).

Lorsque je lance directement "http://mondomaine:8080/geoserver/ows?service=WMS&request=GetCapabilities" dans mon navigateur j'obtiens bien :

Code:

<WMS_Capabilities version="1.3.0" updateSequence="255" xsi:schemaLocation="http://www.opengis.net/wms ....

J'espère avoir été assez précis.
Quelqu'un aurait-il une piste ?

Merci bien.

Hors ligne

 

#2 Fri 30 March 2012 10:32

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

Re: [ExtJs, GeoExt, Geoserver] GeoExt.data.WMSCapabilitiesStore

Bonjour,

Je n'ai pas d'idée pour l'erreur mais ce que je peux dire est que GeoExt n'est pas compatible pour le moment avec Ext 4. Cela fera l'objet d'un sprint code en mai.

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

 

#3 Fri 30 March 2012 12:18

zone12
Participant actif
Date d'inscription: 3 Jan 2008
Messages: 56

Re: [ExtJs, GeoExt, Geoserver] GeoExt.data.WMSCapabilitiesStore

Merci pour cette info, je n'avais pas pensé à cette piste.

Il s'agit surement d'un problème de compatibilité de version. J'avais en effet fermé les yeux sur de nombreux avertissements de la console de Firebug relatifs aux bibliothèques javascript.

Je suis donc allé sur le site GeoExt pour vérifier les dépendances :

GeoExt 1.1 Release Notes
Dependencies

    Ext JS 3 >= 3.4.0
    OpenLayers >= 2.11

GeoExt 1.1 was tested with Ext JS 3.4.0 and OpenLayers 2.11


Openlayers 2.11 - OK
Ext JS 4.0.2a replacé par Ext JS 3.4.0 - OK

Dans mon code je remet "GridPanel", cf la documentation Ext JS 3.4.0

Code:

var grid = new Ext.grid.GridPanel({

Idem pour "viewConfig"

Code:

viewConfig: {forceFit: true},

Et là je remarque que j'ai encore des erreurs dans la console Firebug relatives à Ext et GeoExt du type :

Code:

Ext is not defined
...;if(a.getMonth()==G.getMonth()&&a.getFullYear()==G.getFullYear()){this.cells.rem...
ext-all.js (line 7)

Ext is not defined
Ext.namespace("GeoExt.data");
Attrib...ader.js (line 18)

L'erreur se rapportant à mon code est maintenant :

Code:

Ext is not defined
var grid = new Ext.grid.GridPanel({

J'ai également testé avec d'autres combinaisons de version Ext et GeoExt, mais il y a toujours des erreurs similaires.

Hors ligne

 

#4 Fri 30 March 2012 14:50

zone12
Participant actif
Date d'inscription: 3 Jan 2008
Messages: 56

Re: [ExtJs, GeoExt, Geoserver] GeoExt.data.WMSCapabilitiesStore

La solution ! J'ai d'ailleurs un peu honte

ExtJS ne se chargeait pas, tout simplement.

je n'avais déclaré que le fichier ext-all.js :

Code:

<script src="./javascript/ext-3.4.0/ext-all.js" type="text/javascript"></script>

et il fallait déclarer ext-base.js puis ext-all.js :

Code:

<script src="./javascript/ext-3.4.0/adapter/ext/ext-base.js" type="text/javascript"></script>
    <script src="./javascript/ext-3.4.0/ext-all.js" type="text/javascript"></script>

Attention l'ordre semble important.

Merci Yves

Dernière modification par zone12 (Fri 30 March 2012 14:52)

Hors ligne

 

Pied de page des forums

Powered by FluxBB