Hi,

I would start by addind EXTENT to MAP level. WFS 1.0.0 does not support 
reprojection so select the desired output srsName and use that as map level 
PROJECTION. Express extents to suit that projection.

Mapserver has been pretty poor WFS server for real GIS clients but it is 
getting better. However, I cannot promise you any amazing interoperability. At 
least I would recommend you to update to 6.0. If you want to get some good 
feelings about WFS consider having a try with TinyOWS first. It works only with 
PostGIS (v. 1.5 or higher) but that looks to be OK for you. I have managed to 
read features from TinyOWS with Kosmo GIS, gvSIG, QGis, uDig, ArcGIS, MapInfo, 
Gaia, SIS Map Browser and iGeoDesktop. With some clients even attribute and 
spatial filters work. Come back to Mapserver WFS later and start making bug 
reports. Glad that you learned already to study the POST traffic, it is really 
a must with WFS debugging. I am using Fiddler for that purpose.

MapInfo seems to send a most basic WFS call (or stupid, just orders the whole 
layer from you) so that should not be a trouble in this case. Once you get the 
extents corrected you can continue and wait excited if MapInfo will have 
troubles with checking the schemas and parsing the GML that comes from 
Mapserver.

-Jukka Rahkonen-




> -----Alkuperäinen viesti-----
> Lähettäjä: [email protected] 
> [mailto:[email protected]] Puolesta Jelmer Baas
> Lähetetty: 19. elokuuta 2011 11:26
> Vastaanottaja: [email protected]
> Aihe: [mapserver-users] Error with WFS request from MapInfo
> 
> Hello list,
> 
> I've been struggling with this issue for a while, now. When I 
> try to add a WFS layer in MapInfo, I receive the following 
> error (from the mapserver logfile):
> prepare_database(): Query error. Error declaring cursor: 
> ERROR:  BOX3D parser - couldnt parse.  It should look like: 
> BOX3D(xmin ymin zmin,xmax ymax zmax) or BOX3D(xmin ymin,xmax ymax)
> LINE 1: ...:text from pandactueel WHERE geometrie && 
> setSRID('BOX3D(-1....
>                                                              ^
> 
> With query string: DECLARE mycursor BINARY CURSOR FOR SELECT 
> asbinary(force_collection(force_2d(geo)),'NDR'),oid::text 
> from mytable WHERE geo && setSRID('BOX3D(-1.#INF 
> -1.#INF,1390604146415.56 -16080812.3872859)'::BOX3D, 28992 )
> 
> The layer itself works, via normal GetMap requests. 
> 
> This is my mapfile:
> 
> MAP
>       NAME TEST
>       STATUS ON
>       UNITS meters
>       FONTSET "fontset.txt" 
>       DEBUG 5
>       CONFIG  "MS_ERRORFILE" "c:\temp\mapserver.log"
>       IMAGECOLOR 255 55 255
>       OUTPUTFORMAT
>               NAME aggpng24
>               DRIVER AGG/PNG
>               TRANSPARENT ON
>               IMAGEMODE RGBA
>               MIMETYPE "image/png"
>               EXTENSION "png"
>       END
>       
>     WEB
>       METADATA
>         "wms_title" "TEST"
>         "wfs_title" "TEST"
>         "wms_srs" "epsg:4326 epsg:900913"
>         "wfs_srs" "epsg:4326 epsg:900913"
>         "wms_onlineresource" "***"
>         "wfs_onlineresource" "***"
>       END # METADATA
>     END #web
> 
>       
>       SYMBOLSET "symbols_mapinfo2.sym"
>       PROJECTION
>               "init=epsg:4326"
>       END
>       LAYER
>               TYPE POLYGON
>               STATUS ON
>       DUMP TRUE
>       CONNECTIONTYPE POSTGIS
>       CONNECTION "host=localhost dbname=TEST user=postgres 
> password=*** port=5432"
>       DATA "geo from mytable using unique oid using srid=28992"
>       NAME mytest
>       CLASS
>               NAME " mytest "
>                       STYLE
>                               COLOR 0 0 250
>                               OUTLINECOLOR 0 250 0
>                       END
>       END
>       PROJECTION
>               "init=epsg:28992"
>        END
>       MINSCALE 1
>       MAXSCALE 80000000
>       METADATA
>               "wms_title" " mytest "
>               "wms_srs" "epsg:4326 epsg:900913"
>                       "wfs_title" " mytest "
>               "wfs_srs" "epsg:4326 epsg:900913"
>                       "gml_featureid" "oid"
>                       "gml_include_items" "all"
>       END # METADATA
> END
> END # Map File
> 
> 
> MapInfo sends its requests as post (I'd prefer get...) and 
> after using a packet sniffer I found out it sends this:
> <?xml version="1.0" encoding="utf-8"?>
> <GetFeature version="1.0.0" service="WFS" outputFormat="GML2" 
> xmlns:ms="http://mapserver.gis.umn.edu/mapserver"; 
> xmlns:gml="http://www.opengis.net/gml"; 
> xmlns:ogc="http://www.opengis.net/ogc"; 
> xmlns="http://www.opengis.net/wfs"; 
> xsi:schemaLocation="http://www.opengis.net/wfs 
> ../wfs/1.0.0/WFS-basic.xsd" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><Query 
> typeName=" mytest"/></GetFeature>
> 
> I use MapServer version 5.4.2, by the way.
> 
> Can anyone tell me what I'm missing? Should I add extends in 
> the MapFile or something? And where do those weird numbers come from?
> 
> Regards,
> Jelmer Baas
> Speer IT B.V.
> _______________________________________________
> mapserver-users mailing list
> [email protected]
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> _______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to