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 :

[1.0beta4] Renvoi sur une page HTML


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 [1.0beta4] Renvoi sur une page HTML
    Je reprends ici une demande de Zébulon 21 (voir discussion "modification du curseur") que je fais mienne:
    Comment écrire pratiquement le code JS pour qu'un click sur un marqueur (icone épingle verte et jaune sur http://43.lignon.free.fr/ign/) renvoie sur une nouvelle page HTML dans un nouvel onglet (blank)???
    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. #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
    Je ne vois qu'une seule méthode : utiliser le callback onSelect.
    Pour cela, il faut "désactiver" le fonctionnement par défaut de l'API qui crée les popups lors de la lecture des objets. Il faut donc rendre le comportement par défaut au callback onFeatureInsert :
    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
    var layer= INSTANCE.getMap().addLayer(
       "KML",
       "nom de la couche",
       url_du_kml,
       {
          //les properties comme visibility, etc ...
         onFeatureInsert: function(f) {} //comportement d'OL
       },
       {
          onSelect:ouvrirPage,
          onUnselect: function(f) {},
          hover:false
       }
    );
    Ensuite, il ne reste plus qu'à ouvrir une page dans le callback onSelect en calculant les paramètres (ou pas) en fonction des attributs de l'objet (par exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       function ouvrirPage(feature) {
          if (feature) {
             window.open(url,"titre",options)
          }
       }

  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
    Voici où j'en suis après de longues cogitations. Sur ma page d'essai, en décochant la couche "les refuges", le click sur les deux repères (rouge ou bleu) affiche une même page.

    Problème que seul, je n'arriverai pas à résoudre c'est qu'un deuxième click sur le même repère ne produit rien. Par contre en alternant les clicks, c'est OK. Je crois bien que dgrichard est une "condition nécessaire et suffisante" pour me débloquer.

    Sinon, si tu as d'autres idées techniques pour améliorer le processus, je suis bien sûr preneur.
    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. #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
    Problème que seul, je n'arriverai pas à résoudre c'est qu'un deuxième click sur le même repère ne produit rien. Par contre en alternant les clicks, c'est OK.

    Normal :


    1. Clic 1er objet => l'objet 1 (feature devient sélectionné);
    2. Clic 2nd objet => l'objet 2 aussi, mais par défaut, un seul objet peut être sélectionné (il faut définir la propriété multiple de OpenLayers.Control.SelectFeature à true sinon) => l'objet 1 est désélectionné ...
    3. Clic 2nd objet à nouveau => l'objet 2 est déjà sélectionné ... il ne se passe rien. Il faudrait appeler la désélection dans onSelect() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    if (feature) {
       window.open(...);
       this.unselect(feature);
    }
    ...
    L'appel au callback onSelect() s'effectue dans le contexte de contrôle OpenLayers.Control.SelectFeature (le this).

    Pourrais-tu essayer cette soluce ?

  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
    OK! A première vue, tes conseils ont résolu le problème.
    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
    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 Les refuges
    Si le problème est résolu pour les "Cartes postales 07", il n'en demeure pas moins que "Les refuges" provoquent une erreur (la première fois que l'on clique dessus) :

    this.contentDiv has no properties

    Cette erreur est levée par OpenLayers.Popup#updateSize(), la div ne semble pas exister alors qu'elle est "sensée" être créée par la popup ...

  7. #7
    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 n'ai pas d'erreur? Mais si tu le dis! Je te crois volontiers...
    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. #8
    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
    Au fait, mon idée semble tellement simple que vous y auriez certainement pensé, si celle-ci était faisable

    Je tente quand même (le ridicule ne tue pas parait-il) :

    Et si on contournait le problème en insérant des marqueurs sous forme d'objets Flash contenant le texte à afficher au survol ainsi que, au clic, le renvoi sur une autre page ?

  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 Zébulon-21 Voir le message
    Et si on contournait le problème en insérant des marqueurs sous forme d'objets Flash contenant le texte à afficher au survol ainsi que, au clic, le renvoi sur une autre page ?

    Chiche où sont les volontaires ?

    En ce cas, je préfère tout faire en Flash (d'ailleurs pour ceux que cela titille, jeter un oeil pour une démo et là pour la home page).

  10. #10
    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 te soumettrai mes essais la semaine prochaine, et sans ambitionner de tout réaliser en Flash (hors de ma portée). En fait, ma suggestion s'inscrit dans la recherche d'une solution alternative (cf : Discussion "Infobulles en survol d'un repère")
    Envoyé par dgrichard
    L'exemple geoportalMap_wfs.html montre comment afficher une infobulle à la volée en OpenLayers 2.7 (pas le survol ET le clic -- sauf à ce que quelqu'un trouve l'astuce qui permettrait de le faire sans remplacer OL 2.7 par OL 2.8).
    Et ceci, dans l'attente des correctifs annoncés, du moins si le bébé est en mesure de répondre à certaines attentes telles que des marqueurs réactifs au survol et au clic.
    Envoyé par dgrichard
    Pour l'intégration d'OpenLayers 2.8, c'est au mieux pour septembre.
    S'il n'y a pas incompatibilité, la solution proposée serait presque idéale, puisque l’insertion d'objets Flash dans une page HTML est accessible au moindre amateur via des outils tels que Dreamweaver.

    Dans ce cas, le développeur basique (il y en a bien plus qu'on ne le croit), et avide de Géoportail, aurait accès à des techniques, au demeurant assez banales, de gestion du pointeur de la souris, telles que :
    - effet rollover sur les marqueurs,
    - texte au survol avec n’importe quelle police,
    - activation d'une URL au clic sur un marqueur,

  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
    Zébulon, la piste semble bonne, mais je ne maitrise peut-être pas toutes les données du problème. J'attends de voir tes résultats. J'ai bien fait des essais en essayant de jouer sur la propriété "alt" des balises images mais pas arrivé à quoi que ce soit... Et vive les vacances!

    Sinon pour openscales, dgrichard, c'est pas mal. Et vous savez dans l'équipe de support on trouve un certain Didier Richard!!!!!
    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 Patience ...
    Citation Envoyé par Zébulon-21 Voir le message
    Et ceci, dans l'attente des correctifs annoncés, du moins si le bébé est en mesure de répondre à certaines attentes telles que des marqueurs réactifs au survol et au clic.
    Les correctifs annoncés ne PERMETTENT pas d'avoir fromage ET dessert.
    Si je comprend le besoin ergonomique, j'ai du mal à comprendre l'insistance de la demande à la vue des réponses données ET des correctifs pour pallier l'insuffisance d'OpenLayers 2.7 sur le sujet :

    1. pour développer une telle fonctionnalité, il faut des êtres humains, du temps, de la formation et de l'argent ... OpenLayers 2.8 est sorti hier avec presque un mois de retard sur le planning initial à cause d'effets de bord sur des régressions fonctionnelles !
    2. ajouter encore plus de mélange technologique est un vrai danger en terme de maintenance, de compétences, de formations ...
    3. cela se fera : mais, patience !


    Citation Envoyé par Zébulon-21 Voir le message
    S'il n'y a pas incompatibilité, la solution proposée serait presque idéale, puisque l’insertion d'objets Flash dans une page HTML est accessible au moindre amateur via des outils tels que Dreamweaver.
    Je suis moyennement d'accord : Dreamweaver n'est pas gratuit et donc pas à la portée du moindre amateur. Il existe des outils gratuits/libres/d'évaluation comme NVU, Kompozer, Firstpage, Matizha Sublime, Amaya, Atana Studio. De plus, l'API est une bibliothèque Javascript, l'insertion d'un composant Flash impliquerait une réflexion sur l'architecture importante. Que faire aussi des utilisateurs qui refuse le flash ? Comment leur indiquer que telle fonctionnalité est désactivée à cause de cela ?

    Ne confondons pas non plus un outil puissant comme Google Earth capable de tout faire car c'est une application compilée tournant en local par rapport à une application embarquée dans un navigateur ...

    Je suis persuadé que, depuis qu'Adobe a libéré une partie du Flash (ActionScript, Flex), l'avenir de l'API est dans ce type de technologie. Aujourd'hui on fonctionne avec Javascript/XHTML/CSS.

    Citation Envoyé par Zébulon-21 Voir le message
    Dans ce cas, le développeur basique (il y en a bien plus qu'on ne le croit), et avide de Géoportail, aurait accès à des techniques, au demeurant assez banales, de gestion du pointeur de la souris, telles que :
    - effet rollover sur les marqueurs,
    - texte au survol avec n’importe quelle police,
    - activation d'une URL au clic sur un marqueur,
    Je pense que dans le cas du développeur basique ou du webmestre non informaticien, il faudrait un outil de conception de pages web utilisant l'API et là je te rejoint : un tel outil, à l'instar de celui précédemment cité, serait hyper-utile ! Resterait à savoir quel serait son coût ...

  13. #13
    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
    Peut-être une solution partielle, pour les utilisateurs de CMS (type JOOMLA), avec la mise en place d'un module spécifique ?

    Je pense que dans le cas du développeur basique ou du webmestre non informaticien, il faudrait un outil de conception de pages web utilisant l'API et là je te rejoint : un tel outil, à l'instar de celui précédemment cité, serait hyper-utile ! Resterait à savoir quel serait son coût ...

  14. #14
    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 Module spécifique par CMS
    Je me suis fait un tel module pour mediawiki avec un serveur hébergé sur free.fr (donc avec peu de ressources).

    Effectivement c'est un travail important avec le changement perpétuel des interfaces des CMS et de Geoportail.

    Ce module en est au stade "preuve du concept" cf http://ao35.free.fr/ao35/index.php?title=35001

    Sinon l'écriture de tels modules n'est pas très difficile pour un informaticien cf le nombre de modules pour Google Maps.

  15. #15
    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 Des marqueurs au format FLASH ? ? ?
    Envoyé par Zébulon-21
    Et si on contournait le problème en insérant des marqueurs sous forme d'objets Flash contenant le texte à afficher au survol ainsi que, au clic, le renvoi sur une autre page ?

    Envoyé par dgrichard
    Chiche où sont les volontaires ?

    Envoyé par Zébulon-21
    Je te soumettrai mes essais la semaine prochaine, et sans ambitionner de tout réaliser en Flash (hors de ma portée).
    Je crois bien m'être laissé emporter par le défi lancé par dgrichard car mes différents tests ne sont guère concluants.

    Dans ma précipitation, je m'étais dit : Si FIREWORKS ou FLASH utilisent un code interne au fichier ("png", "gif" ou autre pour le 1er, et "swf" pour le 2e), peut-être serait-il possible d'embarquer leurs comportements dans une carte Géoportail ?

    Voici le résultat de mes essais

    1. Pour FIREWORKS, voir ce lien
    - avec IE8 les marqueurs insérés dans la carte sont bien visibles mais ils perdent toutes leurs propriétés (comparer avec l'exemple d'image en tête de page).
    - avec FF3 la carte n'apparait pas (l'exemple d'image n'affiche quant à lui aucun texte au survol).

    2. Pour FLASH, voir ce lien
    - c'est un peu plus compliqué pour moi car impossible d'appliquer une action "geturl" en interne au fichier "swf" ; le clic sur l'image n'a donc aucun effet dans le cas présent.
    - le rollover existe bien au survol avec l'exemple d'image "swf" en tête de page) ; par contre ce format n'est pas reconnu pour l'affichage sur la carte (une croix avec IE8 et rien avec FF3).

    Donc, sauf sauf erreurs basiques, je crains fort d'avoir fait fausse route.

  16. #16
    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
    Sur le 2ème exemple, je n'ai que des petits ronds bleus, c'est normal ?

  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
    Normalement, tu dois voir l'image ci-dessous.

    Si tu vois toujours des petits ronds bleus... disons qu'il est délicat d'en expliquer la cause ici en public (blague)


  18. #18
    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 Les petits ronds bleus

  19. #19
    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 Normal pour les points bleus
    Normal. Ces cercles bleus figurent sur la carte de l'IGN mais ils n'apparaissent qu'en zoomant sur ce point particulier (aucune indication dans la légende Carto-Exploreur sur ce qu'ils signifient).

    Fausse joie donc : J'aurais préféré que ces points bleus soient générés par mon fichier FLASH.

  20. #20
    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 Les ronds bleus
    1) J'ai vérifié sur le terrain la signification des ronds bleus, ou "couronnes bleues" plus exactement. Il y a des sources dans les environs - voir carte - qui pourraient correspondre à ces points avec un écart d'environ 40 mètres (sans doute une erreur sur la carte car les vérifications de concordance sur d'autres points du secteur sont exactes).

    En revanche, le symbole laisse perplexe : Le rond bleu correspond certes à un point d'eau (couleur bleue = eau) mais normalement il n'y a pas de point blanc au centre du rond bleu. Quelle est la définition ("secrète") de ce symbole mystérieux ?

    2) J'en reviens par ailleurs sur le point principal de la discussion : Est-il totalement absurde d'espérer insérer dans une carte Géoportail un marqueur au format "swf" ?

    Question d'un novice en programmation : Si cela n'est pas incompatible, comment faire ?

Discussions similaires

  1. insérer une image sur une page html sans joindre son fichier
    Par fidji dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 03/02/2006, 10h15
  2. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22
  3. comment rediriger sur une page html en fonction de la langue
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/08/2005, 11h42
  4. Marge sur une page HTML
    Par wollverine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/04/2005, 13h56
  5. Problème de chaine sur une page HTML
    Par Kerod dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2004, 16h23

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