IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Définir les échelles affichées par l'API


Sujet :

IGN API Géoportail

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 73
    Points : 33
    Points
    33
    Par défaut Définir les échelles affichées par l'API
    Bonjour à tous !

    Comme suggéré ici je créé un sujet pour cette problématique qui semble plus complexe que prévue...

    Je cherche à définir "en dur" les niveaux d'échelles affiché par l'API.
    Je m'explique : je souhaiterais pouvoir passer de l'échelle 1:1000 à 1:2500 puis 1:5000, 1:25 000, 1:50 000, 1:100 000...

    Dans le sujet "Zoom mini pour l'API" a été expliqué le code nécessaire pour créer manuellement la carte :

    Citation Envoyé par dgrichard Voir le message
    Il faut construire la carte à la main comme suit, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
            viewer= new Geoportal.Viewer.Default(
                "GeoportalDiv",
                OpenLayers.Util.extend({
                        mode: 'mini',
                        territory: 'FXX',
                        projection: new OpenLayers.Projection('IGNF:GEOPORTALFXX'),
                        displayProjection: ['IGNF:RGF93G'],
                        minZoomLevel: 5,
                        maxZoomLevel: 15,
                        nameInstance: 'viewer',
                        proxy: 'url_proxy'
                    },
                    window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {apiKey:['CLEF']}:gGEOPORTALRIGHTSMANAGEMENT
                )
            );
    en ayant donc pris soit de ne pas mettre le paramètre instance au chargement de l'API
    J'ai donc tenté d'y ajouter l'argument "scale" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scales: [1000000, 633600, 500000, 253440, 250000,126720, 100000, 63360, 50000, 25000,10560,12500,10000,5000,2500,1250,1000,500,250],
    mais cela n'a rien changé...

    Premier élément de réponse de dgrichard :

    Citation Envoyé par dgrichard Voir le message
    C'est un sujet à part entière ! (je souhaiterai donc une autre discussion que celle-là).
    Le problème est que les échelles Géoportail (comme celle de Google, Bings, Yahoo, etc ...) vont de 2 en 2 : 250, 500, 1000, 2000, etc ... Dessiner au 1:1250 revient à étirer/compresser l'image retournée au 1:1000 ou 1:2000. C'est ce mécanisme qui est à regarder dans l'API.
    ok pour les échelles "prédéfinies" je comprends qu'il soit compliqué d'étirer ou de réduire les pyramides existantes pour atteindre une échelle précise (1:1250 par exemple) mais comment faire pour simplement mettre l'api à l'échelle 1:2000 par exemple ...?

    P.S.: pour lire l'échelle en cours j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VISU.getMap().getScale())
    Y-a-t-il une fonction de ce genre pour définir l'échelle en cours ? (dans la listes des échelles prédéfinies)


    Merci d'avance !

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 73
    Points : 33
    Points
    33
    Par défaut
    Bon c'est toujours quand on se décide à poster que l'on trouve la solution (ou une partie de solution ^^)

    Il y a donc bien évidement une fonction "zoomToScale" qui permet de définir l'échelle d'affichage (à partir du niveau de zoom le plus proche)

    Du coup je comprends mieux la réponde de dgrichard... quand j'essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VISU.getMap().zoomToScale(25000,false);
    j'arrive au 1:45354...

    et quand j'essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VISU.getMap().zoomToScale(25000,true);
    j'arrive au 1:22667...


    est-ce que cela veut dire qu'il n'y a pas de fond du géoportail entre ces deux échelles ...? les fonds ont-il réellement été générés au 1:45354 et 1:22667ème ??

    EDIT : je pense qu'un élément de réponse se trouve ici SettingZoomLevels mais j'avoue ne pas réellement comprendre la différence entre zoom, échelle et résolution ...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 73
    Points : 33
    Points
    33
    Par défaut
    Petit up... personne pour m'éclairer ou me donner une piste pour choisir mes niveaux d'échelle ...?

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par Sigmax Voir le message
    Petit up... personne pour m'éclairer ou me donner une piste pour choisir mes niveaux d'échelle ...?
    Les échelles / zooms sont définis !

    Comme je l'ai écrit les pyramides de cartesGéoportail sont callées sur ces échelles / zoom / résolutions :

    l'échelle 1:250 correspond à la résolution 6,25cm/pixel pour un DPI de 101.6 (simple, non ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    250 = 101.6 /( 0.0254 * 0.0625)
    0.0254 étant le nombre de mètres par inch.

    Le retour de zoomToScale() est donc l'interprétation de cette formule par OpenLayers qui utilise 72 DPI comme « sensible default » ...

    Se mettre au 1:25000ième, c'est donc se mettre soit au 1:32000ième soit au 1:16000ième ...

    Les tuiles font 256x256 à ces échelles exactes, dessiner exactement au 1:25000ième, reviendrait à étirer les tuiles du 1:16000ième ou compresser les tuiles du 1:32000ième - c'est un sujet à part entière

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/11/2010, 17h04
  2. Réponses: 1
    Dernier message: 30/01/2010, 20h25
  3. Cacher les boîtes affichées par défaut (outils, couches)
    Par pepelele dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 09/01/2010, 10h04
  4. test sur les panel affiché par cardlayout
    Par nesrinebm dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 22/02/2009, 01h26
  5. Réponses: 10
    Dernier message: 02/04/2007, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo