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 :

Un click fort ennuyeux


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 Un click fort ennuyeux
    Sur ma page d'essai le survol de l'icone "point d'interrogation" affiche un écran d'aide. Comme prévu.
    Malheureusement, la mamie "pavlovienne" clique sur l'icone, et là badaboum, le panel de recherche s'efface.
    Comment rendre inactif ce click (ou mousedown) sur cet icone?

    "Fastoche" dirait dgrichard (voire mga_geo ou d'autres)! Mais moi pas bon!

  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
    Citation Envoyé par cmail Voir le message
    Malheureusement, la mamie "pavlovienne" clique sur l'icone, et là badaboum, le panel de recherche s'efface.
    Comment rendre inactif ce click (ou mousedown) sur cet icone?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    OpenLayers.Event.observe(cdiv,'mousedown',OpenLayers.Function.bindAsEventListener(this.ignoreEvent,this));
    
    ...
    
    ignoreEvent: function(e) {
        if (e) OpenLayers.Event.stop(e);
    }
    Tu peux rajouter cette méthode sur "click", "dblclick"

  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
    Faut être beaucoup plus explicite avec moi!
    Voilà mon raisonnement:
    Sur ma page d'essai, à l'activation (activate: )de mon Geoportal.Control.Legend je (enfin c'est une façon de parler!) observe les événements qui me préoccupe: mouseover, mouseout, mousedown (ce dernier qui correspond à mon satané click!).

    soit :
    OpenLayers.Event.observe(cdiv,'mouseover',OpenLayers.Function.bindAsEventListener(this.mouseover,this));
    OpenLayers.Event.observe(cdiv,'mouseout',OpenLayers.Function.bindAsEventListener(this.mouseout,this));
    OpenLayers.Event.observe(cdiv,'mousedown',OpenLayers.Function.bindAsEventListener(this.mousedown,this));
    (j'ai testé this.ignoreEvent à la place de this.mousedown comme préconisé, mais pas d'action non plus)

    puis à l'action "mousedown:" (mon "click" non?) je renvoie ta fonction
    function ignoreEvent(e) {
    if (e) OpenLayers.Event.stop(e);
    },
    C'est construit sur le modèle de mouseover, mouseout qui sont opérationnel.
    Mais évidemment pour "mousedown:" (ou click, ou mouseup...) ne marche pas!!!

    Peut-être que c'est en dehors de Geoportal.Control.Legend que je dois détecter mon mousedown????

  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
    Peut-être que c'est en dehors de Geoportal.Control.Legend que je dois détecter mon mousedown????
    Non, non, le problème est que pour t'aider il faudrait que ta page soit en API non compressée ... (je passe trop de temps à recopier les pages à chaque fois).

    Sinon, quant on clique ignoreEvent() est bien appelée, mais ensuite il semble que l'évènement continue à être interprété.

    Essaie alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ignoreEvent: function(e) {
             if (e) OpenLayers.Event.stop(e);
         return false;
    }

  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
    soit en API non compressée
    ???? Mon api n'est pas compressé. Tu veux peut-être dire que ce serait plus facile pour toi si mon code js était dans le corps de ma page html?

    Sinon, j'ai fait quelques essais avec ta nouvelle suggestion...

    Soit avec
    OpenLayers.Event.observe(cdiv,'mousedown',OpenLayers.Function.bindAsEventListener(this.mousedown,this));
    et
    mousedown: function ignoreEvent(e) {
    if (e) OpenLayers.Event.stop(e);
    return false;
    },
    Soit avec
    OpenLayers.Event.observe(cdiv,'mousedown',OpenLayers.Function.bindAsEventListener(this.ignoreEvent,this));
    et
    ignoreEvent: function ignoreEvent(e) {
    if (e) OpenLayers.Event.stop(e);
    return false;
    },
    comme actuellement sur ma page d'essai.

    Mais le click est toujours actif.

  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
    Citation Envoyé par cmail Voir le message
    ???? Mon api n'est pas compressé. Tu veux peut-être dire que ce serait plus facile pour toi si mon code js était dans le corps de ma page html?
    1/ Mettre includeEngine=false :

    2/ Ajouter :

  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
    Sur cette page les modifications demandées...

    Mais une erreur apparait "uncaught exception: CRS inconnu : IGNF:GEOPORTALFXX"...

    Je ne dois pas rajouter "&instance=viewer" puisque je la crée dans mon initGeoportalMap(). C'est bien cela?

    Mais alors?

  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 cmail Voir le message
    Sur cette page les modifications demandées...

    Mais une erreur apparait "uncaught exception: CRS inconnu : IGNF:GEOPORTALFXX"...
    Je regarde, c'est lié à PROJ4JS ...

  9. #9
    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
    Des constats?

  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 cmail Voir le message
    Des constats?
    Oui, mais pas encore de correctifs ... l'appel Ajax est cross-domain (c'est mal)

  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
    Le problème n'est pas lié à mon code? Il faut vraiment un correctif made in IGN?

  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
    Le problème n'est pas lié à mon code? Il faut vraiment un correctif made in IGN?
    Je me suis mal exprimé : en mettant le lien vers depot.ign.fr, il faut aussi modifier le proxy (vers cet Url)

    Ce n'est pas un patch qui est nécessaire.
    Le passage en mode non compressé peut aussi s'effectuer en copiant l'arborescence complète de l'API sur ton serveur ... mais, c'est une autre histoire

    Je me prencherais à nouveau sur ton problème dès que possible

  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
    Le problème vient du contrôleur de recherche qui par défaut quant il est désactivé se ferme

    Il faut donc l'empêcher de se fermer ...

    Dans ton fichier cmailRechercheV1.js, peux-tu effectuer les modifications suivantes ?
    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
      searchControl = new Geoportal.Control.SearchToolbar({
        div: OpenLayers.Util.getElement(tbx.id + '_search'),
        geonamesOptions: {
          setZoom: Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme,//cm
          layerOptions: {
            name: 'TOPONYMS.ALL:OPENLS',         // ou OPENLS:TOPONYMS.ALL????
            formatOptions: {
              version: '1.0'
            }
          },
          deactivate: function() {
            this.layer.cleanQueries();
          },
          destroy: function() {
            Geoportal.Control.Form.prototype.deactivate.apply(this,arguments);
            Geoportal.Control.LocationUtilityService.prototype.destroy(this,arguments);
          }
        }
      });

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    520
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Points : 1 446
    Points
    1 446
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    Je me suis mal exprimé : en mettant le lien vers depot.ign.fr, il faut aussi modifier le proxy (vers cet Url)

    Ce n'est pas un patch qui est nécessaire.
    Le passage en mode non compressé peut aussi s'effectuer en copiant l'arborescence complète de l'API sur ton serveur ... mais, c'est une autre histoire

    Je me prencherais à nouveau sur ton problème dès que possible
    Bonjour,

    J'ai relevé le même souci : "uncaught exception: CRS inconnu : IGNF:GEOPORTALFXX"
    J'ai copié l'arborescence complète de l'API, decompressée telle quelle du téléchargement, tous les fichiers se chargent bien sauf ceux liés à Pro4js.

    Voici un extrait de mon code html =

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>MonSite.fr [DEV]</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <link rel="stylesheet" type="text/css" href="../ext-3.2.1/resources/css/ext-all.css" />
    <link rel="stylesheet" type="text/css" href="css/monsite.css" />
    <script
    type="text/javascript"
    src="http://api.ign.fr/geoportail/api?v=1.2-e&amp;key=6241563116393326731&amp;instance=VISU&amp;includeEngine=false&amp;">
    </script>
    <script type="text/javascript" src="../geoportal-1.2/src/main/javascript/geoportal/lib/Geoportal.js"></script>

    <script type="text/javascript" src="../ext-3.2.1/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="../ext-3.2.1/ext-all.js"></script>

    <script type="text/javascript" src="js/tracemanager.js"></script>
    <script type="text/javascript" src="js/layout.js"></script>



    <style type="text/css">
    <!--
    Une copie écran permet de visualiser le phénomène... :-)

    Si quelqu'un a une idée ?

    Sylvain
    Images attachées Images attachées  

  15. #15
    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 Sylvain James Voir le message
    Si quelqu'un a une idée ?
    La capture d'écran montre que les requêtes vers proj4js sont tagguées OPTIONS et non GET. Ceci montre (ce que l'on ne voit pas dans le code HTML) qu'un proxy a été mis et qu'il n'est pas le même que l'url de chargement de l'API ...

    Sinon, le code montre que tu charges le code source de l'API directement, alors qu'il faut "compiler" l'API pour que cela fonctionne. Par exemple (sous Windows) :

    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
    Pré-requis :
    
     Maven : pour la compilation, l'installation de l'API dans le dépôt web local et la génération de la documentation ;
    
     Python : pour la compression des codes sources Javascript ;
    
     Perl ou Php : pour l'utilisation d'un proxy CGI en local ;
    
     Zazou Mini Web Server ou des serveurs web plus lourds IIS ou Apache : pour tester les pages web de l'API.
    
    Etapes :
    
     Télécharger les codes sources de l'API et les enregistrer dans le répertoire du projet API (chemin_répertoire_api par exemple) ;
    
     Copier ZazouMiniWebServer.exe dans le répertoire chemin_répertoire_api\src\main\webapp ;
    
     Ouvrir l'invite de commandes sous Windows, se placer dans le répertoire chemin_répertoire_api et saisir la commande suivante :
    
    mvn -e -Penv-local -Dpython_path="chemin_python\python.exe" \
        -Durl_site="chemin_répertoire_api\target" \
        clean compile site-deploy
    
    
     Double cliquer sur ZazouMiniWebServer.exe : les exemples sont disponibles via l'adresse suivante http://localhost/test/index.html
    En procédant ainsi le code exact d'inclusion de l'API dans une page est donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script type="text/javascript" src="http://localhost/js/1.2/lib/geoportal/lib/Geoportal.js"></script>
    Voir

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    520
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Points : 1 446
    Points
    1 446
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    La capture d'écran montre que les requêtes vers proj4js sont tagguées OPTIONS et non GET. Ceci montre (ce que l'on ne voit pas dans le code HTML) qu'un proxy a été mis et qu'il n'est pas le même que l'url de chargement de l'API ...

    Sinon, le code montre que tu charges le code source de l'API directement, alors qu'il faut "compiler" l'API pour que cela fonctionne. Par exemple (sous Windows) :
    Merci beaucoup, je n'avais pas percuté qu'il fallait compiler.
    Alors je suis peut être tombé sur une erreur de package mais le fichier pom.xml est mal formé (pas mal de balises de fermetures manquent en fin de fichier), je pense qu'il a du être tronqué par erreur avant d'être déposé sur le repo.
    Par conséquent, Maven envoie l'erreur suivante :
    [INFO] Scanning for projects...
    [ERROR] The build could not read 1 project -> [Help 1]
    [ERROR]
    [ERROR] The project (/Users/Sylvain/Sites/geoportal-1.2/pom.xml) has 1 error
    [ERROR] Non-readable POM /Users/Sylvain/Sites/geoportal-1.2/pom.xml: no more data available - expected end tags </resource></resources></configuration></execution></executions></plugin></plugins></build></project> to close start tag <resource> from line 738 and start tag <resources> from line 730 and start tag <configuration> from line 728 and start tag <execution> from line 722 and start tag <executions> from line 645 and start tag <plugin> from line 642 and start tag <plugins> from line 575 and start tag <build> from line 569 and start tag <project> from line 2, parser stopped on END_TAG seen ...</excludes>\n ... @744:15
    Pour ce qui concerne la question du proxy impliquant des requêtes OPTIONS au lieu de GET, là je ne comprends pas, je n'ai pas l'impression d'avoir fait quoi que ce soit pour transiter via un proxy.
    Je vais rechercher sur le forum cet aspect des choses.

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    520
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Points : 1 446
    Points
    1 446
    Par défaut
    Le sujet est désormais éloigné du sujet initial.
    Je vais donc ouvrir un topic propre à la compilation de geoportail avec Maven.

    Sylvain

  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 Sylvain James Voir le message
    Le sujet est désormais éloigné du sujet initial.
    Je vais donc ouvrir un topic propre à la compilation de geoportail avec Maven.
    Ok, à suivre donc

Discussions similaires

  1. Un ctrl+clic fort ennuyeux sur macintosh !
    Par saxrub dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 20/04/2011, 15h47
  2. [AppMessage] Comment empêcher un click de la souris ?
    Par altahir007 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/10/2003, 14h28
  3. [UNIX Forte 6.1 G++] pbl chargement de librairie partagée
    Par claudio.matzke dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 09/10/2003, 14h45
  4. Modifier l'icone d'un TTreeNode sur click
    Par ramseb dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/08/2003, 13h55
  5. [Kylix] Simluler des click souris
    Par paci dans le forum EDI
    Réponses: 2
    Dernier message: 24/06/2003, 11h23

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