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 :

Popups capricieuses avec Firefox


Sujet :

IGN API Géoportail

  1. #1
    Membre averti Avatar de Zébulon-21
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 315
    Points
    315
    Par défaut Popups capricieuses avec Firefox
    J'essaye de mettre mes pages au goût du jour avec la version 1.0

    L'affichage des popups fonctionne normalement sous IE8 et Chrome mais Firefox n'affiche que le 1er élément situé sur la page de code :

    - Soit les marqueurs dans ce cas,

    - Soit le tracé dans celui là.


    Un petit conseil S.V.P. ?

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Un des exemples de la distribution peut aidier
    Sur l'exemple http://atlasnw.free.fr/geoportail/ap...ltiLayers.html, on voit comment mettre un contrôle sur 2 couches à la fois.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Zébulon-21 Voir le message
    J'essaye de mettre mes pages au goût du jour avec la version 1.0

    L'affichage des popups fonctionne normalement sous IE8 et Chrome mais Firefox n'affiche que le 1er élément situé sur la page de code :
    - Soit les marqueurs dans ce cas,
    - Soit le tracé dans celui là.
    Bonjour,

    Tu as le même problème que j'avais avec la v1.0beta4 et qui est relaté . Test à faire : si tu décoches la couche qui "marche", l'autre "marchera".
    La solution que j'avais adoptée consistait à modifier le z-index de la div qui hébergeait ma couche markers. Dgrichard m'avait suggéré une solution pour la v1.0beta5 que je n'avais pas testée.
    Ma solution ne fonctionne plus avec la v1.0 car l'attribution de l'id (avec des chriffres) de la div varie d'un moment à l'autre, ni celle de Dgrichard.
    J'ai donc résolu le pb avec la routine suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var divs = document.getElementsByTagName('div');
    for (i=0; i<divs.length; i++) {
    		if (divs[i].getAttribute('id')) {
    		var id = divs[i].getAttribute('id');
    			if (id.substr(0,25) == 'OpenLayers.Layer.Markers_') {
    									divs[i].style.zIndex = 800;
    				}
    		}
    	}
    Je modifie toujours le z-index, mais en passant en revue les id des div.
    Cela marche, pas très élégant comme solution, si quelqu'un à une autre idée je suis preneur.

    Jean-Luc.

  4. #4
    Membre averti Avatar de Zébulon-21
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 315
    Points
    315
    Par défaut
    Je viens de tester avec FIREFOX ta "routine" sur cette page.

    Ai-je placé le code dans les règles de l'art car les clics sur les marqueurs ne lancent toujours pas de popup.

    Faut-il également que je bidouille les div ?
    Peux-tu m'expliquer la manip ?
    Je modifie toujours le z-index, mais en passant en revue les id des div.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Zébulon-21 Voir le message
    Peux-tu m'expliquer la manip ?
    Ma routine récupère l'ensemble des div et lorsqu'elle trouve celle dont l'id est OpenLayers.Layer.Markers_xxx (xxx = nombre qui peut varier) elle met le z-index à 800, valeur supérieure au z-index de la div couche GPX (=725), ce qui place la couche marqueur au dessous de la couche GPX, la rendant cliquable.
    Cette routine n'est pas applicable en l'état pour ton cas, car :
    - je gère 2 couches, une GPX et une marqueur, dont les div ont respectivement des id de la forme OpenLayers.Layer.GML_xxx et OpenLayers.Layer.Markers_xxx, donc différentiables,
    - tu gères 2 couches, une GPX et une KML qui, toutes les 2, sont mises dans des div dont l'id est de la forme OpenLayers.Layer.GML_xxx, donc pas discriminant pour ma routine. Et les 2 div ont le même z-index (725) !

    La solution que tu peux adopter est de faire un seul fichier de type KML(qui intègre les icones), donc une seule couche.
    Je n'en vois pas d'autre pour l'instant.

    Dgrichard m'avait proposé une solution, mais elle ne marche pas.

    Jean-Luc.

  6. #6
    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
    Récapitons (encore une fois ...) :

    * IE/Chrome: les couches activées laissent passer l'évènement, donc : les popups montent toujours pour toutes les couches ;
    * FF: seule la dernière couche activée permet d'afficher les popups ... l'évènement ne semble pas être passé aux autres couches.

    La solution d'associer un select à plusieurs couches permet de contourner celà.

    Il est possible que l'API Géoportail provoque cette erreur, mais j'ai pas trouvé (encore) si c'est vraiment le cas ...

    Je suis preneur d'idée (comme d'hab) pour améliorer ce comportement.

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Sélection sur plusieurs couches
    Je viens d'essayer sur la page http://atlasnw.free.fr/geoportail/ex...lectmulti.html mais je ne sélectionne rien!
    Comme la page geoportalMap_selectMultiLayers.html fonctionne, je vais devoir remettre sur le métier...

  8. #8
    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
    Je viens d'essayer sur la page http://atlasnw.free.fr/geoportail/ex...lectmulti.html mais je ne sélectionne rien!
    Comme la page geoportalMap_selectMultiLayers.html fonctionne, je vais devoir remettre sur le métier...
    A chaud :

    * lors du chargement, hover ne fonctionne pas;
    * clique sur la désactivation, puis activation des kml .... hover fonctionne !

    Je pense donc que le contrôle n'est pas activé au chargement

    Autre chose (détail à vérifier) : dans l'exemple géoportail, j'ai désactivé les styles dans l'option format, le second kml de ton exemple a des styles.

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    J'avais mis l'extractStyles au mauvais endroit.
    Et effectivement cela fonctionne après avoir désactivaté/activaté les couches kml

  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
    J'avais mis l'extractStyles au mauvais endroit.
    Et effectivement cela fonctionne après avoir désactivaté/activaté les couches kml
    Résolu

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    La solution d'associer un select à plusieurs couches permet de contourner cela.
    Cela veut dire quoi en clair?? (non javascripteur), un exemple?

    Car je suis dans la même problématique: plusieurs couche dont une en gpx et les autres en marqueur. Et je ne suis vraiment, mais vraiment pas fan de générer du kml, c'est possible mais beaucoup de modifications à faire. (générer différents kml, les tenir à jour...) Je suis fainéant (admin système donc) et plus c'est simple, mieux c'est (je me complique déjà tout seul..).

  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 lucmontagne Voir le message
    ... un exemple?
    Un en ligne !

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Avec Firefox 3.0.19, triple bof
    J'ai qu'un couche à la fois d'active ( ou NUTS3 ou NUTS 2 ).
    La qualité du kml de NUTS 3 ne fait pas très pro cf image jointe.

  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 mga_geo Voir le message
    J'ai qu'un couche à la fois d'active ( ou NUTS3 ou NUTS 2 ).
    Certes, c'est pour l'exemple, rien n'empêche d'avoir un recouvrement de plage d'échelle ...

    Citation Envoyé par mga_geo Voir le message
    La qualité du kml de NUTS 3 ne fait pas très pro cf image jointe.
    Oui, j'ai passé la géométrie des départements au rabot sinon cela ne chargeait pas car trop lourd

    Quant à l'algorithme de remplissage ... c'est sûrement du au rabot (point de rebroussement ou micro-boucles)

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Le rabot fait dans la dentelle: un quinzaine de chiffres après la virgule!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          <Polygon><outerBoundaryIs><LinearRing><coordinates>2.20747528553084,44.615531676529805 2.172326318814469,44.635783190573207
    et sans outil de conflation, il est dur d'avoir des fichiers propres mais cela suffit pour un exemple.

  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 mga_geo Voir le message
    Le rabot fait dans la dentelle: un quinzaine de chiffres après la virgule!
    Les coordonnées origines sont en mètres (SHAPEFILE librement téléchargeable sur le site IGN), j'ai passé un Douglas-Pecker à 150 mètres de cordes (sous Quantum GIS), puis transformer en KML (donc en géographique - j'aurai pu couper à 7/8 chiffres après la virgule --pas sûr que ogr2ogr sache le faire--).

    C'est que j'appelle un rabot

  17. #17
    Membre averti Avatar de Zébulon-21
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 315
    Points
    315
    Par défaut
    Bon, on ne va pas noyer le poisson : Impossible pour un non "javascripteur" de tirer quelque chose de l'exemple de page cité par dgrichard.

    En revanche, l'exemple fourni par MGA-GEO est plus abordable et transposable - page d'essai ici - car il reste fonctionnel en substituant simplement les images et données cartographiques.

    A première vue, le mode étendu ne semble pas nécessaire.

    Par contre le résultat ne semble pas celui que nous recherchons puisque le tracé et les marqueurs ne sont plus réactifs à la souris sous IE (pas encore testé avec FF).

  18. #18
    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 Zébulon-21 Voir le message
    Bon, on ne va pas noyer le poisson : Impossible pour un non "javascripteur" de tirer quelque chose de l'exemple de page cité par dgrichard.
    Dommage car la réponse à ta question sur les tracés réactifs est dadans ...

    Citation Envoyé par Zébulon-21 Voir le message
    A première vue, le mode étendu ne semble pas nécessaire.
    Je confirme ...

    Citation Envoyé par Zébulon-21 Voir le message
    Par contre le résultat ne semble pas celui que nous recherchons puisque le tracé et les marqueurs ne sont plus réactifs à la souris sous IE (pas encore testé avec FF).
    Dans mon exemple le squelette du code javascript est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    créer la carte
    créer les couches
    créer les contrôleurs (dont le hover)
    se positionner
    Dans l'exemple cité le squelette du code javascript est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    créer la carte
    créer les couches
    se positionner
    créer le contrôleur
    L'inversion de code n'est pas innocente et contribue à l'explication du comportement ...

    * quant la carte est créée, elle a un zoom non défini et un centre tout autant. Globalement, OL considère le zoom à 0 et le centre à (0,0) --intersection greenwhich, équateur-- ;
    * quant une couche est ajoutée, elle n'est activée que si ses emprise / zooms / projections sont compatibles avec la carte. Les KML n'ont pas d'emprise, ils ont donc l'emprise de la carte; l'un des KML n'a pas de zoom, il prend donc les zooms de la carte. Les KML sont des vecteurs donc tout le temps reprojetables;
    * quant on se positionne l'étape précédente est identique (condition d'activation de la couche) : ici les deux couches sont activées et affichées;
    * l'ajout du hover stipule que lors de l'évènement "changelayer" on appelle hover.onVisibilityChange(event) : le contrôleur est lié à l'affichage/masquage de la couche ... mais, c'est maintenant trop tard : elles sont actives et lui non ;
    * lors de la désactivation de la couche KML : le contrôleur est désactivé, lors de l'activation de la couche KML : le contrôle est maintenant activé l rollover fonctionne maintenant.

    C'est pourquoi, j'avais écrit :

    Je pense donc que le contrôle n'est pas activé au chargement

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Me revoilà..

    1. même problème que dans dans l'exemple, ou il faut déselectionner une couche avant que le "hover" fonctionne.
    Je pensais que mettre simplement le "setCenterAtLonLat" en fin de code suffirait ... perdu. Si j'ai bien compris, la couche est active avant la decla du "hover". Mais pourquoi et comment le changer..
    Voici ma page (si votre DNS la résout) : http://helheim-test.homelinux.org:81/rando/visutrace/3

    2. J'ai pas encore vraiment fouillé mais pour l'instant, je ne vois pas comment l'adapter pour ma (ou mes sur d'autres pages) couche marqueur. Même lien.
    Je suppose que je dois:
    - virer les lignes entre "dedeX.events.register..." et "OpenLayers.Event.stop(evt);" sur chaque marqueur

    -surcharger la déclaration
    var dede4488821189= new OpenLayers.Marker(ll, icon.clone());
    pour y rajouter les trucs:
    styleMap:regsStyle
    },
    {
    formatOptions:{
    extractStyles:false // désactivation des styles
    },
    preventDefaultBehavior:true // pas de contrôleur Select
    }
    );
    M'enfin, suis bien perdu, ce n'est pas chaque marqueur qui pose un problème mais la couche. D'un autre côté, chaque marqueur à un événement bien à lui.

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    après 3 heures d'essai je confirme: j'arrive pas à modifier le code de sorte à que chaque marqueur ".addMarker" (sur une ou plusieurs couches "OpenLayers.Layer.Markers" suivi de "addLayer(xx)") réponde au clic en affichant sa petite popup.

    J'ai jeté un petit coup d'œil aux docs des api ign et openlayer...: Mais bien sur

    Youpi, j'ai un minimum avancé: Je viens de voir que le problème ne se pose pas avec plusieurs couches marqueur ("OpenLayers.Layer.Markers" suivi de "addLayer(xx)"). Ca suffit pas mais c'est un début. http://helheim-test.homelinux.org:81/lieu/listcarte

    Au pire, sur la page en question (post précédent) je vire les contrôle select sur les couches gpx. Que je n'ai pas d'effet dessus est un moindre mal tant qu'on la voit. Testé avec succès. Je suis revenu en arrière au cas ou quelqu'un aurait une superbe idée.

    En tout cas, cela indique clairement que ce sont les couches GPX et XML (donc api IGN je crois) qui mettent la "grouille" sous FF avec cette histoire de select. Je dis ça mais je suis hyper content que cette api existe, un vrai bonheur

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Popup ne fonctionne pas avec Firefox
    Par Godard dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/09/2010, 13h34
  2. Popups capricieuses avec Firefox (bis)
    Par Zébulon-21 dans le forum IGN API Géoportail
    Réponses: 17
    Dernier message: 12/06/2010, 12h37
  3. Application Seam et Popup bizarre avec Mozilla firefox
    Par Monochrome dans le forum Seam
    Réponses: 1
    Dernier message: 17/07/2009, 13h24
  4. Ecouter la radio avec Firefox
    Par Cian dans le forum Applications et environnements graphiques
    Réponses: 20
    Dernier message: 14/07/2005, 20h19
  5. balise <img> dans un tableau avec firefox
    Par yannock dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/10/2004, 17h44

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