Pages: 1
- Sujet précédent - [Openlayers] Comment afficher un shapefile contenant des points - Sujet suivant
#1 Thu 08 July 2010 11:23
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
[Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Je bute sur un problème sans doute très bête : je n'arrive pas à afficher des points contenus dans un shapefile, alors que dans le cas de polygones ou lignes, ca ne me pose pas de soucis.
Voici le code javascript que j'utilise pour afficher une couche contenant autre chose que des points :
Code:
var lanildut_wms = new OpenLayers.Layer.WMS( "lanildut", "http://localhost/cgi-bin/mapserv?map=/var/www/tests/brest.map&", { projection: new OpenLayers.Projection("EPSG:27582"), layers: 'lanildut', transparent:"true", format: 'image/png' }, { singleTile: false, opacity: 0.5, isBaseLayer : false, } );
J'ai essayé d'autres pistes comme passer par une couche "Vector" en WFS, sauf que je n'ai même pas réussi à la mettre en oeuvre avec des lignes ou polygones. Ca a l'air assez récent, je n'ai pas réussi à trouver des masses d'exemples dessus.
La doc d'OL recommande cette structure de données comme remplacement de "Layers.WFS", mais cette dernière me semble plus simple d'utilisation...
J'avais quelque chose de ce genre quand j'ai tenté une couche Vector :
Code:
var points = new OpenLayers.Layer.Vector( "Estran Vecteur", { strategies: [new OpenLayers.Strategy.BBOX()], protocol: new OpenLayers.Protocol.WFS({ version: "1.1.0", srsName: "EPSG:27582", url: "http://localhost/tests/lanildutMap/estran.map", featureType: "estran", }), styleMap: new OpenLayers.StyleMap({ strokeColor: "black", strokeWidth: 2, strokeOpacity: 0.5, fillOpacity: 0.2 }), renderers: ["Canvas", "SVG", "VML"] } );
Après je me plante peut-être aussi dans la définition de ma couche de points dans le *.map. Ca ressemble à quelque chose comme ca :
Code:
LAYER NAME pointsLayer METADATA ### WMS "wms_title" "Points" ### WFS "wfs_title" "Points" "gml_featureid" "NAME" "gml_include_items" "all" END PROJECTION "init=epsg:27582" END DUMP TRUE TYPE POINT STATUS ON DATA pointsLayer
Une petite question au passage : au début, mon shapefile s'appelait "Points", et je me faisais insulter par MapServer lors du chargement du shapefile. Je l'ai renommé et l'insulte a disparu... Je trouve assez étrange qu'il bloque sur un nom de fichiers comme ca. C'est normal ?
Hors ligne
#2 Fri 09 July 2010 11:26
- Satare
- Juste Inscrit !
- Lieu: Raismes
- Date d'inscription: 30 Mar 2009
- Messages: 2
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
var points = new OpenLayers.Layer.Vector(
"Estran Vecteur",
{
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
srsName: "EPSG:27582",
url: "http://localhost/tests/lanildutMap/estran.map",
featureType: "estran",
}),
styleMap: new OpenLayers.StyleMap({
strokeColor: "black",
strokeWidth: 2,
strokeOpacity: 0.5,
fillOpacity: 0.2
}),
renderers: ["Canvas", "SVG", "VML"]
}
);
J'aurais mis l'adresse du serveur moi là : http://localhost/mapserv?map=c:/chemin/vers/mapfile.map&" - un truc comme ca
Et quand vous appelez le layer "estran" : vous n'avez aucun layer nommé comme tel dans votre mapfile ?
Hors ligne
#3 Fri 09 July 2010 14:11
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Merci de votre réponse.
J'ai bien un layer "estran" dans mon mapfile. Effectivement, ce n'est pas ce que j'ai montré, mais la structure générale du layer est la même. Il y a juste un champ CLASS - COLOR, OUTLINECOLOR en plus.
J'arrive à afficher ce que je veux en passant par "OpenLayers.Layer.WFS". Je m'en serais bien contenté, sauf qu'il est indiqué dans la doc que ca va disparaitre dans la version 3.0 d'OL...
Utiliser l'adresse du serveur me semble mieux aussi, merci. Sauf que ca ne marche pas mieux... Je n'ai toujours rien qui change quand j'active/désactive la couche Vector. Pas même une tuile rose.
Je vais continuer de creuser le problème donc...
Hors ligne
#4 Tue 13 July 2010 10:32
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Il me semble que si j'arrive à résoudre mon problème d'affichage de données WFS via un "Vector" d'OpenLayers, je ne serai plus très loin de l'affichage de mes points contenus dans un shapefile.
Le hic c'est que pour le moment je patauge... Serait-il possible d'avoir un exemple d'utilisation de vecteur avec Mapfile ?
Merci d'avance.
Hors ligne
#5 Tue 13 July 2010 10:52
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Oui ici : http://mapserver.org/input/vector/shapefiles.html
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
#6 Tue 13 July 2010 11:23
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Merci, mais ce n'est pas tellement la partie Mapsever qui me pose problème, mais son utilisation dans OL.
J'ai bien vu des exemples sur le site d'OL utilisant la classe vector, mais c'était à chaque fois avec geoserver et une url pointant vers un fichier ".../wfs" que je ne possède pas.
Pour le moment, le code de mon layer ressemble à peu près à ca :
Code:
var estran_wfs_vect = new OpenLayers.Layer.Vector( "Estran Vecteur", { strategies: [new OpenLayers.Strategy.BBOX()], protocol: new OpenLayers.Protocol.WFS({ version: "1.0.0", srsName: "EPSG:27582", url: "http://localhost/cgi-bin/mapserv?map=/var/www/tests/lanildutMap/estran.map&", featureType: "estran", }), styleMap: new OpenLayers.StyleMap({ strokeColor: "black", strokeWidth: 2, strokeOpacity: 0.5, fillOpacity: 0.7 }), renderers: ["Canvas", "SVG", "VML"] } );
Ca ne plante ni n'affiche d'erreur dans firebug, mais ca n'affiche pas quelque chose pour autant. Quelqu'un verrait une erreur dans mon bout de code ou il faudrait aller la chercher ailleurs ?
Hors ligne
#7 Tue 13 July 2010 11:42
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Il faudrait que tu procèdes en deux temps : d'abord vérifier que le service WFS est opérationnel, en testant avec un client lourd par exemple, et ensuite essayer de l'intégrer dans OpenLayers.
Dans Firebug, tu dois aussi pouvoir repérer les requêtes émises vers le service WFS et voir si elle sont déconnantes ou pas. En les ouvrant dans un nouvel onglet, il se peut que tu vois apparaître un message d'erreur.
Guillaume
Hors ligne
#8 Mon 02 August 2010 11:11
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Excusez-moi pour le temps de réponse, j'étais passé à quelque chose de plus prioritaire entre-temps.
Le serveur WFS est bien opérationnel. Voici une requete et ce qu'elle revoie :
Code:
http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&PROJECTION=EPSG%3A27582&TYPENAME=estran&FORMAT=image%2Fpng&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A27582&BBOX=50000,2397500,100000,2422500
Code:
<wfs:FeatureCollection xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://mapserver.gis.umn.edu/mapserver localhost/cgi-bin/mapserv?map=/var/www/tests/lanildut.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=estran&OUTPUTFORMAT=XMLSCHEMA"> − <gml:boundedBy> − <gml:Box srsName="epsg:27582"> − <gml:coordinates> 75096.603132,2409373.548219 80585.157175,2411777.410681 </gml:coordinates> </gml:Box> </gml:boundedBy> − <!-- WARNING: FeatureId item 'NAME' not found in typename 'estran'. --> − <gml:featureMember> − <ms:estran> − <gml:boundedBy> − <gml:Box srsName="epsg:27582"> − <gml:coordinates> 75096.603132,2409373.548219 80585.157175,2411777.410681 </gml:coordinates> </gml:Box> </gml:boundedBy> − <ms:msGeometry> − <gml:Polygon srsName="epsg:27582"> − <gml:outerBoundaryIs> − <gml:LinearRing> − <gml:coordinates> 75400.004370,2410536.800205 [...beacoup de coordonnées...] 75400.004370,2410536.800205 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </ms:msGeometry> <ms:AREA>7.10612e-004</ms:AREA> <ms:PERIMETER>1.93870e-001</ms:PERIMETER> <ms:COMLIT2_>1176</ms:COMLIT2_> <ms:COMLIT2_ID>49</ms:COMLIT2_ID> <ms:NOM>ESTRAN</ms:NOM> </ms:estran> </gml:featureMember> </wfs:FeatureCollection>
Dans OpenLayers ma couche ressemble à ceci :
Code:
var estran = new OpenLayers.Layer.Vector( "estran Vector SHP", { strategies: [new OpenLayers.Strategy.BBOX()], projection: new OpenLayers.Projection("EPSG:27582"), protocol: new OpenLayers.Protocol.WFS({ version: "1.1.0", url: "http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&", featureNS: "http://mapserver.gis.umn.edu/mapserver", featureType: "estran", schema: "http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&PROJECTION=EPSG%3A27582&TYPENAME=estran&FORMAT=image%2Fpng&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A27582&BBOX=50000,2397500,100000,2422500" }) } );
J'obtiens la requête suivante dans Firebug :
Code:
http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&
Requête qui me revoie l'erreur suivante:
Code:
mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.
[EDIT]
Après avoir rajouté un champ "TEMPLATE" rempli par un fichier vide dans la section "WEB" de mon mapfile, j'obtiens un nouveau jeu d'erreurs. Je ne m'attendais pas à autre chose, mais ca peut faire avancer le problème.
Code:
msDrawMap(): Image handling error. Unable to initialize image. msPrepareImage(): General error message. Image dimensions not specified. msCalculateScale(): General error message. Invalid image extent, minx=-1.000000, miny=-1.000000, maxx=-1.000000, maxy=-1.000000. mapserv(): Web application error. No way to generate map extent.
[/EDIT]
Apparament je dois me taper la rédaction d'un template MapServer... Je ne savais pas que ca existait ^^'. Je vais aller potasser la doc.
Dernière modification par Fol (Mon 02 August 2010 11:27)
Hors ligne
#9 Mon 02 August 2010 11:27
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Non cela signifie que OpenLayers n'envoie pas la bonne requête (il n'a pas rajouté les paramètres WFS obligatoire : GetFeature, TYPENAME, etc.)
Ton problème vient de la configuration de la couche WFS dans le code JavaScript.
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 Mon 02 August 2010 11:52
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Merci de la rapidité de la réponse.
La requête POST effectuée par OpenLayer se base uniquement sur le champ "url" de l'objet protocol. Je peux mettre n'importe quoi autour, ca n'est pas pris en compte. Du moins c'est l'impression que j'ai.
Pourtant au vu de ce sujet ca ne me semble pas logique du tout :
Ca y est, ça marche ! Je donne la solution, ça peut servir :
Code:
test_WFS = new OpenLayers.Layer.Vector(test WFS", { strategies: [new OpenLayers.Strategy.BBOX()], protocol: new OpenLayers.Protocol.WFS({ url: "http://adresse-ip/cgi-bin/mapserv_5.4.1?map=/var/www/html/WFS_server/test.map", featureType: "ma_couche", featureNS: "http://mapserver.gis.umn.edu/mapserver" }) });
Entrer toute la requête à la main ne me semble pas la bonne solution. Surtout que ca ne change presque rien au résultat. J'obtiens juste soit différentes erreurs en fonction des paramètres que je donne, soit la même chose que précédemment une fois les erreurs corrigées... La seule différence notable se situe au niveau du nombre de paramètres détectés par Firebug.
[EDIT]
J'ai parlé trop vite. J'ai quelque chose qui ressemble pas mal à une requête dans le POST :
xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WF … action.xsd http://mapserver.gis.umn.edu/mapserver http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&PROJECTION=EPSG%3A27582&TYPENAME=estran&FORMAT=image%2Fpng&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A27582&BBOX=50000,2397500,100000,2422500"
Dernière modification par Fol (Mon 02 August 2010 12:11)
Hors ligne
#11 Mon 02 August 2010 12:54
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Peux tu tester la requête envoyé en post et voir si cela fonctionne ?
Tu as une extension sympas sous Firefox : poster qui te permet d'écrire et d'envoyer des requêtes POST.
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
#12 Mon 02 August 2010 14:58
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Je viens de tester la requête en post, et j'obtiens l'erreur suivante :
mapserv(): Web application error. Traditional BROWSE mode requires a TEMPLATE in the WEB section, but none was provided.
Quand j'ajoute un paramètre template dans mon mapfile, ca se change en :
msDrawMap(): Image handling error. Unable to initialize image.
msPrepareImage(): General error message. Image dimensions not specified.
msCalculateScale(): General error message. Invalid image width or height.
Je vais continuer de fouiller pour voir si j'arrive à avoir une requête différente.
[EDIT]
Je viens de me rendre compte que la requête émise ( http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&PROJECTION=EPSG%3A27582&TYPENAME=estran&FORMAT=image%2Fpng&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A27582&BBOX=50000,2397500,100000,2422500 ) provient de ce que j'ai mis dans le paramètre "schema" de l'objet protocole de ma couche dans OpenLayers... avec un "amp;" rajouté après les caractères "&". J'ai essayé en remettant la requête émise en post dans le "schema". Résultat : je me retrouve avec "&amp;" un peu partout.
Dernière modification par Fol (Mon 02 August 2010 15:14)
Hors ligne
#13 Thu 05 August 2010 11:17
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
L'edit précédent semble être une belle fause piste... Et la requete que j'avais trouvé n'est en fait que le schema que j'avais entré en paramètre dans le protocol ^^'.
J'ai l'impression que mon objet OL.Layer.Vector en protocole WFS fonctionne tout à fait correctement.
D'un côté la requête POST envoyée vers mapserver est identique ce qui est envoyé vers une couche Vector TinyOWS/PostGIS.
De l'autre, la réponse ressemble énormément à celle d'une couche OL.Layer.WFS, sauf qu'elle ne contient pas les coordonnées des points de la forme géométrique.
Voici ce que j'obtiens en réponse à la couche Vector en protocole WFS :
Code:
<?xml version='1.0' encoding="ISO-8859-1" ?> <wfs:FeatureCollection xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://mapserver.gis.umn.edu/mapserver localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=feature:estran&OUTPUTFORMAT=XMLSCHEMA"> <gml:boundedBy> <gml:Box srsName="epsg:27582"> <gml:coordinates>75096.603132,2409373.548219 80585.157175,2411777.410681</gml:coordinates> </gml:Box> </gml:boundedBy> <!-- WARNING: FeatureId item 'NAME' not found in typename 'estran'. --> <gml:featureMember> <ms:estran> <!-- Dans le cas de OL.Layer.WFS, la forme géométrique est ici --> <ms:AREA>7.10612e-004</ms:AREA> <ms:PERIMETER>1.93870e-001</ms:PERIMETER> <ms:COMLIT2_>1176</ms:COMLIT2_> <ms:COMLIT2_ID>49</ms:COMLIT2_ID> <ms:NOM>ESTRAN</ms:NOM> </ms:estran> </gml:featureMember> </wfs:FeatureCollection>
Ce qui est récupéré dans la balise gml:featureMember correspond exactement à ce qui est contenu dans le *.dbf associé à mon *.shp. Le soucis est que les coordonnées des points de la forme géométrique ne sont pas dans ce fichier... Et là je n'ai pas vraiment d'idée sur la façon d'aller les récupérer dans un des autres fichiers du shapefile (*.sbn, *.shp, *.sbx, *.shx).
Changer le protocole WFS par autre chose ?
Bon, ca avancé, mais je ne suis toujours pas arrivé au bout du problème.
Hors ligne
#14 Thu 05 August 2010 11:22
Re: [Openlayers] Comment afficher un shapefile contenant des points
Comme le dit le WARNING : il ne trouve pas la couche estran appelé par le paramètre "featureType: "estran"," dans OL.
ton mapfile, incomplet, affiche seulement une couche pointLayer ... que tu nommes "points" dans les paramètres wfs_title et wms_title (que tu peux réunir en ows_title pour éviter d'avoir deux lignes.
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
#15 Thu 05 August 2010 12:36
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Bonjour,
Merci de ta réponse, mon mapfile avait effectivement quelques soucis. Je ne m'étais pas plus que ca intéressé au WARNING car il apparaissait aussi avec la classe OL.Layer.WFS.
Le warning a maintenant disparu. J'ai maintenant <ms:estran fid="estran.49">, où 49 correspond au contenu de ce que j'ai mis dans "gml_featureid", COMLIT2_ID ici.
Sauf que ca ne fait toujours pas le lien avec la forme géométrique. =/ (Le shapefile sur lequel je fais mes tests est un des seuls en ma possession à avoir un semblant d'id.)
Je ne sais pas trop ce qui pourrait m'aider du côté de la doc de mapserver. gml_geometries et gml_[nom]_type me semblainent pas mal, mais rien à faire.
Je remet mon mapfile, histoire que ce soit un peu plus clair :
Code:
MAP NAME "Test" UNITS METERS IMAGECOLOR 255 255 255 SHAPEPATH "../shapefiles" TRANSPARENT ON EXTENT 70000 2400000 80000 2420000 WEB IMAGEPATH "/var/tmp/" IMAGEURL "/tmp/" METADATA ### WMS "wms_title" "WMS Estran" "wms_onlineresource" "localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&" "wms_srs" "epsg:27582" "wms_format" "image/png" ### WFS "wfs_title" "WFS Estran" "wfs_onlineresource" "localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&" ## Recommended "wfs_srs" "epsg:27582" ## Recommended END END PROJECTION "init=epsg:27582" END OUTPUTFORMAT NAME png DRIVER "GD/PNG" MIMETYPE "image/png" IMAGEMODE PC256 EXTENSION "png" END ###### Estran ####################### LAYER NAME estran DATA Estran METADATA "ows_title" "Estran" ### WFS "gml_featureid" "COMLIT2_ID" "gml_include_items" "all" "gml_geometries" "Estran.shp" "gml_Estran.shp_type" "polygon" END PROJECTION "init=epsg:27582" END DUMP TRUE TYPE POLYGON STATUS ON CLASS COLOR 0 204 204 OUTLINECOLOR 51 153 153 END END ###### END Estran ###### END ###### END OF Map File ######
Dernière modification par Fol (Thu 05 August 2010 14:00)
Hors ligne
#16 Thu 05 August 2010 14:12
Re: [Openlayers] Comment afficher un shapefile contenant des points
Quelques corrections (qui ne créent peut être pas de problème pour le WFS) :
IMAGEPATH "/var/tmp/"
IMAGEURL "/tmp/"
l'url du paramètre IMAGEURL doit tomber sur le répertoire définie par IMAGEPATH : je doute que localhost/tmp/ tombe sur /var/tmp/ mais je peux me tromper si tu as configurer correctement apache.
"wfs_srs" "epsg:27582"
Mettre epsg en majuscule (et seulement dans ce cas là, pour la définition de la projection dans le paramètre PROJECTION il faut qu'il soit en minuscule.
"wfs_onlineresource" "localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&"
Je ne sais pas si l'absence de "http://" peut poser problème ....
Je ne voie rien de problématique, les paramètres gml_geometries et gml_Estran.shp_type ne sont pas obligatoire.
Si tu écris une requête GetFeature WFS, avec un extent qui correspond à celui de la couche qu'est ce que cela donne ?
Peux tu tester ton service WFS avec QGIS ou autre application légère qui gère le WFS ?
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
#17 Fri 06 August 2010 09:48
- Fol
- Participant occasionnel
- Date d'inscription: 28 Jun 2010
- Messages: 13
Re: [Openlayers] Comment afficher un shapefile contenant des points
Merci Yves ! Ca fonctionne, je reçois enfin toutes les infos de mon shapefile en réponse à la requête POST. Ca venait bien de mon mapfile. Et après un petit réglage dans la couche OL ca s'affiche comme il faut
Voici la fameuse réponse :
Code:
<?xml version='1.0' encoding="ISO-8859-1" ?> <wfs:FeatureCollection xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://mapserver.gis.umn.edu/mapserver http://localhost/cgi-bin/mapserv?map=/var/www/tests/estran.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=feature:estran&OUTPUTFORMAT=XMLSCHEMA"> <gml:boundedBy> <gml:Box srsName="EPSG:27582"> <gml:coordinates>75096.603132,2409373.548219 80585.157175,2411777.410681</gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <ms:estran fid="estran.49"> <gml:boundedBy> <gml:Box srsName="EPSG:27582"> <gml:coordinates>75096.603132,2409373.548219 80585.157175,2411777.410681</gml:coordinates> </gml:Box> </gml:boundedBy> <ms:Estran.shp> <gml:Polygon srsName="EPSG:27582"> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates>75400.004370,2410536.800205 [un paquet de points...] 75435.159814,2410519.553683 75400.004370,2410536.800205 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </ms:Estran.shp> <ms:AREA>7.10612e-004</ms:AREA> <ms:PERIMETER>1.93870e-001</ms:PERIMETER> <ms:COMLIT2_>1176</ms:COMLIT2_> <ms:COMLIT2_ID>49</ms:COMLIT2_ID> <ms:NOM>ESTRAN</ms:NOM> </ms:estran> </gml:featureMember> </wfs:FeatureCollection>
La requête manuelle me renvoie également ce qui est ci-dessus.
Je met pour finir le code OL qui va avec, on ne sait jamais, ca peut servir :
Code:
var estranV = new OpenLayers.Layer.Vector( "estran Vector SHP", { strategies: [new OpenLayers.Strategy.BBOX()], projection: new OpenLayers.Projection("EPSG:27582"), style: featureStyle(1, "#000000", "#FF00FF", 0.5), protocol: new OpenLayers.Protocol.WFS({ version: "1.0.0", srsName: "EPSG:27582", url: "../cgi-bin/mapserv?map=/var/www/tests/estran.map", featureNS: "http://mapserver.gis.umn.edu/mapserver", featureType: "estran", }) } );
Hors ligne
Pages: 1
- Sujet précédent - [Openlayers] Comment afficher un shapefile contenant des points - Sujet suivant