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 :

Coordonnées du clic: problème de projection


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 Coordonnées du clic: problème de projection
    Résumé:
    En version 1.3, j'arrivais à intercepter le clic de ma souris et à le renvoyer en paramètre sur setCenterAtLonLat(). Mais en passant à la version latest, j'ai quelques difficultés avec le code initial... Peut-être du au passage à web mercator??? Le codage JS de ma page d'essai est quasiment dans l'état "opérationnel" pour l'api 1.3. En console.log j'affiche pour info mes lon et lat, qui sont manifestement pas corrects. Je devrais avoir lon~4.2 et lat~45...

    L'interception de mon clic est en ligne 176 de mon code js.
    1/ C'est un problème de mauvaise transformation de projection, que je ne maîtrise pas (comme d'hab!). Après moults essais dont les conclusions ne sont pas explicites à mes yeux, je me résous à poser la question.

    2/ J'employais getLonLatFromPixel(), mais j'ai bien vu l'existence de getLonLatFromViewPortPx() notamment sur cette page. Je ne saisis pas très bien la différence des deux. Mes tests ne sont guère explicites. Lequel serait préférable dans mon cas ? Par ailleurs, j'ai quelques difficultés à transposer le code de la page citée à mon cas... Je suis pas doué !


    Je vois bien Dgrichard s'arracher les cheveux, en se disant: "Qu'il simplifie son code pour remonter à la source..." Mais je me dis par ailleurs que si c'est une mauvaise gestion des projections, sa grande expérience saura résoudre le problème sans ce retour à la page blanche très pénible pour mes neurones ?



    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

  2. #2
    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
    Sur la page http://mga.alwaysdata.net/geoportail/friquet.html ,
    je fais un " lonlat = map.getLonLatFromViewPortPx(e.xy).transform(map.getProjection(), OpenLayers.Projection.CRS84); " et cela marche plutôt bien.

  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
    Cela marche même sans problème.
    Merci, mais je dois introduire des perturbations ....
    Je vais me replonger dans mon code.
    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
    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
    C'est en introduisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var proj = viewer.getMap().getProjection();
    	var geographic = new OpenLayers.Projection('EPSG:4326'); 
    var bounds = new OpenLayers.Bounds(4.1, 44.97, 4.42, 45.17).transform(geographic, proj); 
    	viewer.getMap().restrictedExtent = bounds
    que je perturbe mes coordonnées lon lat...
    Ce qui ne se passait pas avec API 1.3.
    Pourquoi?
    Seconde question: Dans ces conditions, comment réintroduire mes limitations de déplacement?
    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. Problème MS project
    Par airbase dans le forum Project
    Réponses: 1
    Dernier message: 03/01/2008, 16h00
  2. problème de coordonnées ou autre problème ?
    Par superC dans le forum DirectX
    Réponses: 8
    Dernier message: 19/02/2007, 21h20
  3. [VC++ 6.0] [QT] Problème de Project Settings
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 02/01/2006, 17h56
  4. Réponses: 3
    Dernier message: 04/10/2005, 15h39
  5. Réponses: 3
    Dernier message: 11/07/2005, 22h14

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