Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 29 October 2013 10:29

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour, je suis nouveau sur ce site et dans le domaine de la géomatique.

J'essaie de créer une carte avec Mapserver et openlayers mais je rencontre un problème d'alignement/superposition des cartes.

Le but est d'avoir la carte de la france et que certaines communes soient coloriées (pour le moment je prend toutes les communes de France pour etre sur de l'alignement des cartes).

J'utilise openlayers pour avoir la carte de la france zoomable depuis les serveurs de openlayers.
J'utilise mapserver pour récuperer depuis postgres  les contours des communes de France au format Lambert 93:

avec ogrinfo sur mon shape j'ai :

Code:

Layer name: commune
Geometry: Polygon
Feature Count: 36610
Extent: (99226.000000, 6049647.000000) - (1242375.000000, 7110524.000000)
Layer SRS WKT:
PROJCS["RGF93_Lambert_93",
    GEOGCS["GCS_RGF_1993",
        DATUM["Reseau_Geodesique_Francais_1993",
            SPHEROID["GRS_1980",6378137.0,298.257222101]],
        PRIMEM["Greenwich",0.0],
        UNIT["Degree",0.0174532925199433]],
    PROJECTION["Lambert_Conformal_Conic_2SP"],
    PARAMETER["False_Easting",700000.0],
    PARAMETER["False_Northing",6600000.0],
    PARAMETER["Central_Meridian",3.0],
    PARAMETER["Standard_Parallel_1",44.0],
    PARAMETER["Standard_Parallel_2",49.0],
    PARAMETER["Latitude_Of_Origin",46.5],
    UNIT["Meter",1.0]]
ID_GEOFLA: Integer (10.0)
CODE_COMM: String (3.0)
INSEE_COM: String (5.0)
NOM_COMM: String (50.0)
STATUT: String (20.0)
X_CHF_LIEU: Integer (6.0) Y_CHF_LIEU: Integer (6.0) X_CENTROID: Integer (6.0) Y_CENTROID: Integer (6.0) Z_MOYEN: Integer (4.0)
SUPERFICIE: Integer (10.0)
POPULATION: Real (6.1)
CODE_CANT: String (2.0)
CODE_ARR: String (1.0)
CODE_DEPT: String (2.0)
NOM_DEPT: String (30.0)
CODE_REG: String (2.0)
NOM_REGION: String (30.0)

Voici mon code javacript :

Code:

<html>
  <head><title>OpenLayers KML Example</title></head>
  <body>
    <script type="text/javascript" src="lib/jquery.js"></script>
    <script type="text/javascript" src="lib/OpenLayers.js"></script>
    <script type="text/javascript" src="lib/html2canvas.js"></script>
       
    <div id="map" style="width:700px;  height:600px ; margin:10px auto 50px auto;"></div>
 
 
        
<script defer="defer">
 
   var map = new OpenLayers.Map('map',{
                             maxExtent: new OpenLayers.Bounds( 99226.000000, 6049647.000000, 1242375.000000 ,  7110524.000000 ),
                             projection : new OpenLayers.Projection("EPSG:2154"),
                              
                            displayProjection : new OpenLayers.Projection("EPSG:2154") 
                         }
                      );

    map.addLayer(new OpenLayers.Layer.OSM());
 
    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
         "http://localhost/cgi-bin/mapserv.exe?MODE=map&map=C:/ms4w/Apache/htdocs/signalement_albopictus/app/webroot/mapserver/colonisation.map",
         {    layers: 'communeatteinte',
             SRS:'EPSG:2154'
         } , {
            isBaseLayer : false,
            visibility : true ,
            projection : new OpenLayers.Projection("EPSG:2154"),
            displayProjection : new OpenLayers.Projection("EPSG:2154") 
        }
    );    
    map.addLayer(wms);
     
    var zoom=5;
    var center = new OpenLayers.LonLat(80000,5800000);
    wms.setCenter(center, 5);
        
    map.zoomToMaxExtent();
     map.addControl(new OpenLayers.Control.Navigation());
 
    
  </script>
  
</body></html>

et voici le fichier map

Code:

