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 15 February 2011 15:08

WWS
Participant occasionnel
Date d'inscription: 11 Oct 2010
Messages: 16

OpenLayers - Mapserver - WFS

Bonjour,
Besoin d'aide ...

Le problème : je n'arrive pas à afficher, par openlayers, des données issues de MapServer en WFS. En WMS, ça fonctionne.
J'ai cherché (longtemps) une solution en parcourant les forums et autres tutoriaux, sans succès. Je pense que le problème vient du .map plutôt que du .php, mais je mets les deux ci-dessous.

Le mapfile :

Code:

MAP
    NAME "Admin_Indonesie_WFS"
    SIZE 550 350
    EXTENT 95 -10 132 5
    UNITS METERS
    IMAGECOLOR 255 255 255
    SHAPEPATH "/var/www/mapserver/test"
    TRANSPARENT ON
        PROJECTION
            "init=epsg:4326"
        END

        WEB
            IMAGEPATH "/var/www/mapserver/test/tmp/"
            IMAGEURL "/mapserver/test/tmp/"
                METADATA
                    "original_projection"    "init=epsg:4326"
                    "wfs_title"        "TestWFS"
                    "wfs_onlineresource"    "http://127.0.0.1/cgi-bin/mapserv?"
                    "wfs_srs"        "epsg:4326"
            END
        END

        LAYER
            CONNECTIONTYPE WFS            
            CONNECTION "/var/www/mapserver/test/indonesie_surface.tab"

            NAME Admin_Indonesie_WFS
                METADATA
                    "wfs_onlineresource"    "/var/www/mapserver/test/indonesie_surface.tab"
                    "wfs_version"    "1.0.0"
                    "wfs_title"    "TestWFS"
                    "wfs_srs"    "ESPG:4326"
                    "gml_featureid"    "SE_ASIA_"
                    "gml_include_items"    "all"
                END
            
                CLASS
                    STYLE
                        COLOR 0 0 0
                        OUTLINECOLOR 255 255 255
                    END
                END
            TYPE LINE
            DUMP TRUE
        END
END

Et le PHP :

Code:

<html>
<head>
<script type="text/javascript" src="http://127.0.0.1/openlayers/OpenLayers.js"></script>
<script type="text/javascript">

var map;

function init() {
    map = new OpenLayers.Map('map', {
        controls:[
            new OpenLayers.Control.Navigation(),
            new OpenLayers.Control.PanZoomBar(),
            new OpenLayers.Control.LayerSwitcher(),
            new OpenLayers.Control.Attribution()],
    maxExtent: new OpenLayers.Bounds(95,-15,125,10),
    units: 'dd',
    projection: new OpenLayers.Projection("epsg:4326"),
    displayProjection: new OpenLayers.Projection("epsg:4326")
} );


var wfs = new OpenLayers.Layer.WFS(
"Admin_Indonesie_WFS",
"http://127.0.0.1/cgi-bin/mapserv?map=/var/www/mapserver/test/testWFS.map&",

{TYPENAME: 'Admin_Indonesie_WFS',layers: 'Admin_Indonesie_WFS', format: 'image/jpeg' }, {buffer: 1, isBaseLayer: true} );
    map.addLayers([wfs]);
            map.addControl(new OpenLayers.Control.Scale('scale'));
            map.addControl(new OpenLayers.Control.MousePosition());

}
</script>
</head>

<body onload="init()">
Test d'affichage de la carte d'Indonesie avec Openlayers en WFS sur MapServer.
<div id="map" style="width: 600px; height: 300px"></div>
</body>

Pour info, les codes pour le test en WMS, qui eux fonctionnent bien :

Le mapfile :

Code:

MAP
    NAME "Test"
    SIZE 550 350
    EXTENT 95 -10 132 5
    UNITS METERS
    IMAGECOLOR 255 255 255
    SHAPEPATH "/var/www/mapserver/test"
    TRANSPARENT ON
        PROJECTION
            "init=epsg:4326"
        END
    
        WEB
            IMAGEPATH "/var/www/mapserver/test/tmp/"
            IMAGEURL "/mapserver/test/tmp/"
        END

        OUTPUTFORMAT
            NAME png
            DRIVER "GD/PNG"
            MIMETYPE "image/png"
            IMAGEMODE PC256
            EXTENSION "png"
        END

        LAYER
            NAME Admin_Indonesie
            STATUS ON
            CONNECTIONTYPE OGR
            CONNECTION "/var/www/mapserver/test/indonesie_surface.tab"
            TYPE LINE
                CLASS
                    STYLE
                        COLOR 0 0 0
                        OUTLINECOLOR 255 255 255
                    END
                END
        END
END

et le PHP :

Code:

<html>
<head>
<script type="text/javascript" src="http://127.0.0.1/openlayers/OpenLayers.js"></script>
<script type="text/javascript">

var map;

function init() {
    map = new OpenLayers.Map('map', {
        controls:[
            new OpenLayers.Control.Navigation(),
            new OpenLayers.Control.PanZoomBar(),
            new OpenLayers.Control.LayerSwitcher(),
            new OpenLayers.Control.Attribution()],
    maxExtent: new OpenLayers.Bounds(95,-15,125,10),
    units: 'dd',
    projection: new OpenLayers.Projection("epsg:4326"),
    displayProjection: new OpenLayers.Projection("epsg:4326")
} );


var wms = new OpenLayers.Layer.WMS(
"Admin_Indonesie",
"http://127.0.0.1/cgi-bin/mapserv?map=/var/www/mapserver/test/test.map&",
{layers: 'Admin_Indonesie'}
);
map.addLayers([wms]);
map.zoomToMaxExtent();
}


</script>
</head>

<body onload="init()">
Test d'affichage de la carte d'Indonesie avec Openlayers en WMS sur MapServer.
<div id="map" style="width: 600px; height: 300px"></div>
</body>

Merci d'avance pour votre aide !

Hors ligne

 

#2 Tue 15 February 2011 16:39

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

Re: OpenLayers - Mapserver - WFS

Tu peux jeter un coup d'oeil au tuto de geotribu : http://www.geotribu.net/node/42

"wfs_onlineresource"    "/var/www/mapserver/test/indonesie_surface.tab"


me semble très incertain, car je ne suis pas sur que le niveau layer prend cet attribut et surtout car ca ne ressemble pas à une ressource en ligne.

Hors ligne

 

#3 Wed 16 February 2011 09:24

WWS
Participant occasionnel
Date d'inscription: 11 Oct 2010
Messages: 16

Re: OpenLayers - Mapserver - WFS

Merci pour ta réponse.
J'ai suivi de près les différents tutoriaux de Geotribu, ça a fonctionné en partie, mais pas pour le WFS.
Je vais continuer à chercher !
Je posterai la solution, si je trouve. D'ici là, autres avis bienvenus !!!!

Hors ligne

 

#4 Fri 29 March 2013 13:58

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

Re: OpenLayers - Mapserver - WFS

moi de mon côté j'arive à afficher du wfs mapserver dans openlayers.
Le probleme c'est que je souhaite que la couche wfs ne s'affiche plus à partir d'un certain niveau de zoom,
j'ai essayé maxscale et minscale mais cela ne marche pas.
Auriez-vous une solution pour ne plus afficher une couche wfs au dela d'une certaine echelle?

Hors ligne

 

Pied de page des forums

Powered by FluxBB