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 :

Position de POI selon l'ordre d'appel des couches


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Points : 62
    Points
    62
    Par défaut Position de POI selon l'ordre d'appel des couches
    Bonjour,

    Dans le cadre d'OpenLayers et de l'appel d'une carte IGN WMTS je viens de découvrir un pb que je n'arrive pas à comprendre.

    sur les deux url de test , les codes sont identiques à la différence près de l'ordre des couches appelées.

    Appel de la carte IGN comme couche supérieure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        	map.addLayer(ign);
        	map.addLayer(ghyb);
    Appel de la carte googlemap comme couche supérieure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        	map.addLayer(ghyb);
        	map.addLayer(ign);
    le code complet à la variante prés décrite ci-dessus.

    Cette simple différence a pour conséquence de déplacer le symbole dans le carte IGN d'une vingtaine de kms au sud ce qui est inexact ....

    J'utilise un fichier GeoRSS pour positionner le symbole
    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
    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/css" href="/css/rss.css" ?>
    
    <rdf:RDF  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns="http://purl.org/rss/1.0/"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:georss="http://www.georss.org/georss">
      
    <item rdf:about="http://pofableau.com/?article133/gros-sablons-orange-no-2-ad">
    
    <title>Gros Sablons Orange N°2 AD</title>
    <description><![CDATA[Beau circuit dans un cadre agréable et bien isolé.<br/> Repeint lors de l'été 2012.<br/><br /> ]]></description>
    <georss:point>48.38735 2.53399</georss:point>
    <dc:creator>christian charreau</dc:creator>
    <dc:date>2012-07-08T17:35:01.942452+00:00</dc:date>
    </item>
    
    </rdf:RDF>
    Auriez vous une piste de réflexion?

    D'avance merci.

  2. #2
    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
    Je n'ai qu'une seule piste de réflexion :

    * la baseLayer IGN est en EPSG:3857
    * la baseLayer Google est en EPSG:900913 (complètement déprécié comme code)

    Il y a une transformation (systèmatique) de EPSG:900913 vers EPSG:4326 dans ton code, alors qu'il devrait y avoir une transformation de la projection de la carte (donc de la baseLayer) vers EPSG:4326...

    L'API définit EPSG:3857 ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'EPSG:3857': "+title= Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"
    et EPSG:900913===EPSG:3857 (même définition)

    ton code ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'EPSG:3857': "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
    ces deux définitions ne sont pas équivalentes car la seconde en définissant +towgs84 autorise les transformations vers le système géocentrique X,Y,Z lors du changement de géoïde, alors que la première l'interdit ...

    à vérifier donc car c'est la seule piste que j'ai

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Points : 62
    Points
    62
    Par défaut
    merci Didier pour ces pistes.

    j'essaie de mettre en appli des que possible. .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Points : 62
    Points
    62
    Par défaut
    Bonsoir,

    La piste etait la bonne

    Le test ICI

    le code ainsi modifié permet l'alignement des tuiles et des symboles quelques soit l'ordre d'appel.

    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
    
     Proj4js.defs["EPSG:3857"] = "Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
                   
                      
          function init() {  
          	       
          	map = new OpenLayers.Map("basicMap", {
              		projection: "EPSG:3857",
              		displayProjection: new OpenLayers.Projection("EPSG:4326")
            	});
            
            var ghyb = new OpenLayers.Layer.Google( "Google Hybride",{type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20} );
            
            var options = {
            name: "Cartes IGN",
            url: "http://gpp3-wxs.ign.fr/xfwvg8nh6nsfww6mvoxu4lxa/wmts",
            layer: "GEOGRAPHICALGRIDSYSTEMS.MAPS",
            matrixSet: "PM",
            style: "normal",
            numZoomLevels: 20
        	};
    
        	var ign = new OpenLayers.Layer.WMTS(options); 
    
            
     	// Construction carte open Steet Map  
     	                    
            //var macarte        = new OpenLayers.Layer.OSM(null,null, {opacity:0.5});
            var fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
            var toProjection   = new OpenLayers.Projection("EPSG:3857"); // to Spherical Mercator Projection 
            var position       = new OpenLayers.LonLat(2.52974, 48.372752).transform( fromProjection, toProjection);
            var zoom           = 15 ;
    Pour ceux que cela intéresse Un peu d'info sur Google Maps qui laisse bien apparaitre en première ligne sa référence EPSG 900913.

    Grand merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/04/2014, 17h47
  2. Ordre d'appel des listeners
    Par Modulpro dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 06/10/2013, 01h03
  3. Bizarrerie avec getXhr() et ordre d'appel des fonctions
    Par LadyArwen dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2011, 12h32
  4. Ordre d'appel des fonctions
    Par ElSegador66 dans le forum Langage
    Réponses: 5
    Dernier message: 26/11/2010, 17h27
  5. Ordre d'appel des delegates sur un EventHandler
    Par TiboodiT dans le forum Windows Forms
    Réponses: 0
    Dernier message: 07/06/2010, 19h37

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