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 :

Seconde couche dans overviewmap


Sujet :

IGN API Géoportail

  1. #1
    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 Seconde couche dans overviewmap
    Suite à http://www.developpez.net/forums/d90...p/#post5123888

    Comme je parts souvent sur de fausses pistes, peux-tu me dire si mon raisonnement (en terme non js pro) est bon:

    1. J'ai la création du controle de l'overviewmap qui se matérialise de la manière suivante:
      var ovmap1= new OpenLayers.Control.OverviewMap({
      layers:[overviewLayer],
      mapOptions:{....
      },
      ....
      });
      viewer.getMap().addControl(ovmap1);
    2. Tu me demandes de : "Utiliser la propriété ovmap du contrôle". J'aurai tendance à poursuivre le code ci-dessus avec:
      ovmap1.ovmap.addLayer(
      new OpenLayers.Layer.GML(
      "Mazet",
      "./kml/mazetCadastre2.kml",
      { format:OpenLayers.Format.KML ....
      }));
    3. Pour trouver les autres options du Layer (qui "surchargent" celles du Map) à ajouter, je vais dans le code de Layer.js sur le code source venant des archives API soit au chemin geoportal-1.0\js\1.0\lib\openlayers\lib\OpenLayers\Layer.js puisque les options de cette classe n'ont pas été surchargées dans geoportal-1.0\js\1.0\lib\geoportal\lib\Geoportal\Layer.js
    4. J'y trouve les "options" (propriétés, constantes, etc.) suivantes avec leur valeur par défaut:
      id: null,
      name: null,
      div: null,
      opacity: null,
      alwaysInRange: null,
      EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged","move", "moveend"],
      events: null,
      map: null,
      isBaseLayer: false,
      alpha: false,
      displayInLayerSwitcher: true,
      visibility: true,
      attribution: null,
      inRange: false,
      imageSize: null,
      imageOffset: null,
      options: null,
      eventListeners: null,
      gutter: 0,
      projection: null,
      units: null,
      scales: null,
      resolutions: null,
      maxExtent: null,
      minExtent: null,
      maxResolution: null,
      minResolution: null,
      numZoomLevels: null,
      minScale: null,
      maxScale: null,
      displayOutsideMaxExtent: false,
      wrapDateLine: false,
      transitionEffect: null,
      SUPPORTED_TRANSITIONS: ['resize'],
    5. Parmi ces "options", les deux suivantes sont incontournables dans un premier temps:
      opacity: 1,
      visibility:true, (Même si cette dernière est d'origine à true)
      ce que j'écris dans :
      ovmap1.ovmap.addLayer(
      new OpenLayers.Layer.GML(
      "Mazet",
      "./kml/mazetCadastre2.kml",
      { opacity: 1,
      visibility:true,
      format:OpenLayers.Format.KML
      }));

    Après ce bel effort de compréhension , évidemment (pour toi, dgRichard, du moins!), la couche mazetCadastre2.kml ne s'affiche pas dans l'overviewmap . Est-ce que c'est

    1. Parce que je fais fausse route dans mon raisonnement précédent? Auquel cas, il faudra me rediriger comme tu sais si bien le faire.
    2. Ou bien parce qu'il manque certaines "options" fondamentales dont certaines me sont vraiment incompréhensibles ? Auquel cas, je continuerai à triturer mon code...

  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
    Essaie alors quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var kml= new OpenLayers.Layer.GML(
            "Mazet",
            "./kml/mazetCadastre2.kml",
            {    format:OpenLayers.Format.KML ....
            }));
    var ovmap1= new OpenLayers.Control.OverviewMap({
            layers:[overviewLayer, kml],
            mapOptions:{....
            },
            ....
        });
      viewer.getMap().addControl(ovmap1);
    Ne pas oublier aussi qu'OL ne gère pas nativement les changements de projections associés à des changements de carte ... Il faut donc que ta carte et ton KML reste dans la même projection (celle de overviewLayer de préférence).

  3. #3
    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
    Ne pas oublier aussi qu'OL ne gère pas nativement les changements de projections associés à des changements de carte ... Il faut donc que ta carte et ton KML reste dans la même projection (celle de overviewLayer de préférence).
    Je ne comprends pas bien (s'il n'y avait que cela! ) toutes ces questions de projections... Qui, en fait, étaient à l'origine de mes problèmes.
    En rajoutant " projection:OpenLayers.Projection.CRS84," aux options de new OpenLayers.Layer.GML le kml s'affiche en bonne place dans l'overviewmap et surtout est synchrone avec la carte de base.

    Par contre, je m'étonne un peu que "projection:overviewLayer (ou bien overviewPrms).options.projection.clone()," n'est pas correct.

    Autre constat étonnant, c'est que la "color" de mes styles kml se transforme dans l'overviewmap ?

  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 cmail Voir le message
    En rajoutant " projection:OpenLayers.Projection.CRS84," aux options de new OpenLayers.Layer.GML le kml s'affiche en bonne place dans l'overviewmap et surtout est synchrone avec la carte de base.
    Normal, la projection en question est la projection Géoportail, tes coordonnées KML sont bien en CRS84

    Citation Envoyé par cmail Voir le message
    Par contre, je m'étonne un peu que "projection:overviewLayer (ou bien overviewPrms).options.projection.clone()," n'est pas correct.
    Cf. supra ...

    Citation Envoyé par cmail Voir le message
    Autre constat étonnant, c'est que la "color" de mes styles kml se transforme dans l'overviewmap ?
    J'aimerai voir [Résolu] si nécessaire, puis une autre discussion ...
    La couleur s'applique quant extractStyles:true à la création du KML ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. décalage des cartes dans Overviewmap
    Par cmail dans le forum IGN API Géoportail
    Réponses: 38
    Dernier message: 18/12/2010, 20h54
  2. Bouton ouverture/fermeture dans Overviewmap
    Par cmail dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 05/04/2010, 10h47
  3. Baselayer: Couche dans le gestionnaire
    Par cmail dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 28/03/2010, 14h09
  4. Afficher un second formulaire dans la page du premier
    Par sarazara dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 23/04/2009, 17h51
  5. Appel de Jsp d'un second projet dans un projet principal
    Par shaun_the_sheep dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 21/09/2006, 11h04

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