MAP
    NAME commune_map
    STATUS ON
    SIZE 600 600
    UNITS METERS
     EXTENT 99226.000000 6049647.000000 1242375.000000 7110524.000000
    
    FONTSET './fonts/fonts.txt'
    SYMBOLSET './symbols/symbols.txt'

    IMAGECOLOR 255 255 255
    IMAGEQUALITY 99
    IMAGETYPE png
 
     PROJECTION
        "init=epsg:2154"
    END
    
    OUTPUTFORMAT
        NAME png
        DRIVER 'GD/PNG'
        MIMETYPE 'image/png'
        #IMAGEMODE RGBA
        EXTENSION 'png'
        TRANSPARENT ON
    END

     
    WEB
        METADATA
            "ows_enable_request" "*"
        END
        TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
    END
    
    
    LAYER
        NAME "communeatteinte"
        #DATA commune
        STATUS DEFAULT
        TYPE POLYGON
        DUMP true
           TEMPLATE fooOnlyForWMSGetFeatureInfo
          EXTENT 99226.000000 6049647.000000 1242375.000000 7110524.000000

        CONNECTIONTYPE POSTGIS
        CONNECTION "host=localhost dbname=base user=postgres
                    password=passw port=5433"
         
        DATA "the_geom FROM (
            select * from communes where  true
        ) AS foo USING UNIQUE id"
    
        PROJECTION
            "init=epsg:2154"            
        END
     
        CLASS
            NAME "commune_color"
            COLOR 237 36 76
        END
    END    
END

J'obtiens bien la carte de france interactive et ma carte de France crée à partir des contours des communes ( en rouge sur la photo) mais impossible de les superposer correctement, de plus quand je zoom la carte rouge devrai s'agrandir or c'est l'inverse et elle ce duplique.

J'ai testé depuis 2 jours en vain.

Je vous remercie d'avance pour vos conseil et aide.

Cordialement


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Tue 29 October 2013 10:36

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour,

Ton problème est un problème de projection : tu essaies de superposer deux couches qui n'ont pas la même projection. Pour faire simple : la terre est ronde et nous travaillons sur un plan cartésien (et pas sphérique), donc nous projetons les données de la surface du globe sur une feuille plane. Il y a plusieurs méthodes et paramétrage en fonction de l'endroit où nous nous trouvons (=> notion de système de référence, ou srid).

Les projections sont généralement définie par un code (code EPSG), 2154 est le code pour la projection lambert 93 (couche des départements).

Tu ajoutes une couches OSM dont l'objectif est de couvrir la terre entière, dont la projection lambert 93 n'est pas faites pour ca. Ils utilisent donc un autre système de rérérence (Google Mercator, code EPSG : 900913 puis 3857).

Il faut que tu définisses dans ton flux WMS la projection 3857 (ou 900913 mais ce numéro est déprécié). C'est assez simple : dans ton objet METADATA de ton objet WEB tu rajoutes : "ows_srs" "epsg:3857". Tu peux en mettre plusieurs.

Tu devras changer ton code openlayers : code epsg et boudingbox pour la convertir dans la bonne projection.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Tue 29 October 2013 10:57

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour et merci beaucoup pour votre aide.
Je ne suis pas du tout familier avec toutes ces notions de projection mais je commence à y voir un peu plus clair.


J'ai rajouter dans le fichier map dans l'objet web/metadata:

Code:

    WEB
        METADATA
            "ows_enable_request" "*"
            "ows_srs" "epsg:3857"
        END
        TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
    END

Dans le code openlayers j'ai modifier les projections en epsg:3857 pour les deux couches:

Code:

   var map = new OpenLayers.Map('map',{
                             maxExtent: new OpenLayers.Bounds( 99226.000000, 6049647.000000, 1242375.000000 ,  7110524.000000 ),
                             projection : "EPSG:3857",
                              
                         }
                      );
  
    map.addLayer(new OpenLayers.Layer.OSM());
 
    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
         "http://localhost/cgi-bin/mapserv.exe?MODE=map&map=C:/ms4w/Apache/htdocs/signalement_albopictus/app/webroot/mapserver/colonisation.map",
         {    layers: 'communeatteinte',
             SRS:'EPSG:2154'
         } , {
            isBaseLayer : false,
            visibility : true ,
            projection : "EPSG:3857"
        }
    );

de plus la définition suivante ne pose t'elle pas de problème ? :

Code:

{    layers: 'communeatteinte',
             SRS:'EPSG:2154' 
         }

ou faut'il que je mette également  EPSG:3857 ?

je ne vois pas par contre comment définir le bounding box, cela sert'il a évité que la "carte rouge" de france ne se répéte en plus petit lorsque je zoom ?

Si j'ai bien compris il n'est pas nécessaire de transformer mes contours en base de données pour les mettres dans un autre référentiel, openlayers le fait dynamiquement ?

merci d'avance
Alain

Dernière modification par alainib (Tue 29 October 2013 10:59)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Tue 29 October 2013 11:30

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour,

