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 :

Changement de projection dans le code javascript


Sujet :

IGN API Géoportail

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Par défaut Changement de projection dans le code javascript
    Bonjour,

    J'utilise l'API Géoportail sur un client web et j'ai à côté un petit formulaire pour saisir des coordonnées et au bouton d'envoi il me centre sur le point en question.
    Seul souci, pour cela j'utilise la fonction setCenterAtLonLat qui prend en entrée les coordonnées Lat/lon WGS84, en degré décimaux, et moi je souhaiterais que l'on puisse saisir dans le formulaire des coordonnées en Lambert93-planes.
    Je n'ai pas vu de classes dans le Géoportail gérant les reprojections ou les types de coordonnées, existe t'il un moyen de s'en sortir? Comme pouvoir changer l'EPSG des coordonnées saisies ou quelque chose comme ça?

    Voici le code de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function centreClient() {
        var x = this.centrage.GeoXYFormLon.value;
        var y = this.centrage.GeoXYFormLat.value;
        
    
        viewers[0].getMap().setCenterAtLonLat(x, y);
        viewers[1].getMap().setCenterAtLonLat(x, y);
        
        //conversion Lambert93(RGF93)->WGS84 Lat/Lon à faire (ou X/Y)
        
        alert("x :"+x+" y "+y);
        return false;
    }
    Etienne

  2. #2
    Membre chevronné Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Par défaut
    As-tu essayé la fonction OpenLayers.Projection.transform ?
    voici la doc : http://api.ign.fr/tech-docs-js/2.0.1/jsdoc/index.html

  3. #3
    Membre Expert Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Par défaut
    Je dirais même plus, voici la doc :

    http://dev.openlayers.org/releases/O...ection-js.html


  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Par défaut
    ça marche!
    Merci à tous les deux.


    Pour info, le code:

    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
    function centreClient() {
    
    	//Définition du point de centrage en lui attribuant les coordonnées saisies dans le formulaire
    	var p = new OpenLayers.Geometry.Point(this.centrage.GeoXYFormLon.value,this.centrage.GeoXYFormLat.value);   
       
        //alert("x :"+p.x+"y: "+p.y);
        
        //Définition des projections de départ-arrivée
        var projFrom = new OpenLayers.Projection("EPSG:2154");
        var projTo = new OpenLayers.Projection("EPSG:4326");    
        
        //Transformation
        var p_wgs = p.transform(projFrom,projTo);
        
        //alert("p: "+p)
        //alert("x :"+p_wgs.x+"y: "+p_wgs.y);
    
    	//Centrage sur les coordonnées correspondantes
        viewers[0].getMap().setCenterAtLonLat(p_wgs.x, p_wgs.y);
        viewers[1].getMap().setCenterAtLonLat(p_wgs.x, p_wgs.y);
    
    	//On ne regénère pas le viewer derrière
        return false;
    }

  5. #5
    Membre chevronné Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Par défaut
    Peux-tu passer ce ticket en "résolu"?

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

Discussions similaires

  1. [PHP-JS] Code php dans un code javascript
    Par adrix26 dans le forum Langage
    Réponses: 8
    Dernier message: 28/02/2007, 16h37
  2. Probleme bouton flash dans un code javascript
    Par caroen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/11/2006, 12h46
  3. [RegEx] preg_match dans du code Javascript
    Par micatmidog dans le forum Langage
    Réponses: 2
    Dernier message: 17/05/2006, 18h28
  4. une faute dans mon code javascript.
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2006, 03h05
  5. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 10h53

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