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 :

problème de récupération longitude et latidude d'un vector_layer


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut problème de récupération longitude et latidude d'un vector_layer
    Bonjour,

    J'ai un souci concernant la récupération de la longitude et latitude sur un vector_layer.

    Le principe est de pouvoir dragger ce vector_layer en un autre point que celui d'origine et de récupérer sa nouvelle position en degrés et non en pixels.

    Pour cela j'utilise la fonction getLonLatFromViewPortPx mais qui apparement disfonctionne.
    Mon code exemple : (En gras les lignes posant problèmes)

    Merci de votre aide

    function initGeoportalMap() {


    geoportalLoadVISU("GeoportalVisuDiv", "normal");



    if (VISU) {


    VISU.addGeoportalLayers(['ORTHOIMAGERY.ORTHOPHOTOS:WMSC'],{'ORTHOIMAGERY.ORTHOPHOTOS:WMSC':{visibility:true},global:{opacity:1}});
    VISU.addGeoportalLayers(['ADMINISTRATIVEUNITS.BOUNDARIES'],{'ADMINISTRATIVEUNITS.BOUNDARIES':{visibility:true},global:{opacity:1}});
    }


    VISU.getMap().setCenterAtLonLat(2.476026,48.577875);
    VISU.openLayersPanel(false);
    VISU.openToolsPanel(false);

    // On ajoute une couche d'objet vectoriels
    var vector_layer = new OpenLayers.Layer.Vector('Mon bien');

    var mon_point = new OpenLayers.Geometry.Point(2.476026,48.577875);



    // On change notre point de projection
    var sourceproj = OpenLayers.Projection.CRS84; // WGS84
    var destproj = VISU.projection; // Projection Geoportail

    mon_point.transform(sourceproj, destproj);


    // On cr?e l'objet Vector ? partir de la Geometry pr?c?dente
    var stylepoi = {externalGraphic:'images/icon_house.gif',
    graphicWidth:33,
    graphicHeight:33
    };
    var mon_poi = new OpenLayers.Feature.Vector(mon_point, null, stylepoi);

    // On ajoute notre POI
    vector_layer.addFeatures([mon_poi]);
    VISU.getMap().addLayer(vector_layer);


    VISU.getMap().addLayer(vector_layer);

    var drag_feature = new OpenLayers.Control.DragFeature(vector_layer, {onComplete: function(e) {

    alert("Vous venez de repositionner votre Bien, Pixels : " + e.geometry.x + ", Latitude : "+e.geometry.y);
    document.getElementById("longitude").value = e.geometry.x;
    document.getElementById("latitude").value = e.geometry.y;

    var lonlat= VISU.getLonLatFromViewPortPx(e.xy);
    alert("Position du bien " + lonlat.lon + lonlat.lat);

    //position.transform(OpenLayers.Projection.CRS84, VISU.projection);


    }});
    VISU.getMap().addControl(drag_feature);
    drag_feature.activate();


    }

  2. #2
    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
    Pour commencer une page accessible permet de voir le fonctionnement!

    Les termes "problème" et "disfonctionne" ne renseignent pas en quoi le résultat obtenu n'est pas conforme au résultat espéré.

    Si je joue au vétérinaire, lonlat est dans la projection de la carte et il faut probablement faire un transformation en WGS84.

  3. #3
    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 mga_geo Voir le message
    Si je joue au vétérinaire, lonlat est dans la projection de la carte et il faut probablement faire un transformation en WGS84.
    Et oui (là aussi une petite recherche sur le forum ou un oeil sur la documentation donne la réponse) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var lonlat= VISU.getLonLatFromViewPortPx(e.xy);
    lonlat.transform(VISU.getMap().getProjection(), OpenLayers.Projection.CRS84);

Discussions similaires

  1. [TIBSQL] Problème de récupération d'un champs
    Par TitiFr dans le forum Bases de données
    Réponses: 6
    Dernier message: 07/08/2005, 13h33
  2. [hibernate]Problème de récupération d'objet...
    Par roxx62 dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2005, 11h36
  3. Réponses: 8
    Dernier message: 12/05/2005, 08h16
  4. Nouveau problème de récupération de valeurs.
    Par pmboutteau dans le forum ASP
    Réponses: 4
    Dernier message: 09/03/2005, 10h48
  5. Problème de récupération de texte de formulaire
    Par bigourson dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2004, 16h27

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