Précédent   Forum des professionnels en informatique > Applications > SIG : Système d'information Géographique > IGN API Géoportail
IGN API Géoportail Forum d'entraide sur l'API Géoportail développé par IGN
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/01/2012, 16h02   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 2
Points : 2
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,
exodis.vikking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 21h57   #2
Membre émérite
 
Inscription : mai 2009
Messages : 1 086
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1 086
Points : 821
Points : 821
Quelque chose comme cela:
Code :
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);
mga_geo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 22h15   #3
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 2
Points : 2
Merci pour la réponse, je vais voir immédiatement si j'arrive à l'appliquer.
exodis.vikking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 15h03   #4
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 2
Points : 2
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 :
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.
exodis.vikking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 19h10   #5
Membre émérite
 
Inscription : mai 2009
Messages : 1 086
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1 086
Points : 821
Points : 821
J'avais fait cela il y a longtemps: http://atlasnw.free.fr/geoportail/ex...ojections.html qui devrait t'inspirer!
mga_geo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 20h31   #6
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 2
Points : 2
Merci, je vais étudier ça et trouver l'inspiration ...
j'espère...
exodis.vikking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2012, 01h47   #7
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 2
Points : 2
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.
exodis.vikking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2012, 23h25   #8
Expert Confirmé

 
Homme Didier Richard
Ingénieur cartographe
Inscription : avril 2009
Messages : 2 734
Détails du profil
Informations personnelles :
Nom : Homme Didier Richard
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur cartographe
Secteur : Service public

Informations forums :
Inscription : avril 2009
Messages : 2 734
Points : 3 502
Points : 3 502
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
dgrichard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h30.


 
 
 
 
Partenaires

Hébergement Web