Excuse moi : bouding box = maxExtent, donc tu as bien fais la correction dans la partie JavaScript.

Pour "SRS:'EPSG:2154' " oui il faut changer ca en 3857 car openlayers va appeller la couche WMS de ton mapfile avec ce code, que tu as bien définie dans ton mapfile.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Tue 29 October 2013 12:51

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

le maxExtent doit'il s'appliquer à la carte ou au wms dans le code openlayers ? ( je ne l'ai fait que à la carte)

j'ai toujours le problème de superposition erronée,

dans le fichier map  la balise projection est différente de celle de web/metadata,
la carté crée par le fichier map s'affiche plusieurs fois lorsque je zoom, comment puis je éviter cela ?

merci d'avance.
Alain


Code:

<script defer="defer">
 
   var map = new OpenLayers.Map('map',{
                             maxExtent: new OpenLayers.Bounds( 99226.000000, 6049647.000000, 1242375.000000 ,  7110524.000000 ),
                             units: 'm',
                             projection : "EPSG:3857",       
                         }
                      );

    map.addLayer(new OpenLayers.Layer.OSM());
 
    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
         "http://localhost/cgi-bin/mapserv.exe?MODE=map&map=C:/ms4w/Apache/htdocs/signalement_albopictus/app/webroot/mapserver/colonisation.map",
         {    layers: 'communeatteinte',
             SRS:'EPSG:3857'
         } , {
            isBaseLayer : false,
            visibility : true ,
            projection : "EPSG:3857",
        }
    );    
    map.addLayer(wms);
     
    var zoom=5;
    var center = new OpenLayers.LonLat(80000,5800000);
        
    map.zoomToMaxExtent();
     map.addControl(new OpenLayers.Control.Navigation());
</script>

fichier map:

Code:

MAP
    NAME commune_map
    STATUS ON
    SIZE 600 600
    UNITS METERS
     EXTENT 99226.000000 6049647.000000 1242375.000000 7110524.000000
    
    FONTSET './fonts/fonts.txt'
    SYMBOLSET './symbols/symbols.txt'

    IMAGECOLOR 255 255 255
    IMAGEQUALITY 99
    IMAGETYPE png
 
     PROJECTION
        "init=epsg:2154"
    END
    
    OUTPUTFORMAT
        NAME png
        DRIVER 'GD/PNG'
        MIMETYPE 'image/png'
        #IMAGEMODE RGBA
        EXTENSION 'png'
        TRANSPARENT ON
    END

     
    WEB
        METADATA
            "ows_enable_request" "*"
            "ows_srs" "epsg:3857"
        END
        TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
    END
    
    
    LAYER
        NAME "communeatteinte"
        #DATA commune
        STATUS DEFAULT
        TYPE POLYGON
        DUMP true
           TEMPLATE fooOnlyForWMSGetFeatureInfo
          EXTENT 99226.000000 6049647.000000 1242375.000000 7110524.000000

        CONNECTIONTYPE POSTGIS
        CONNECTION "host=localhost dbname=base user=postgres    password=pass port=5433"
         
        DATA "the_geom FROM (
            select * from communes where  true
        ) AS foo USING UNIQUE id"
    
        PROJECTION
            "init=epsg:2154"            
        END
     
        CLASS
            NAME "commune_color"
            COLOR 237 36 76
        END
    END    
END

Hors ligne

 

#6 Tue 29 October 2013 13:35

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour,

Dans le mapfile :

Extent = bbox dans la projection définie par le bloc Projection
wms_srs : liste des projections géré par le flux WMS
projection dans le bloc MAP : système de référence par défaut de la carte
Projection dans le bloc LAYER : système de référence de la donnée source (correct dans ton mapfile)

Dans OpenLayers :

maxExtent: étendue sur laquelle se situe la carte affichée, dans le système de référence définie
projection : système de référence
Ta variable center peut aussi être incorrect (es tu sur que la projection de ces coordonnées sont en 3857 ?)

Il y a donc un problème soit dans le maxExtent du javaScript, soit dans l'Extent du mapfile.

Ton problème de multiplication est dû à ces problèmes de projection mal définie.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Tue 29 October 2013 13:39

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Re,

L'extent de la France en 3857 est : -740866, 5212703, 1131482, 6680880

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#8 Tue 29 October 2013 13:43

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

merci pour toutes ces spécifications, je vais analyser tout cela.

La seul chose dont je suis sur c'est que mes données dans postgres sont en lambert 93, et que leur Extent est (99226.000000, 6049647.000000) - (1242375.000000, 7110524.000000) obtenu avec ogrinfo, que j'ai mis dans tout les extends que j'ai.
le reste est plutôt du test en espérant que cela marche.

