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 :

modification fichier autoconf.xml


Sujet :

IGN API Géoportail

  1. #21
    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
    Si ta remarque me semble (j'hésite toujours à affirmer des propos sur un sujet que je ne maitrise pas comme les experts de l'IGN ou toi ou Marc...) juste pour un chargement avec le loader, cela me semble difficile à faire avec un chargement du viewer du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    viewer1 = new Geoportal.Viewer.Default(
    			"viewerDiv1",
    			OpenLayers.Util.extend({
    				minZoomLevel : 15,....
    dont le centrage se fait a posteriori via un "setCenterAtLonLat"...

    Non?
    Peut-on intégrer le centrage de la carte directement dans le viewer (sans passer par le loader)?
    Surement en surchargeant, mais j'hésite à m'aventurer sur ce chemin...
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  2. #22
    Membre confirmé Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Points : 522
    Points
    522
    Par défaut
    est-ce que passer les coordonnées dans l'URL lors du clic pourrait répondre au besoin?

    cet exemple explique comment le faire : http://api.ign.fr/tech-docs-js/examp...MNE%3C%2Fa%3E&

  3. #23
    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
    Acarme, l'exemple donné charge l'interfaceviewer via le loader...

    Moi, je charge mes viewer directement à partir de la primitive (est-ce le bon terme?) via Geoportal.Viewer.Default().
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  4. #24
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Le mécanisme proposé par acarme reste le même que ce soit un chargement par le loader ou directement en créant un viewer : l'idée est, au clic, d'appeler une URL avec les paramètres récupérés dans la page initiale et qui va initialiser le nouveau viewer avec ces paramètres.

  5. #25
    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
    Excusez. Je comprends vite, mais il faut m'expliquer longtemps.... Désolé.
    Je peux passer les coordonnées (lon lat) dans l'URL, (puis donc les récupérer) mais je ne comprends pas encore bien comment les intégrer directement lors de la création de mon viewer?
    Si ce n'est par un centrage a posteriori via un "setCenterAtLonLat" (comme déjà dit)...

    Autrement dit: je ne vois pas comment
    initialiser le nouveau viewer avec ces paramètres
    (lon,lat) comme le suggère Gilles (ou Acarme)?????

    Et dans le cas d'appel à "setCenterAtLonLat", cela ne supprime en rien l'apparition des dalles parisiennes, tant que setCenterAtLonLat n'est pas sollicité...

    Il est évident qu'avec le loader (qui intègre les options lon et lat), le problème n'existe pas....
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  6. #26
    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
    Hier, j'ai oublié de préciser ce qui suit:
    La transmission de certains paramètres à la création de viewer me pose un problème:

    Par exemple (mais c'est aussi le cas pour defaultCenter) [Par ailleurs, cet exemple sert bien à illustrer un processus de transmission de paramètres au viewer, et non sur la question simplette du zoom qu'on peut résoudre via minZoomLevel et maxZoomLevel) dans le codage suivant le zoom n'est pas pris en compte :
    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(
         "viewerDiv",
         OpenLayers.Util.extend({
              nameInstance: 'viewer',
           controlsOptions: {
                .....
             },
             defaultControls: {
               ..........
                 }
             } ,
    		 viewerOptions: {
    			  defaultZoom:14
    						  },
         },
    C'est surement du à une mauvaise connaissance de ma part... Ce n'est peut-être pas possible aussi simplement? Et une surcharge de la primitive s'impose?

    Pourtant dans l'analyse du DOM (via firebug), je vois dans viewer>options>viewerOptions>defaultZoom est bien =14 (donc mon codage est pris en considération), mais plus bas à la ligne viewerOptions>defaultZoom reste toujours =6....
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  7. #27
    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
    Reprenons.
    Actuellement, j'ai une page php qui charge les coordonnées d'un point A, et qui affiche plusieurs viewers.
    Mon objectif est de supprimer au chargement les requêtes aux tuiles de référence (soit de Paris dans le cas de l'autoconfig.json d'origine, soit d'un autre point fixe B avec un autoconfigPERSO.json)

    Quelques constats et corrigez-moi, si je me trompe.
    1/ Dans le cas des viewers, le passage des coordonnées de centrage ne se fait qu'après le chargement du viewer, donc après les instructions de l'autoconfig.json. Oui ou non? A moins de surcharger le viewer, mais là je rame (comme d'habitude!)
    2/ Il ne me semble pas possible de modifier dynamiquement l'autoconfigPERSO.json en lui attribuant les coordonnées du point A? Oui ou non?

    La solution facile (et alors à ma portée!) semble donc de passer par l'interfaceviewer via le loader. Seulement, ma première difficulté est que j'utilise (entre autres) une adaptation de cet exemple de l'IGN qui travaille sur.... les viewers! Alors que tous les autres exemples IGN ont été basculés sur l'interfaceviewer depuis longtemps! Pas de chance
    Je tente bien de l'adapter au chargement de deux interfaceviewer synchro, mais je m'épuise un peu. Les résultats ne sont pas probants. Comment doit-on opérer? Pensez-vous "actualiser" cet exemple avec deux interfaceviewer? Ce qui serait sympa! MercIGN
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  8. #28
    Membre averti
    Femme Profil pro
    Consultante SIG
    Inscrit en
    Mars 2011
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultante SIG

    Informations forums :
    Inscription : Mars 2011
    Messages : 233
    Points : 356
    Points
    356
    Par défaut
    Bonjour,
    1/ Dans le cas des viewers, le passage des coordonnées de centrage ne se fait qu'après le chargement du viewer, donc après les instructions de l'autoconfig.json. Oui ou non? A moins de surcharger le viewer, mais là je rame (comme d'habitude!)
    La solution dans votre cas serait en effet de surcharger le viewer afin qu'il ne se centre plus sur les coordonnées par défaut:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    Geoportal.Viewer.prototype.initialize= function(div, options) {
    		        // create container for viewer
            if (!div) {
                div= 'geoportalViewerDiv';
            }
            this.div= OpenLayers.Util.getElement(div);
            if(!this.div) {
                this.div= OpenLayers.getDoc().createElement("div");
                this.div.style.height= "1px";
                this.div.style.width= "1px";
                //OpenLayers.Console.error(OpenLayers.i18n('div.not.found',{id:div}));
                //return;
            }
            // jQuery :
            var ua= navigator.userAgent.toLowerCase();
            this.browser= {
                version: (ua.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0,'0'])[1],
                safari: /webkit/.test(ua) && !/chrome/.test(ua),
                opera: /opera/.test(ua),
                msie: /msie/.test(ua) && !/opera/.test(ua),
                mozilla: /mozilla/.test(ua) && !/(compatible|webkit)/.test(ua),
                chrome: /chrome/.test(ua)
            };
    
            options= options || {};
            var vlListener= null;
            if ((options.eventListeners instanceof Object) && (options.eventListeners["viewerloaded"] instanceof Function)) {
                vlListener= options.eventListeners["viewerloaded"];
                delete options.eventListeners["viewerloaded"];
            }
            // set the default options
            this._setOptions(options);
    
            // Layout :
            var mapDiv= this.loadLayout(options.layoutOptions);
            if (!mapDiv) {
                OpenLayers.Console.error(OpenLayers.i18n('div.not.found',{id:this.div.id||''}));
            }
            // Create map
            // under Mozilla inserting CSS somewhere else than at the end of the
            // head breaks the page ...
            // works well under IE8/Safari4beta ...
            // first insert OpenLayers CSS at the right place (prevents OL to append it to head) :
            var cssAnchor0= '__OpenLayersCss__';
            //OpenLayers.Console.log("OpenLayers="+OpenLayers._getScriptLocation());
            //OpenLayers.Console.log("Geoportal ="+Geoportal._getScriptLocation());
            var oef= Geoportal.Util.loadCSS(OpenLayers._getScriptLocation()+'theme/default/style.css',cssAnchor0,'');
            var cssAnchor1= '';
            if (oef[1]) { // __OpenLayersCss__ created :
                if (OpenLayers.Util.alphaHack()) {
                    cssAnchor1= '__IE6OpenLayersCss__';
                    Geoportal.Util.loadCSS(OpenLayers._getScriptLocation()+'theme/default/ie6-style.css',cssAnchor1,'');
                }
                cssAnchor1= '__GoogleOpenLayersCss__';
                Geoportal.Util.loadCSS(OpenLayers._getScriptLocation()+'theme/default/google.css',cssAnchor1,'');
            }
            this.map= new Geoportal.Map(mapDiv, this.viewerOptions);
            this.map.setApplication(this);
    
            // default OL style loaded, let's load Geoportal style :
            if (!options.theme) {
                this.loadTheme();
            } else {
                // load user's theme :
                this.setTheme(options.theme);
            }
    //        if (this.browser.msie===true) {
    //            // load cur relatively to the API :
    //            OpenLayers.Element.addCss('.gpControlSliderBaseHandle{cursor:url('+Geoportal._getScriptLocation()+'theme/geoportal/img/roam.cur),pointer;}');
    //            OpenLayers.Element.addCss('.gpControlSliderBaseHandleDown{cursor:url('+Geoportal._getScriptLocation()+'theme/geoportal/img/roaming.cur),pointer;}');
    //        }
    
            if (options.useDefaultBaseLayers!==false) {
                this._addTerritoriesBaselayers();
            }
            if (!this.allowedDisplayProjections) {
                this.allowedDisplayProjections= this.viewerOptions.catalogue.getDisplayProjections(this.territory,null,true);
            }
            if (!this.displayProjection) {
                this.displayProjection= this.allowedDisplayProjections[0].clone();
                this.getMap().displayProjection= this.displayProjection;
            }
            if (options.controls==null || options.controls.length==0) {
                this.loadControls(options.controlsOptions);
            }
            this.completeLayout(options.layoutOptions);
    
            this.events= new OpenLayers.Events(this,null,this.EVENT_TYPES,this.fallThrough,{includeXY:false});
            if (vlListener) {
                this.events.on({"viewerloaded":vlListener});
            }
    
            this.unloadDestroy= OpenLayers.Function.bind(this.destroy, this);
            OpenLayers.Event.observe(window, 'unload', this.unloadDestroy, false);
    
            // this handler was the first to be executed ... under FF it disables
            // all other listening to window.onunload. We remove it and append it
            // again at the end of the events queue ...
            OpenLayers.Event.stopObserving(window, 'unload', OpenLayers.Event.unloadCache, false);
            OpenLayers.Event.observe(window, 'unload', OpenLayers.Event.unloadCache, false);
    
            this.onMapReadyFunc= OpenLayers.Function.bind(function() {
                    if (this.isMapReady()===true) {
                        if (this.mapReadyInterval) {
                            window.clearInterval(this.mapReadyInterval);
                            this.mapReadyInterval= null;
                        }
                        this.events.triggerEvent("viewerloaded", {
                            'id'    :this.id,
                            'viewer':this
                        });
                    }
                },this);
            this.mapReadyInterval= window.setInterval(this.onMapReadyFunc, 200);
    
            if (!vlListener) {
               // this.getMap().setCenter(this.viewerOptions.defaultCenter, this.viewerOptions.defaultZoom);
            }
        }
    Ce code est à ajouter dans le corps de la méthode liée à l'évènement onload.
    2/ Il ne me semble pas possible de modifier dynamiquement l'autoconfigPERSO.json en lui attribuant les coordonnées du point A? Oui ou non?
    C'est faisable mais la première solution est plus simple.

  9. #29
    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
    Bon. A mes premiers tests, la surcharge du viewer divise par 2 (cela me semble assez logique) le nombre de requetes avec toutes ses conséquences...

    MercIGN donc pour cette contribution... Je perdais mon temps avec _setOptions.... Pas la bonne entrée et surement aussi pas les bonnes lignes de code...

    Je vais donc continuer avec mes viewers...

    Sinon, à l'occasion, je serai aussi curieux de voir comment vous introduisez les interfaceviewer dans l'exemple des 2 cartes synchro...
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

Discussions similaires

  1. modification fichier web.xml
    Par sky88 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 26/04/2011, 12h15
  2. Modification fichier XML
    Par pitch21 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 03/11/2008, 08h39
  3. Modification fichier xml
    Par Jasou62114 dans le forum Web
    Réponses: 6
    Dernier message: 23/01/2008, 15h42
  4. War déployé et modifications (fichiers, web.xml)
    Par aravis dans le forum Websphere
    Réponses: 2
    Dernier message: 03/09/2007, 13h31
  5. [VB.NET] modification fichier XML
    Par betaphp dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/11/2005, 11h13

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