[mapserver-users] Re: Error with WFS request from MapInfo

Rahkonen Jukka Jukka.Rahkonen at mmmtike.fi
Fri Aug 19 06:41:03 EDT 2011


Hi,

You can also try to add this to LAYER
wfs_extent

    Description: (Optional) Used for the layer's BoundingBox tag for cases where it is impossible (or very inefficient) for MapServer to probe the data source to figure its extents. The value for this metadata is "minx miny maxx maxy" separated by spaces, with the values in the layer's projection units. If wfs_extent is provided then it has priority and MapServer will NOT try to read the source file's extents.

And of course you should always be the boss and test with the basic hand written requests first before letting the GIS client to add for the complexity.
Something like these:

http://myserver.xx/cgi-bin/mapserv.exe?service=wfs&version=1.0.0&request=getCapabilities&map=path/to/the/wfs.map
http://myserver.xx/cgi-bin/mapserv.exe?service=wfs&version=1.0.0&request=DescribeFeatureType&typeName=mytest&map=path/to/the/wfs.map
http://myserver.xx/cgi-bin/mapserv.exe?service=wfs&version=1.0.0&request=GetFeature&typeName=mytest&maxFeatures=10&map=path/to/the/wfs.map

-Jukka Rahkonen-

> -----Alkuperäinen viesti-----
> Lähettäjä: Jelmer Baas [mailto:baas at speerit.nl] 
> Lähetetty: 19. elokuuta 2011 12:45
> Vastaanottaja: Rahkonen Jukka; 'mapserver-users at lists.osgeo.org'
> Aihe: RE: Error with WFS request from MapInfo
> 
> Jukka,
> 
> Thanks for your pointers, I'll check out other WFS servers 
> and see how far I get. I did add the extent as EXTENT -180 
> -90 180 90 in the map file but that doesn't seem to change anything.
> 
> Regards
> Jelmer Baas
> 
> > -----Original Message-----
> > From: Rahkonen Jukka [mailto:Jukka.Rahkonen at mmmtike.fi]
> > Sent: vrijdag 19 augustus 2011 11:05
> > To: Jelmer Baas; 'mapserver-users at lists.osgeo.org'
> > Subject: Re: Error with WFS request from MapInfo
> > 
> > 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ä: mapserver-users-bounces at lists.osgeo.org
> > > [mailto:mapserver-users-bounces at lists.osgeo.org] Puolesta 
> Jelmer Baas
> > > Lähetetty: 19. elokuuta 2011 11:26
> > > Vastaanottaja: mapserver-users at lists.osgeo.org
> > > 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
> > > mapserver-users at lists.osgeo.org
> > > http://lists.osgeo.org/mailman/listinfo/mapserver-users
> > >
> 


More information about the mapserver-users mailing list