Hors ligne

 

#9 Tue 29 October 2013 14:03

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour,

Pour le mapfile et OpenLayers tu n'es pas obligé de mettre l'extent exact de tes données. Donc tu peux tenter avec celui que je t'ai donné. Ce qui est important c'est la cohérence des projections (et des extents vis à vis de la projection utilisée).

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#10 Wed 30 October 2013 11:43

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Bonjour,

après moulte tentatives empiriques cela ne marche pas encore.

j'ai généré un nouveau fichier mapfile avec a "Quantum GIS Desktop (1.8.0)" que voici :

Code:

MAP
    NAME commune_map
    STATUS ON
    SIZE 600 600
    UNITS meters
     EXTENT -497382.386212 5795616.476470 2137577.593991 7092247.122342
    
    FONTSET './fonts/fonts.txt'
    SYMBOLSET './symbols/symbols.txt'

    IMAGECOLOR 255 255 255
    IMAGEQUALITY 90
    IMAGETYPE png
 
   PROJECTION
    'proj=lcc'
    'lat_1=49'
    'lat_2=44'
    'lat_0=46.5'
    'lon_0=3'
    'x_0=700000'
    'y_0=6600000'
    'ellps=GRS80'
    'towgs84=0,0,0,0,0,0,0'
    'units=m'
    'no_defs'
      END
    
    OUTPUTFORMAT
        NAME png
        DRIVER 'GD/PNG'
        MIMETYPE 'image/png'
        #IMAGEMODE RGBA
        EXTENSION 'png'
        TRANSPARENT ON
    END

    # Web interface definition. Only the template parameter
    # is required to display a map. See MapServer documentation
    WEB
        # Set IMAGEPATH to the path where MapServer should
        # write its output.
        IMAGEPATH '/tmp/'

        # Set IMAGEURL to the url that points to IMAGEPATH
        # as defined in your web server configuration
        IMAGEURL '/tmp/'

        # WMS server settings
        METADATA
          'ows_title'           'QGIS-MAP'
          'ows_onlineresource'  'C:/ms4w/Apache/htdocs/mapserver/commune.map'
          'ows_srs'             'EPSG:2154'
        END

        #Scale range at which web interface will operate
        # Template and header/footer settings
        # Only the template parameter is required to display a map. See MapServer documentation
        TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
    END
    
    
     LAYER
        NAME 'communes'
        TYPE POLYGON
        DUMP true
        TEMPLATE fooOnlyForWMSGetFeatureInfo
        EXTENT -497382.386212 5795616.476470 2137577.593991 7092247.122342
        CONNECTIONTYPE postgis
        CONNECTION "dbname='signalement' host=127.0.0.1 port=5433 user='postgres' password='log' sslmode=disable"
        DATA 'the_geom FROM "communes" USING UNIQUE id USING srid=2154'
        METADATA
          'ows_title' 'communes'
        END
        STATUS OFF
        TRANSPARENCY 100
        PROJECTION
            'proj=lcc'
            'lat_1=49'
            'lat_2=44'
            'lat_0=46.5'
            'lon_0=3'
            'x_0=700000'
            'y_0=6600000'
            'ellps=GRS80'
            'towgs84=0,0,0,0,0,0,0'
            'units=m'
            'no_defs'
        END
        CLASS
           NAME 'communes' 
           STYLE
             WIDTH 0.91 
             OUTLINECOLOR 0 0 0
             COLOR 23 15 132
           END
        END
      END
END

j'ai modifier le code javascript en fonction de ce que j'ai compris :

Code:

 var link = "http://localhost/cgi-bin/mapserv.exe?MODE=map&map=C:/ms4w/Apache/htdocs/mapserver/commune.map&";
         
   
  var map = new OpenLayers.Map('map',
              {
                controls: [],
                maxExtent: new OpenLayers.Bounds(  -740866, 5212703, 1131482, 6680880 ),
              }
      );
          

    map.addLayer(new OpenLayers.Layer.OSM());
 
    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
         link,
         {   layers: 'communes',
             maxExtent: new OpenLayers.Bounds( -497382.386212, 5795616.476470 ,2137577.593991 ,7092247.122342),
            // SRS:'EPSG:2154', // toujours ignoré d'aprés la doc'
             transparent: true,
         } , 
        {   singleTile: true,
            ratio: 1
         },
         {
            isBaseLayer : false,
            visibility : true ,
            projection : new OpenLayers.Projection("EPSG:2154"),
            displayProjection : new OpenLayers.Projection("EPSG:3857") 
        }
    );    
   
   wms.setOpacity(0.52);
   map.addLayer(wms);

