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 :

Affichage de points via un fichier KML avec des coordonnées en Lambert 93


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Affichage de points via un fichier KML avec des coordonnées en Lambert 93
    Bonjour à tous,

    J'utilise la version 2.0 de l'API du Géoportail et je cherche à afficher des points via un fichier KML dont les coordonnées sont en Lambert 93. Mes fonds de cartes eux restent dans la projection par défaut.
    Après de nombreuses recherches j'ai tenté différents codes mais sans succès.
    Voici ce que j'utilise pour ajouter le kml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ...
    map.addLayer( 
    	"KML", 
    	nom_du_layer, 
    	url_de_mon_kml, 
    	{
    		...
    		format: new OpenLayers.Format.KML(
    			{
    				externalProjection:newOpenLayers.Projection("IGNF:LAMB93")	
    			})
             },
             ...
    Je n'ai aucun message d'erreur, mais mes points ne s'affichent pas.
    Quel est le code correct?
    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502

  3. #3
    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
    D'habitude un kml est en WGS84.

    Pour tricher sur les projections, il est possible lors de l'ajout du layer de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        preFeatureInsert: function (feature) {
          feature.geometry.transform(projKML, projMap);
        },

  4. #4
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci tous les 2 pour votre réponse.

    EricLebottier, j'ai testé la validité de mon kml, mais il ne sera jamais valide avec des coordonnées en Lambert 93 car j'ai ce message :
    kml:coordinates tuple is not within the valid longitude range of +/-180 [1]. kml:coordinates tuple is not within the valid latitude range of +/-90 [1].

    mga_geo, j'ai testé l'ajout du "preFeatureInsert" pour transformer mes projections mais j'ai une alert javascript "phi2z has NoConvergence"
    Je vais faire d'autres tests.

  5. #5
    Membre chevronné 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
    Points : 1 843
    Points
    1 843
    Par défaut
    L'exemple suivant http://api.ign.fr/tech-docs-js/examp...rtalMap_kml.js utilise l'option "projection" avec comme commentaire : "layer's projection. By default, it is set to the map's projection".

    Avez-vous essayé ?

  6. #6
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Oui j'ai déjà essayé d'ajouter l'option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    projection:new OpenLayers.Projection("IGNF:LAMB93")
    Mais ça ne fonctionne pas mieux.
    La solution de mga_geo semble intéressante, sauf qu'a priori, le système n'arrive pas à faire la transformation avec mes coordonnées.
    Mes coordonnées Lambert sont bonnes. Quand j'utilise OpenLayers.Layer.Markers pour afficher un point (), ça fonctionne.

  7. #7
    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
    Je ne sais pas si mes coordonnées sont bonnes, mais je n'ai rien à l'affichage: http://mga.alwaysdata.net/geoportail...bert_gpp3.html

    En utilisant IGNF:LAMB93, j'évite l'erreur "phi2z has NoConvergence" mais les coordonnées converties sont fausses ...

  8. #8
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai refait un test avec un fichier kml ne comportant qu'un seul point.
    Avant j'ai testé l'affichage du marker avec OpenLayers.Layer.Markers.
    Je repère ma position comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    position = new OpenLayers.LonLat(lambertX, LambertY);
    projL93 = new OpenLayers.Projection("IGNF:LAMB93");
    position.transform(projL93, map.getProjection());
    Pas de problème mon marker s'affiche au bon endroit, les coordonnées sont bonnes.
    Mon fichier kml contient cet unique point et...rien. Pas de marker. Je n'ai pas de message d'erreur, ni le "phi2z has NoConvergence".

    mga_geo, j'ai utilisé la même méthode que toi. Par contre j'ai regardé ton exemple pour le fichier KML en Lambert 93. Tes coordonnées a priori sont fausses, du moins le "Y" qui doit peut-être se situer quelque part vers le pôle Nord ou nulle part.

  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
    Peux-tu essayer plutôt cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    map.addLayer(
        "KML",
        nom_du_layer,
        url_du_kml,
        {
            ...
        },
        {
            format: new OpenLayers.Format.KML({
                externalProjection: new OpenLayers.Projection("IGNF:LAMB93")
            })
        }
    );
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    map.addLayer(
        "KML",
        nom_du_layer,
        url_du_kml,
        {
            ...
        },
        {
            formatOptions:{
                externalProjection: new OpenLayers.Projection("IGNF:LAMB93")
            }
        }
    );
    en effet, le format est dans le cinquième paramètre et non le quatrième ...

  10. #10
    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 C'est tout bon!
    Bravo Didier !
    J'ai utilisé la deuxième possibilité, et mon fichier kml semble bon

  11. #11
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci Didier,

    Effectivement la 2ème possibilité est la bonne. Ça fonctionne impeccable

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/04/2014, 14h58
  2. Fichier KML avec marqueur et image
    Par jamesl dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 21/05/2011, 11h04
  3. [MySQL] générer un fichier xml avec des caratéres speciaux via php
    Par sooprano dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/12/2010, 15h11
  4. Fichier KML avec coordonnées Lambert II
    Par RomainMourer dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 21/09/2010, 15h53
  5. probleme d'import de fichier txt avec des tab
    Par lecureuil dans le forum Access
    Réponses: 4
    Dernier message: 23/08/2005, 19h22

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