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 :

Utilisation des popups comme marqueurs


Sujet :

IGN API Géoportail

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 119
    Points : 1 764
    Points
    1 764
    Par défaut Utilisation des popups comme marqueurs
    J'ai réutilisé l'idée de Mick Helley pour le nom de ses bateaux: un popup permanent sur ces 2 exemples
    * http://atlasnw.free.fr/web/geoportai.../communes.html
    * http://atlasnw.free.fr/web/geoportai...es/carres.html

    Le premier charge un fichier kml communes35.kml avec les noms des communes et les indexe.

    Le second charge un fichier kml L93_35.kml avec la découpe en carrés 10x10km du département.
    La partie qui fait le travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
          var ll = feature.geometry.getBounds().getCenterLonLat();
          var popup = new OpenLayers.Popup(null, ll, new OpenLayers.Size(1,1), "<font size=+1>" + feature.attributes['name'] + "</font>", false);
          popup.setBackgroundColor("transparent");
          popup.setBackgroundColor("orange");
          popup.setOpacity(0.8);
    			popup.autoSize = true;
          popup.disableFirefoxOverflowHack = true;
          layer.this.map.addPopup(popup);

  2. #2
    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
    Cela m'aurait étonné que cela soit si simple!
    Et cela me renvoie toujours à ma triste condition.
    J'ai essayé de transférer ton code de communes.html vers mon application (introduit dans le fichier htm par //mga_geo COMMUNE) pour essayer d'afficher le nom des deux départements (issus de 0743.kml) sur ma carte.
    Bien sur, comme dans un tunnel, par temps de brouillard, la nuit, je tâtonne pour essayer d'afficher ces deux popups...

    Et merci encore pour tes contributions qui me semblent très importants, même si je n'y comprends pas grands choses...
    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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 119
    Points : 1 764
    Points
    1 764
    Par défaut Une version plus simple
    http://atlasnw.free.fr/web/geoportai...panonceau.html

    Sur cette version, j'utilise le onFeatureInsert pour faire l'ajout du popup

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Dans la dernière version de ma page, http://vigie2.bordeaux-port.fr:81/ais/exterieur.cfm, on peut maintenant avoir plusieurs popups ouverts en même temps. On ouvre un popup en cliquant sur un bateau ou sur une de ses traces. Voir fonctions f_mouseout, f_mousemove, f_click & f_close.

  5. #5
    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
    En effet, la dernière version de mga_geo (dite kml_panonceau) est plus simple à adapter... Puisque j'y suis arrivé!
    Maintenant, je vais peaufiner la mise en forme. Merci!
    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. #6
    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 minZoomLevel et maxZoomLevel
    Si dans une certaine gamme d'échelle, ces étiquettes peuvent répondre à un besoin, quand le niveau du zoom diminue les étiquettes se chevauchent et cela devient cracra.
    Dans mon cas, j'ai introduit deux étiquettes (les noms des départements) dans un fichier kml spécifique et je pensais (candidement) que les étiquettes disparaitraient en jouant sur minZoomLevel et maxZoomLevel...
    Bernique! Dommage, car je ne sais pas encore comment résoudre le problème.
    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. #7
    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
    Je sais que la soluce (Cf. dans cette discussion) n'a pas été utilisée, mais elle fonctionne pour plusieurs raisons :


    1. On peut paramétrer les échelles d'affichage de la couche de labels indépendamment de la couche "labellisée" (dans la limite de la plage d'échelles de cette dernière tout de même) ;
    2. La couche de label disparaît/apparaît avec la couche qu'elle "labellise";
    3. Elle ne dépend pas de la gestion d'une autre couche KML qui sur un clic détruirait toutes les popups actuellement présentes dans la carte (ce qui est le comportement par défaut d'OpenLayers).

    Elle est certes plus complexe, mais en attendant OL 2.8, elle est fonctionnelle ...

  8. #8
    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 openWikipediaPopup
    Cher Dgrichard,
    En son temps, j'avais bien essayé ta solution (pour le code voir ici). Malheureusement, comme tu pourras le constater, une erreur sur la définition de openWikipediaPopup apparait: Problème anodin pour toi, mais un peu plus complexe pour moi.
    Aussi, au lieu de t'embêter alors avec cette babiole, je décidais de patienter jusqu'à la MAJ pour voir si à partir de l'exemple promis, j'avais davantage de renseignements pour résoudre mon problème.
    En attendant, faute de grive, je me suis rabattu sur l'alouette de mga_geo, (ornithologiste réputé )
    Mais bon, si tu peux me dépanner en attendant la MAJ, avec ta solution qui semble plus aboutie...
    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

  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
    Effectivement, le code du onSelect (openWikimediaPopup) manquait.
    Comme son nom l'indique, lors du clic sur le picto, une nouvelle fenêtre s'ouvre ...

    Voici le code (à adapter) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        function openWikipediaPopup(f) {
            if (f) {
                //get Extendata/Data[name="url"]/value :
                window.open(f.data.url.value,
                            "Wikipedia",
                            "width=750,height=350,menubar=no,status=no,scrollbars=yes,resizable=yes");
                this.unselect(f);
            }
        }
    La première chose à faire dans ta page est de commenter le onSelect car l'erreur empêche le reste de la page de se charger correctement. Au mieux, commente onSelect et onUnselect pour revenir au comportement par défaut. Après tu pourras adapter la fonction à ton besoin.

  10. #10
    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
    OK, maintenant j'affiche les étiquettes. Seulement, à moins d'une erreur de ma part, elles ne disparaissent pas en fonction des minZoomLevel et maxZoomLevel de la couche labely.
    Non?

    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

  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
    Citation Envoyé par dgrichard Voir le message
    La première chose à faire dans ta page est de commenter le onSelect car l'erreur empêche le reste de la page de se charger correctement. Au mieux, commente onSelect et onUnselect pour revenir au comportement par défaut. Après tu pourras adapter la fonction à ton besoin.
    ????
    Pour moi, un commentaire est introduit par // ou /* en JS... Est-ce cela que tu me demandes de faire? Mais comment cela pourra influer sur onSelect et onUnselect?
    Il doit s'agir d'autre chose, mais je ne saisis pas encore très bien la chose.
    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

  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
    ????
    Pour moi, un commentaire est introduit par // ou /* en JS... Est-ce cela que tu me demandes de faire? Mais comment cela pourra influer sur onSelect et onUnselect?
    Il doit s'agir d'autre chose, mais je ne saisis pas encore très bien la chose.
    Ben oui, tu commentes et du coup, c'est l'API Géoportail qui prend la main sur les onSelect/onUnselect !

  13. #13
    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
    OK, maintenant j'affiche les étiquettes. Seulement, à moins d'une erreur de ma part, elles ne disparaissent pas en fonction des minZoomLevel et maxZoomLevel de la couche labely.
    Non?
    Je regarderai ce soir ...

  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 dgrichard Voir le message
    Je regarderai ce soir ...
    Cela fonctionne parfaitement !
    J'ai modifié la min/max de la couche de labels pour qu'elle s'allume après les pictos du KML (un zoom de plus) et s'éteigne avant les pictos du KML (un zoom de moins). Tout cela sans problèmes.

  15. #15
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    379
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 379
    Points : 194
    Points
    194
    Par défaut
    Bonjour,
    J'ai transposé le traitement sur mon chargement de KML...cela marche bien à une exception près...de mon côté, j'ai un affichage de popup sur le click d'un élément...et quand je clique sur un élément pour afficher son popup, toutes les bulles d'aide disparaissent...il faut alors décocher et recocher la visibilité de la couche des bulles d'aide pour les voir réapparaître...

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 119
    Points : 1 764
    Points
    1 764
    Par défaut Echec
    Eh bien moi je n'y arrive pas!
    cf mon essai d'exemple:
    http://atlasnw.free.fr/web/geoportai...ml_didier.html

  17. #17
    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
    Citation Envoyé par dgrichard Voir le message
    Cela fonctionne parfaitement !
    J'ai modifié la min/max de la couche de labels pour qu'elle s'allume après les pictos du KML (un zoom de plus) et s'éteigne avant les pictos du KML (un zoom de moins). Tout cela sans problèmes.
    Dgrichard:
    Bien. Si tu as le temps, regarde ma page test où cela ne semble pas fonctionner. Surement un truc oublié, ou bien une commande pas à sa place, comme d'hab... Sinon, j'attendrai la mise en ligne de la page d'exemple à la Mi-juin, pour analyser le tout. Non?

    Et pour Mga_geo: Si, si, cela fonctionne! mais à un zoom proche du "département" (je ne sais pas encore à quel degré de zoom cela correspond exactement: environ 9 ou 10) et en cochant la couche "didier"...
    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

  18. #18
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    379
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 379
    Points : 194
    Points
    194
    Par défaut
    pour mga_geo :

    essaie en mettant :

    minZoomLevel: 13,
    maxZoomLevel:20,

  19. #19
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    379
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 379
    Points : 194
    Points
    194
    Par défaut
    pour cmail :

    qu'est-ce qui ne marche pas sur ta page ?...on voit bien les bulles d'aide...

  20. #20
    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
    Pour être un peu plus précis sur mon problème à la page suivante:
    1/ La couche "popup" qui renvoie au kml avec les "étiquettes" se désactive bien au delà et en deça des limites de zoom donné par minZoomLevel et
    maxZoomLevel. Les pastilles orangées de repère des étiquettes s'effacent correctement. Mais les étiquettes restent bien à l'écran.
    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. Réponses: 1
    Dernier message: 01/08/2009, 10h54
  2. Meilleure utilisation des tableaux comme hashtable?
    Par Eric80 dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2009, 15h03
  3. utiliser des touches comme déclencheur d'animation
    Par claque dans le forum Powerpoint
    Réponses: 1
    Dernier message: 30/05/2008, 10h39
  4. Utiliser des classes, comme en php ?
    Par Titi41 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/05/2008, 16h20
  5. Utilisation des popup
    Par licorne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/09/2006, 17h37

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