j'ai tenté de permuter les
- maxextent des le wms et osm
- la valeur de projection et displayprojection du wms
mais sans succés, la carte wms ne s'affiche plus qu'une seule fois maintenant, mais elle est mal superposé.

Sinon si je convertit mes données en base de données depuis lambert 93 vers une autre projection cela peut'il résoudre le problème ?

merci d'avance

Alain

Hors ligne

 

#11 Wed 30 October 2013 11:47

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: MAPSERVER et openLayers : probleme superposition des cartes.

il faut supprimer le "mode=map" de ton url mapserver (var link), en effet tu veux utiliser le mode WMS, et non le mode "mapserver"

Hors ligne

 

#12 Wed 30 October 2013 11:55

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

merci pour votre aide.

je viens de supprimer le "mode=map" de l'url mais maitenant le calque wms ne s'affiche plus sur la carte, a la place il y a une "image rose transparente"

voici l'url
http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/Apache/htdocs/mapserver/commune.map&LAYERS=communes&MAXEXTENT=-497382.386212%2C5795616.47647%2C2137577.593991%2C7092247.122342&TRANSPARENT=TRUE&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fpng&SRS=EPSG%3A900913&BBOX=-15898379.692831,-11134923.624203,11496651.240762,12346531.461735&WIDTH=700&HEIGHT=600

Hors ligne

 

#13 Wed 30 October 2013 12:14

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: MAPSERVER et openLayers : probleme superposition des cartes.

en repartant de zero, avec une config minimale pour faire marcher le tout...

mapfile:

Code:

MAP
    NAME commune_map
    STATUS ON
    SIZE 600 600
    UNITS meters
     EXTENT -497382.386212 5795616.476470 2137577.593991 7092247.122342

    
   PROJECTION
     "+init=epsg:2154"
   END

     WEB
        METADATA
          'ows_srs'             'EPSG:2154 EPSG:3857'
          'ows_enable_request' '*'
        END
    END
    
    
     LAYER
        NAME 'communes'
        TYPE POLYGON
        CONNECTIONTYPE postgis
        CONNECTION "dbname='signalement' host=127.0.0.1 port=5433 user='postgres' password='log' sslmode=disable"
        DATA 'the_geom FROM "communes" USING UNIQUE id USING srid=2154'
        
        STATUS ON
        PROJECTION
          "+init=epsg:2154"
        END
        CLASS
           NAME 'communes' 
           STYLE
             WIDTH 0.91 
             OUTLINECOLOR 0 0 0
             COLOR 23 15 132
           END
        END
      END
END

et openlayers:

Code:

var map = new OpenLayers.Map('map',{                              
                            displayProjection : new OpenLayers.Projection("EPSG:2154") 
                         }
                      );

    map.addLayer(new OpenLayers.Layer.OSM());
 
    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
         "http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/Apache/htdocs/signalement_albopictus/app/webroot/mapserver/colonisation.map",
         {    layers: 'communes'} ,
         {
            isBaseLayer : false,
            visibility : true ,
            projection : new OpenLayers.Projection("EPSG:3857"),
            maxExtent: new OpenLayers.Bounds(-20037508.342789,-20037508.342789,20037508.342789,20037508.342789),
            sphericalMercator: true
        }
    );    
    map.addLayer(wms);
        
    map.zoomToMaxExtent();
     map.addControl(new OpenLayers.Control.Navigation());

Hors ligne

 

#14 Thu 31 October 2013 17:04

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

désolé pour le retard et merci pour le code, je vais tester cela de suite.

Hors ligne

 

#15 Thu 31 October 2013 17:22

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

bon super méga bonne nouvelle, les cartes sont bien superposés, lorsque je déplace ou zoom elles restent coordonnées correctement wink ouf !

Le extent que vous avez mis est complétement différent de celui que j'avais, est ce le résultat d'un calcul spécifique ?

une dernière question, est'il possible de bloquer la navigation pour rester uniquement en France ?


Yves et Tbonfort, merci encore pour votre aide.

Hors ligne

 

#16 Thu 31 October 2013 18:38

alainib
Juste Inscrit !
Lieu: montpellier
Date d'inscription: 29 Oct 2013
Messages: 9

Re: MAPSERVER et openLayers : probleme superposition des cartes.

Il semblerai qu'il faille utiliser l'option "restrictedExtent" pour limiter le déplacement dans la carte, je vais creuser.

Hors ligne

 

Pied de page des forums

Powered by FluxBB