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 :

Fonctionnement de OverviewMap


Sujet :

IGN API Géoportail

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut Fonctionnement de OverviewMap
    Je viens de faire un test http://atlasnw.free.fr/geoportail/ex...eta5/over.html

    En bas à droite, au dessus du logo de l'IGN, on a bien un petit signe +.
    Mais le "popup" qui s'affiche ne contient aucune carte.

  2. #2
    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
    C'est normal

    Le contrôleur OverviewMap utilise une pile de couches pour afficher les données à sa création...
    Si cette pile est vide (c'est ton cas), il utilise la baseLayer de la carte principale. Hors, les baseLayers de l'API sont des cartes vides qui ne servent qu'à gérer la projection et l'emprise totale de la carte

    Il faudrait que tu ajoutes quelque chose comme (à vérifier cependant) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    viewer.getMap().addControl(new OpenLayers.Control.OverviewMap({
        layers:[viewer.getMap().getLayersByName("GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC")[0]]
    }));
    Après il faudrait jouer sur la couche dans l'overview (la carte en Miller par exemple). Dans ce cas, il faudra tester avec d'autres options du contrôleur.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut
    Après modification, j'ai tout de suite une erreur:
    D is undefined
    http://localhost/geoportail/api/js/1...talExtended.js
    Line 4289 D.div.className="olLayerDiv";\n

  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
    La couche passée n'est visiblement pas bonne (le boggue intervient dans OpenLayers.Map.addLayer()) ...
    Ma proposition de codes doit donc être foireuse ...
    Je rajoute à ma TODO liste

  5. #5
    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 dgrichard Voir le message
    La couche passée n'est visiblement pas bonne (le boggue intervient dans OpenLayers.Map.addLayer()) ...
    Ma proposition de codes doit donc être foireuse ...
    Je rajoute à ma TODO liste
    Effectivement, voilà un code qui fonctionne chez moi :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
            var worldMap= ((viewer.getMap().getLayersByName('GEOGRAPHICALGRIDSYSTEMS.MAPS'))[1]).clone();
            worldMap.isBaseLayer= true;
            worldMap.opacity= worldMap.options.opacity= 1.0;
            var miller= worldMap.getNativeProjection().clone();
            var tbx= viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
            var ovDiv= OpenLayers.Util.getElement(tbx.id+'_ovmap');
            ovDiv.style.display= '';
            ovDiv.className= 'olControlOverviewMapContainer';
            var ovmap= new OpenLayers.Control.OverviewMap({
                    div:ovDiv,
                    layers:[worldMap],
                    mapOptions:{
                        resolutions:worldMap.resolutions.slice(0,4),
                        numZoomLevels:5,
                        maxExtent:(new OpenLayers.Bounds(-180,-90,180,90)).transform(OpenLayers.Projection.CRS84,miller),
                        minZoomLevel:0,
                        maxZoomLevel:4,
                        projection: miller,
                        units: miller.getUnits()
                    },
                    size: new OpenLayers.Size(72,36),
                    maxRatio: 128
                })
            viewer.getMap().addControl(ovmap);
            ovmap.maximizeControl();
    Cependant, plusieurs intervention ont été nécessaire :

    • la div tbx.id+'_ovmap' est en display:none dans la 1.0beta4/5, je l'ai passé en display:block. La classe CSS était aussi incorrecte; => le faire aussi dans le code en attendant (en rouge);
    • bug dans OpenLayers, la méthode showToggle() ne teste pas le cas dedans/dehors (Cf. [1]); => là aussi, c'est dans le code de développement, mais en attendant i lfaut le rajouter à la main;
    • CSS, modifications des CSS de base OpenLayers (Cf. [2]);
    • il me faut encore jouer sur la valeur de maxRatio pour avoir un rendu de la carte de contexte meilleur.

    [1]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        /**
         * Method: showToggle
         * Hide/Show the toggle depending on whether the control is minimized
         *
         * Parameters:
         * minimize - {Boolean}
         */
        OpenLayers.Control.OverviewMap.prototype.showToggle= function(minimize) {
            if (!this.outsideViewport) {//IGNF
                this.maximizeDiv.style.display = minimize ? '' : 'none';
                this.minimizeDiv.style.display = minimize ? 'none' : '';
            }
        };
    [2]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    .olControlOverviewMapContainer {
      float:left;
      position:relative;
      top:0px;
      right:0px;
      margin-top: 1px;
      border:1px solid #606060;
    }
    .olControlOverviewMapElement {
        padding: 0px;
        background-color: #99CCFF;
        -moz-border-radius:0px;
    }

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut Merci, la miniature est présente
    Voici ce que cela donne:
    http://atlasnw.free.fr/geoportail/ex...a5/over_2.html

    C'est un peu trop miniature, je vais essayer de me plonger dans le code d'OpenLayers pour avoir leur positionnement/taille.

    Et un grand merci pour la partie sur "miller", elle ne s'invente pas!

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut La carte a un autre emplacement
    Sur mon grand écran, je préfère comme cela
    http://atlasnw.free.fr/geoportail/ex...a5/over_3.html

    Bon d'accord, je perds les logos ...

    Je n'arrive pas à régler augmenter le niveau de zoom (plus de détails) dans cette fenêtre.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut Synchronisme
    La carte "Over" n'est pas centrée comme la carte principale: ce n'est pas loin mais il y a un écart notable.

  9. #9
    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 mga_geo Voir le message
    Bon d'accord, je perds les logos ...
    Petit problème qui peut se règler avec des CSS

    Citation Envoyé par mga_geo Voir le message
    Je n'arrive pas à régler augmenter le niveau de zoom (plus de détails) dans cette fenêtre.
    C'est ce que j"écrivais, il faut jouer avec l'option maxRatio (ou minRatio) ...

    PS: modifie localhost en atlasnw.free.fr dans ton post.

  10. #10
    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 mga_geo Voir le message
    La carte "Over" n'est pas centrée comme la carte principale: ce n'est pas loin mais il y a un écart notable.
    Je pense que c'est le même écart que celui rapporté avec la couche photo dans une autre discussion ...
    Nous avons corrigé cela sur notre environnement de développement (problèmes de géoréférencement de la carte et du calcul des données NASA ...)

    As-tu essayé avec un WMS mondial en WGS84 pour vérifier cela ?

  11. #11
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    • Pourrait-on nous renseigner sur les paramètres suivants:

    resolutions:
    numZoomLevels:
    minZoomLevel:
    maxZoomLevel:
    minRatio:
    maxRatio:

    Je modifie bien leur valeur (une à une), mais je comprend très mal leur fonction précise



  12. #12
    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 cmail Voir le message
    resolutions:
    Tableau de résolutions (unité de la carte en pixel) triée par ordre décroissant. Par exemple : 0.125 signifie si l'unité de la carte est le mètre 12,5 cm par pixel.

    Citation Envoyé par cmail Voir le message
    numZoomLevels:
    Nombre total de niveaux de zooms sur la carte. C'est un nombre inférieur ou égal à la longueur du tableau des résolutions.

    Citation Envoyé par cmail Voir le message
    minZoomLevel:
    Niveau de zoom arrière minimal

    Citation Envoyé par cmail Voir le message
    maxZoomLevel:
    Niveau de zoom avant maximal

    Citation Envoyé par cmail Voir le message
    minRatio:
    rapport entre la résolution de la carte de situation et la carte principale à partir duquel un zoom arrière est fait sur la carte de situation

    Citation Envoyé par cmail Voir le message
    maxRatio:
    rapport entre la résolution de la carte de situation et la carte principale à partir duquel un zoom avant est fait sur la carte de situation

    Citation Envoyé par cmail Voir le message
    Que doit faire OpenLayers.Control.OverviewMap.prototype.showToggle?
    Cette méthode ne sert qu'à cacher/afficher la carte de situation si celle-ci sur trouve dans un contrôleur le permettant.
    Dans l'exemple cité, elle ne fait rien.

  13. #13
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Je te remercie pour ta réponse, mais cela ne m'avance pas beaucoup.... Alors, je vais reprendre mes questions d'une manière différente (en espérant que tes réponses me débloquent d'autres points.

    • D'abord, j'aimerais que dans dans le cadre overview, la carte qui s'affiche soit systématiquement à un niveau zoom-2 par rapport au zoom de la carte affichée dans l'API.
    • Si je reprends ta citation
    bug dans OpenLayers, la méthode showToggle() ne teste pas le cas dedans/dehors (Cf. [1]); => là aussi, c'est dans le code de développement, mais en attendant i lfaut le rajouter à la main;
    Cela veut dire que tu as constaté que la méthode showToggle() de OL est à remplacer par celle que tu donnes en dessous, mais qu'il faut compléter par???
    Seulement si je me réfère à l'exemple http://openlayers.org/dev/examples/overviewmap.html j'ai des difficultés (comme d'habitude ) à cerner les lignes ouvrant au controle de l'overview...

  14. #14
    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 cmail Voir le message
    *D'abord, j'aimerais que dans dans le cadre overview, la carte qui s'affiche soit systématiquement à un niveau zoom-2 par rapport au zoom de la carte affichée dans l'API.
    Comme écrit OpenLayers se base sur des rapports de résolutions. Les résolutions Géoportail sont en facteur de 2. Un zoom-2 serait donc un facteur de 4 ... si tes résolutions sont les mêmes dans l'overview et la carte principale. Il suffirait alors de mettre le minRatio et le maxRation à 4. A tester bien sûr

    Citation Envoyé par cmail Voir le message
    *Si je reprends ta citation Cela veut dire que tu as constaté que la méthode showToggle() de OL est à remplacer par celle que tu donnes en dessous, mais qu'il faut compléter par???
    Seulement si je me réfère à l'exemple http://openlayers.org/dev/examples/overviewmap.html j'ai des difficultés (comme d'habitude ) à cerner les lignes ouvrant au controle de l'overview...
    J'ai bien compris qu'avec Google tu as des multitudes d'exemples sur lesquels d'appuyer, alors qu'avec OpenLayers et l'API Géoportail, il faut faire un effort supplémentaire de formation, mais de nouveau il faut le faire ! L'exemple que tu cites montre deux utilisations des cartes de contexte. La seconde ne fonctionnant que très moyennement Le code est néanmoins clair car structuré et commenté (en anglais certes, mais il existe des outils en ligne pour cela ). Il suppose néanmoins que tu regardes la documentation développeur pour comprendre le rôle des options.

  15. #15
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Je te réponds rapidement:
    La seconde ne fonctionnant que très moyennement
    C'est aussi mon avis... Ou alors quelque chose m'échappe...

    Il suppose néanmoins que tu regardes la documentation développeur pour comprendre le rôle des options.
    Je suis d'accord avec toi, mais tu me renvoies sur cette url http://dev.openlayers.org/docs/files...iewMap-js.html alors que je regardais jusqu'à présent celle-ci http://dev.openlayers.org/releases/O...erviewMap.size beaucoup moins bien renseigné (et pourtant plus récente non?)... J'essayerai de faire gaffe pour la prochaine fois.
    Merci pour ton réacheminement

  16. #16
    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 cmail Voir le message
    Je suis d'accord avec toi, mais tu me renvoies sur cette url http://dev.openlayers.org/docs/files...iewMap-js.html alors que je regardais jusqu'à présent celle-ci http://dev.openlayers.org/releases/O...erviewMap.size beaucoup moins bien renseigné (et pourtant plus récente non?)...
    Tu regardes la bonne documentation : celle de la version 2.8 d'OpenLayers. De mon côté, je regarde celle des développements en cours

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2003, 16h51
  2. Réponses: 5
    Dernier message: 14/05/2003, 14h51
  3. [Turbo Pascal] TP7 fonctionne en QWERTY
    Par callahan dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 08/02/2003, 21h49
  4. Prb de fonctionnement dans SaveDialog avecInitialDir
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/12/2002, 21h46
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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