Quantcast
Channel: Forum SIG - Systèmes d'Information Géographique et Géomatique
Viewing all articles
Browse latest Browse all 8030

[OpenLayers] Problème de projection

$
0
0
Bonjour,

après 105 heures de travail/lecture/et autres en 6 jours et malgrès l'aide des bonnes âmes de georezo, je n'arrive pas à résoudre mon problème : Ma couche de donnée wms issue de mapserver se balade partout sauf où elle devrait être. Quelqu'un aurait-il une idée de mon(mes) erreur(s) ?

Détails :
- Ubuntu 12.04 + ubuntugis stable en VM
- mapserver 6.0.3 + openlayers 2.12
- ma page html est : carte.html, couplée à une feuille carte.css et carte.js

HTML :
Code:

<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <title>Première carte avec OpenStreetMap</title>
        <script type="text/javascript" src="OpenLayers-2.12/lib/OpenLayers.js"></script>
        <link rel="stylesheet" href="carte.css" type="text/css">
    </head>
    <body onload="init()">
        <div id="map">
            <script type="text/javascript" src="carte.js"></script>
        </div>
    </body>
</html>

CSS
Code:

#map {
    width: 800px;
    height: 520px;
    border: 1px solid #000;
}

JS
Code:

function init() {
    var map = new OpenLayers.Map('map', {controls:[]});
    var osmLayer = new OpenLayers.Layer.OSM();
    var wms = new OpenLayers.Layer.MapServer("communes", "http://localhost/cgi-bin/mapserv?map=/var/www/mapfile/admin.map&",
        {layers: "communes",
        isBaseLayer: false,
        transparent: true,
        srs: "2154"
        }
    ); 
    map.addLayer(wms);
    map.addLayer(osmLayer);
    /*map.setCenter(new OpenLayers.LonLat(80000, 6005000), 12);*/
    map.zoomToMaxExtent();
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.addControl(new OpenLayers.Control.Navigation());
    map.addControl(new OpenLayers.Control.PanZoomBar());
}

- j'ai créé un mapfile à partir de données topo de l'IGN en L93
Code:

MAP
    NAME "communes"
    STATUS ON
    SIZE 600 400
    EXTENT -180 -90 180 90
    UNITS DD
    SHAPEPATH "/var/www/data_carto/H_ADMINISTRATIF/"
    IMAGECOLOR 255 255 255
    TRANSPARENT ON
    PROJECTION
        "init=epsg:4326"
    END # PROJECTION


    #
    # Start of web interface definition
    #
    WEB
        IMAGEPATH "/var/www/image_tmp/"
        IMAGEURL "/image_tmp/"
        METADATA
            "wms_title" "WMS Alea Demo Server"
            "wms_onlineresource" "localhost/cgi-bin/mapserv?map=/var/www/mapfile/admin.map&"
#            "wms_srs" "epsg:2154"
            "wms_format" "image/png"
            "wms_enable_request" "*"
        END # METADATA
    END # WEB

    #
    # Start of layer definitions
    #
    LAYER
        NAME "communes"
        TYPE POLYGON
        DATA COMMUNE
        STATUS DEFAULT
        OPACITY 75
        CLASS
            NAME "communes"
            OUTLINECOLOR 0 0 255
            END # CLASS
        METADATA
            "wms_title" "communes"
        END # METADATA
        EXTENT 462600 6622000 491000 6746000
        UNITS meters
        PROJECTION
            "init=epsg:4326"
        END
    END # LAYER
END # MAP

je peux changer le srs dans le fichier.js par ce que je veux("tata", "2154", "4326", ...), cela ne change rien alors qu'il me semble que cela devrait modifier quelque chose.

Avec 4326 comme code epsg de ma couche, elle apparaît en Belgique au maxextent, puis si je zoome seule une tuile transparente centrée sur le Nigéria représente ma donnée, puis si je zoome encore j'ai toujours une tuile transparente mais dans l'Atlantique sud.

Si une bonne âme pouvait m'expliquer où se trouve mon erreur ...

En tout cas merci par avance à tous ceux qui atterrissent ici.

Viewing all articles
Browse latest Browse all 8030

Trending Articles