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 :

Calque IGN sur fond GoogleMap/OpenStreetMap - Mauvaise superposition


Sujet :

IGN API Géoportail

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Calque IGN sur fond GoogleMap/OpenStreetMap - Mauvaise superposition
    Bonjour à tous,


    J'ai un petit soucis depuis hier matin, que je n'arrive pas à résoudre :

    J'essaye d'afficher un calque avec une carte IGN (GEOGRAPHICALGRIDSYSTEMS.MAPS) sur un fond de carto GoogleMap ou OpenStreetMap.

    Ma carte est faite à partir de OpenLayers 2.10, avec la visionneuse de GeoExt.MapPanel. J'inclue l'API IGN v1.2-m.

    Le soucis, c'est que mon fond s'affiche bien, mon calque semble se positionner au bon endroit, sauf qu'il se dédouble. Voici une petite image pour exposer le problème :

    Quand je charge la carte, j'arrive sur Bordeaux avec le fond GoogleMap


    Quand j'affiche le calque, la zone Bordeaux est dédoublée




    Il me semble avoir lu quelque part que pour afficher du WMS sur un Fond GoogleMap avec sphericalMercator, il faut redimensionner les images (les étirer). Le problème c'est qu'il me semble que ça devrait être automatique avec proj4js.

    Voici quelques extraits de mon code :

    La carte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    this.map = new GeoExt.MapPanel({
    	    	map: new OpenLayers.Map(Ext.id(null, 'map_'), {
    	            displayProjection: new OpenLayers.Projection('EPSG:4326'),
    		    	projection: new OpenLayers.Projection('EPSG:900913'),
    	            units: 'm',
    	            numZoomLevels: 22,
    	            maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)
    			}),
    	    	region: 'center'
    	    });
    Le fond GoogleMap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var gphy = new OpenLayers.Layer.Google(
                "Google Physical",
                {
                	type: G_PHYSICAL_MAP
                	,isBaseLayer: true
        			,projection: new OpenLayers.Projection('EPSG:900913')
                	,units: 'm'
        			,sphericalMercator: true
        			,maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)
                	,maxResolution: 156543.0339
                }
            );
    Le calque IGN :
    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
    var cat = new Geoportal.Catalogue(this.getOLMap(), gGEOPORTALRIGHTSMANAGEMENT);
            var zon = cat.getTerritory('FXX');
            var ignOpts = cat.getLayerParameters(zon, 'GEOGRAPHICALGRIDSYSTEMS.MAPS');
            if (cat != null && zon != null && ignOpts != null){
    	        ignOpts.options.resolutions = Geoportal.Catalogue.RESOLUTIONS.slice(
    	        	ignOpts.options.minZoomLevel, 
    	        	ignOpts.options.maxZoomLevel
    			); 
    	
    	        ignOpts.options.isBaseLayer = false;
    	        ignOpts.options.opacity = 0.7;
    	
    	        ignOpts.options['GeoRM'] = Geoportal.GeoRMHandler.addKey(
    				gGEOPORTALRIGHTSMANAGEMENT.apiKey,
    				gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey].tokenServer.url,
    				gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey].tokenServer.ttl,
    				this.getOLMap()
    			);
    	        
    	        return new ignOpts.classLayer(
    	            OpenLayers.i18n(ignOpts.options.name),
    	            ignOpts.url,
    	            ignOpts.params,
    	            ignOpts.options);
    Et pour finir, voici les requetes envoyées :

    Par GoogleMap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://mt0.google.com/vt/lyrs=t@128,r@169000000&hl=fr&src=api&x=506&y=368&z=10&s=Galile
    Par IGN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://wxs.ign.fr/geoportail/wmsc?LAYERS=GEOGRAPHICALGRIDSYSTEMS.MAPS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=IGNF:GEOPORTALFXX&BBOX=32768,4949896.612773,65536,4973240.076337&WIDTH=256&HEIGHT=256&TILED=true&gppkey=**mykey**

    Je suis complètement bloqué, si quelqu'un a une idée géniale, ça serait super
    Images attachées Images attachées   

  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
    Globalement, ceci a été mis en place pour la prochaine version 1.3 de l'API - Cf. ... Cela a nécessité de grosses modifications dans OpenLayers.Layer.Grid pour arriver à ce résultat probant

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Ah, super !


    Je commençais à me demander si c'était possible

    J'avais vu l'api 1.3 en navigant sur le depot ign, et fait quelques tests avec, mais je n'avais pas trouvé les bons paramétrages.


    Savez-vous quand la version 1.3 sera officielle, et si elle utilisera OpenLayers 2.11 ?



    Merci pour le retour,
    Pouniok.

  4. #4
    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 pouniok Voir le message
    Savez-vous quand la version 1.3 sera officielle, et si elle utilisera OpenLayers 2.11 ?
    J'avais prévu mi-décembre, mais comme on travaille aussi sur l'API 2.0, on a pris du retard, donc : entre mi et fin janvier

    Et oui, c'est OpenLayers 2.11 (Cf. les exemples pour les mobiles)

Discussions similaires

  1. Mettre plusieurs musiques sur fond sonores
    Par seb591 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/07/2007, 12h23
  2. lien sur fond d'écran
    Par nickg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 21/06/2007, 09h25
  3. Detection d'une main sur fond variable
    Par djsid dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 12/06/2007, 10h24
  4. animation 3D sur fond transparent
    Par addicts dans le forum DirectX
    Réponses: 12
    Dernier message: 24/05/2006, 20h42
  5. Création d'un cercle plein blanc sur fond noir
    Par Rafoo dans le forum Traitement d'images
    Réponses: 10
    Dernier message: 11/04/2006, 14h53

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