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 :

POI en Lambert II e


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut POI en Lambert II e
    Bonjour,

    Je ne sais comment résoudre le problème suivant:

    La finalité d'une application en python est la création d'un fichier Html utilisant l'api geoportail afin d'afficher un POI, associé à un fichier kml.
    la carte doit être centrée sur le Poi avec le zoom adequat.
    Pas de soucis tant que les coordonnées du centrage et du POI sont des lat et lon en décimale avec :
    VISU.getMap().setCenterAtLonLat(lon, lat, zoom);
    var mon_point = new OpenLayers.Geometry.Point(lon, lat);

    Cependant la majorité des coordonnées de mes POI sont des X et Y en Lambert II étendus,

    Comment afficher mes données avec un POI en cartographique Lambert II tout en conservant mes points du kml en géographique décimal ?

    Je n'ai pas trouvé de solution de conversion Lambert-->geo dec applicable à mon niveau en math , et malgré mes recherches tout ce que j'ai trouvé ce sont des possibilités de centrage de carte sur des coordonnées géographiques. Y a t il une solution ?
    merci

    Ps, je sais qu'il existe des outils pour effectuer la conversion nécessaire, cependant je cherche à ce que cela soit automatisé par mon soft au niveau du script, j'ai quelques centaines si ce n'est milliers de points X et Y susceptibles d'être afficher. Je ne trouve pas de formule utilisable par un humain,

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Quelque chose comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // le marqueur NE en Lambert IIe	
      var position=new OpenLayers.LonLat(314990,2355910);
      projLIIe = new OpenLayers.Projection("IGNF:LAMBE");
      position.transform(projLIIe, map.getProjection());
      var marqueur = new OpenLayers.Marker(position);
      layer.addMarker(marqueur);

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci pour la réponse, je vais voir immédiatement si j'arrive à l'appliquer.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Avec la réponse proposée qui en l'état ne semble pas fonctionner dans ma page et divers autres renseignements tirés de la doc, du site de l'API etc etc, je suis arrivé à 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <title>Vikking</title>
                <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
                
                <script type="text/javascript" src="http://api.ign.fr/geoportail/api?v=1.2-e&amp;key=xxxxxxxxxxxxxxxxxxxxxxxx&amp;instance=VISU"></script>
                <script type="text/javascript">
                    <!--
                        function initGeoportalMap()
                            {
                            // On implémente la carte
                            geoportalLoadVISU("GeoportalVisuDiv", "normal");
                            // On charge les couches de données définies dans le contrat
                            if (VISU) {VISU.addGeoportalLayers([
    															'ORTHOIMAGERY.ORTHOPHOTOS:WMSC',
    															'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC'/*,
    															'BUILDINGS.BUILDINGS:WMS'*/]);}
    															
                            // marqueur en Lambert IIe	
    						var position=new OpenLayers.LonLat(568058,2322581);
    						var projsrc = new OpenLayers.Projection("IGNF:LAMBE");
    						var projdst = new VISU.getProjection();
    						position.transform (projsrc, projdst);
    						var marqueur = new VISU.OpenLayers.Marker(position);
    						VISU.addMarker(marqueur);
                            
                            }
                    -->
                </script>
            </head>
            <body onload="initGeoportalMap();">  
                <h1>Marqueur Lambert 2</h1>
    			<div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
            </body>
        </html>
        
    <body onload="initGeoportalMap();">  
        <h1> 568058, 2322581</h1>
        <div id="GeoportalVisuDiv" style="width:800px;height:600px;"></div>
    </body>
    </html>
    Bien entendu ça ne fonctionne pas, pas d'affichage du marqueur au coordonnées désirées.
    Si on peut me dire où sont mes erreurs...
    Merci.

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    J'avais fait cela il y a longtemps: http://atlasnw.free.fr/geoportail/ex...ojections.html qui devrait t'inspirer!

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci, je vais étudier ça et trouver l'inspiration ...
    j'espère...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Après avoir monstrueusement copiés, collés coupés modifiés et adaptés tes lignes de code à mon usage, j'ai obtenu le résultat que je voulais.
    Au final c'est le résultat qui compte mais bon je regrette juste un peu de ne pas avoir forcément tout compris au code final.
    J'ai du mal à faire la part des choses entre le code pur openLayer et celui de l'API géoportail.
    Toutefois merci du coup de main,j'y aurais encore passé des jours sinon.

  8. #8
    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 exodis.vikking Voir le message
    Après avoir monstrueusement copiés, collés coupés modifiés et adaptés tes lignes de code à mon usage, j'ai obtenu le résultat que je voulais.
    Certes, mais la transformation Lambert II étendu vers Géoportail en Javascript n'est pas des plus précises, vaut mieux pas trop zoomer
    Si tu utilises python, tu aurais mieux fait de reprojeter tes POI via le binding python de GDAL. Ainsi, les transformations auraient été "correctes" (respectent le cm).

    Citation Envoyé par exodis.vikking Voir le message
    J'ai du mal à faire la part des choses entre le code pur openLayer et celui de l'API géoportail.
    C'est sûrement la partie de l'API qui modifie le plus OpenLayers, mais qui s'appuie sur la librairie PROJ4JS, librairie à laquelle nous (IGN) fournissons des patchs

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

Discussions similaires

  1. [POI] Style et taille de cellule pour Excel
    Par relivio dans le forum Documents
    Réponses: 6
    Dernier message: 28/05/2014, 11h45
  2. [POI / JExcelAPI][premiere fois] comment ça marche ?
    Par Regis.C dans le forum Documents
    Réponses: 13
    Dernier message: 25/11/2009, 11h01
  3. [POI] execution de macro...
    Par BizuR dans le forum Documents
    Réponses: 6
    Dernier message: 31/08/2006, 10h28
  4. Problème avec la librairie POI
    Par clement42 dans le forum Documents
    Réponses: 3
    Dernier message: 18/11/2005, 20h11
  5. [POI] Usage à partir d'une Servlet
    Par fredmorvant29 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 19/07/2004, 16h35

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