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

Rencontres QGIS 2025

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

#1 Fri 05 June 2009 16:05

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 75

[Mapfish/ExtJS] adaptation widget recenter

Bonjour,

J'essaie de créer un widget permettant à l'utilisateur de se placer à une des échelles logiques de la carte en la choisissant dans une liste déroulante, je me base sur le widget recenter (j'ai repris le code et tente de le simplifier).

J'ai rajouté une classe Devnavigation (Devnavigation.js) en me basant sur Coords.js

Code:

Ext.namespace('mapfish.widgets', 'mapfish.widgets.recenter');

// Constructeur
mapfish.widgets.recenter.Devnavigation = function(config) {
    Ext.apply(this, config);
    mapfish.widgets.recenter.Devnavigation.superclass.constructor.call(this);
};

//Méthodes
Ext.extend(mapfish.widgets.recenter.Devnavigation, mapfish.widgets.recenter.Base, {

   addItems: function() {
        // first remove any existing item
        this.removeAll();

        if (this.scales) {
            this.addScaleCombo();
        }

        this.addRecenterButton();
    },

    recenter: function() {        
            
            var zoom;

            if (this.scales && values.scaleValue) {
                // use user-provided scale
                resolution = OpenLayers.Util.getResolutionFromScale(values.scaleValue,
                        this.map.units);
                zoom = this.map.getZoomForResolution(resolution);
            }

            this.zoomTo(zoom);
    }

});
Ext.reg('Devnavigation', mapfish.widgets.recenter.Devnavigation);

Je l'instancie de cette façon dans mon code OpenLayers :

Code:

navigation = new mapfish.widgets.recenter.Devnavigation({
    map: map,
    scales: [5000, 10000, 25000, 40000, 75000, 170000, 500000, 600000, 900000]
});

Et j'ai l'erreur suivante dans Firebug :

Code:

mapfish.widgets.recenter.Devnavigation is not a constructor
(?)()()openlayers (ligne 117)
fire()()ext-all-debug.js (ligne 1488)
fireDocReady()()ext-all-debug.js (ligne 1592)
getViewWidth()()ext-base.js (ligne 10)
[Break on this error] scales: [5000, 10000, 25000, 40000, 75000, 170000, 500000, 600000, 900000]

Pourtant il me semble bien que mon constructeur Devnavigation est défini ...

Auriez vous une idée ? Toute piste est bienvenue !

Merci

Rémi

Dernière modification par Remi01 (Fri 05 June 2009 16:17)

Hors ligne

 

Pied de page des forums

Powered by FluxBB