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 :

Action supplémentaire sur un "glisser-déplacer" carte


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Action supplémentaire sur un "glisser-déplacer" carte
    Bonjour à tous !

    Je viens juste de m'inscrire sur ce site. Merci donc de votre indulgence ...

    Béotien en javascript, j'eesaie néanmoins de progresser pour une petite appli utilisant l'API Géoportail ... et je commence à approcher de mon but. Mais il y a un truc que je n'arrive pas à faire, et que je ne trouve pas dans les exemples de l'API (ou alors, j'ai mal vu ...).

    Je voudrais rajouter des actions sur un "évènement" (je crois que c'est comme ca qu'on dit ... ) "glisser-déplacer" de la carte (c'est à dire, translation de la carte par un déplacement de la souris avec le bouton gauche maintenu enfoncé).

    En fait, sur cet "évenement", je voudrais récupérer les coordonnées du centre de la carte au "relâcher bouton" (entre autre pour afficher un réticule à ce centre, mais ça, je crois que je sais faire ...)

    C'est l'évènement que je ne sais pas gérer !!!

    D'avance merci d'avoir eu la patience de me lire jusqu'au bout !

    Yves

  2. #2
    Membre du Club
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    102
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 102
    Points : 65
    Points
    65
    Par défaut
    Salut,
    onmousedown ne te convient pas ?
    J'ai également trouvé ça : Ca ressemble à ton pb, non ?
    a+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    En fait, je veux que ca n'agisse QUE pour un glisser-déplacer DE LA CARTE. Je verrais bien quelque chose ressemblant à ce qui suit, mais où le "click" serait remplacé par le truc qui va bien mais que je ne connais pas

    Macarte.getMap().events.register("click",
    Macarte.getMap(), function(e)
    {
    var pos = Macarte.getMap().getLonLatFromViewPortPx(e.xy); // A tout moment on récupère les coordonnées de la souris
    pos.transform(Macarte.getMap().getProjection(),
    Macarte.getMap().displayProjection);
    alert("Vous avez cliqué près de " + pos.lon.toFixed(4) + " N, " + pos.lat.toFixed(4) + " E");
    // alert(pos);
    }

    Si quelqu'un peut m'aider ???


    Yves

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut dragend
    J'ai cette page qui doit convenir: http://atlasnw.free.fr/web/geoportai...s/emprise.html

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Merci pour vos réponses !!!
    Dragend, un grand merci pour votre réponse !

    Les fonctionnalités de votre exemple "emprises" répondent parfaitement à mon objectif.

    En 3 lignes :
    map.events.register("zoomend",map,emprise);
    map.events.register("dragend",map,emprise);
    map.events.register("moveend",map,emprise);

    vous traitez les actions qui me préoccupaient. Moi, je n'avais réussi à traiter que "zoomend" ; je cherchais à traiter les 2 autres.

    Mon objectif est d'offrir un affichage avec en permanence un réticule de visée (wmf) matérialisant le centre de la carte, et d'extraire les coordonnées (lat et lon) de ce centre.

    PS : Sauriez-vous s'il existe un moyen de déclencher une action PENDANT le glisser-déplacer de la carte ? (l'idée serait de provoquer un suivi du repositionnement du réticule au centre de la carte "en temps réél", en quelque sorte ...). Là, j'en demande peut-être un peu trop, non ???

    En tout cas, encore un grand merci ! Ce code est nickel!

    Heretic, merci aussi pour votre réponse. Votre proposition ne me convient pas autant, mais c'est quand même très sympa de m'avoir répondu !

    Yves

  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 yduriv73 Voir le message
    PS : Sauriez-vous s'il existe un moyen de déclencher une action PENDANT le glisser-déplacer de la carte ? (l'idée serait de provoquer un suivi du repositionnement du réticule au centre de la carte "en temps réél", en quelque sorte ...). Là, j'en demande peut-être un peu trop, non ???
    Javascript n'est pas multi-tâches ... Il accomplit une action après l'autre, donc drag, levé de l'évèment dragend, boucle sur les écouteurs, pour chaque écouteur actif, action de l'écouteur, etc ...

    La simultanéité tient plus à la vitesse de traitement du butineur (et de son moteur) qu'au multi-tâche

    Maintenant, il existe un moyen : une div avec l'image du wmf (à l'instar du olControlLoading : une bonne css centrée est le tur est joué, restera à mettre à jour les coordonnées du wmf

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Alors là, je n'ai quasi rien compris à la réponse de dgrichard !

    Javascript n'est pas multi-tâches ... Il accomplit une action après l'autre, donc drag, levé de l'évèment dragend, boucle sur les écouteurs, pour chaque écouteur actif, action de l'écouteur, etc ...
    Là, je crois comprendre que javascript ne permettrait pas le "temps réel" révé avec des dragend et compagnie ...
    La simultanéité tient plus à la vitesse de traitement du butineur (et de son moteur) qu'au multi-tâche
    Là, nouveau doute !

    Mais alors ce qui suit :
    Maintenant, il existe un moyen : une div avec l'image du wmf (à l'instar du olControlLoading : une bonne css centrée est le tur est joué, restera à mettre à jour les coordonnées du wmf
    ... pour moi c'est du chinois ! Pourtant je sens bien qu'il y aurait un grand intéret à piger l'affaire, là !!!

    Ce n'est pas que je n'y mette pas du mien, mais là je mesure le fossé qui me sépare d'un développeur !!! A la niche le Yves

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    A l'intention de DGRichard :

    Pourriez-vous être un tout petit peu plus explicite sur le dernier alinéa de votre dernière réponse ? Je sens qu'il y a là qq chose d'interressant pour moi, mais je n'y comprends rien ...

    Merci d'avance !

    Yves

  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 yduriv73 Voir le message
    Pourriez-vous être un tout petit peu plus explicite sur le dernier alinéa de votre dernière réponse ? Je sens qu'il y a là qq chose d'interressant pour moi, mais je n'y comprends rien ...
    Mettre une div centrée horizontalement et verticalement dans la carte. Cette div a une image du réticule centrée. Le réticule est donc centré (tout le temps) sur la carte !

    L'exemple de base est OpenLayers.Control.Loading qui pendant le chargement de la carte affiche une image animée au centre de celle-ci

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Réticule, coordonnées et appel de Google Earth ... et FIN !
    Merci beaucoup dgrichard !!!

    J'ai "ramé" un moment, mais j'y suis arrivé ! C'est ça la solution idéale : Pas de réticule qui "court après" le centre de la carte. Fonctionnement bien fluide. Absolument parfait
    Petit problème résiduel : J'ai donc défini un ol control avec mon réticule (WMF vectoriel) en "background-image", en "centré", "no-repeat", tout ca. Parfait. Mais je ne vois pas le moyen de paramétrer l'échelle d'affichage du WMF dans le controle, pour en régler la taille. Comme le WMF est vectoriel, il n'a pas d'échelle intégrée ...

    Autre question : A partir des coordonnées (lat/long) du centre carte que je récupère, je voudrais appeler Google Earth directement à ces mêmes coordonnées (depuis mon appli) , de façon à ce que le plugin pour Lightroom de Jeffrey Friedl (qui travaille uniquement à partir de Google Earth) puisse opérer à son tour pour géoréférencer mes photos (et aussi celles de tous ceux qui voudrons se servir de mon appli bientôt !!!).
    Et je ne sais pas faire ...

  11. #11
    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
    Plusieurs petites choses :

    * ta soluce pourrais être partagée avec les autres membres : existe-t-il une page web publique ?

    * pour les coordonnées vers GE, ouvre une autre discussion (pour que l'on y voit clair) et marque cette discussion [Résolu] :
    sinon, il faut a priori écouter l'évènement "zoomend" dans ton contrôle et ouvrir une nouvelle page/iframe/autre div dans le callback associé

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    A l'attention de dgrichard :

    1) Bien d'accord pour partager ma soluce, mais je n'ai pas encore de site perso (pas encore d'hébergeur). Donc dès que possible ... à moins qu'il n'y ait un autre moyen ?

    2) Bien d'accord aussi pour ouvrir une autre discusssion. D'ailleurs je venais de réaliser moi-même que c'est ce que j'aurais du faire ...

    Par contre je ne comprends RIEN à ton dernier alinéa !!!

    rendez-vous sur nouveau(x) fil(s) !

    Et encore un grand merci à tous les contributeurs !!!

    Yves

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

Discussions similaires

  1. Glisser déplacer sur l'icone
    Par Anduriel dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/12/2009, 16h14
  2. Glisser-déplacer sur le bureau
    Par totoen dans le forum Windows XP
    Réponses: 1
    Dernier message: 14/08/2009, 16h18

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