Hello All, I'm new to mapserver, and I'm having trouble getting one of the OGC Workshop demos to work. Hopefully I'll include enough support information here so that someone can help me figure what I'm doing wrong. If anything is missing, please ask and I'll provide any other necessary details. Thanks for taking the time to read this problem description.
Ok, specifically, when I attempt to run the WFS client demo, I get an error in my browser window which looks like this: msDrawMap(): Image handling error. Failed to draw layer named 'envirodat'. msOGRFileOpen(): OGR error. Open failed for OGR connection `/ms4w/tmp/ms_tmp/e80d38d9bdf59eada6d84cd0b21eb99e.tmp.gml'. File not found or unsupported format. The url that generated this error was: http://localhost/cgi-bin/mapserv.exe?map=%2Fms4w%2Fapps%2Fms_ogc_workshop%2Fclient%2Fwfs%2Fdemo.map&layer=envirodat&layer=rivers&layer=land_shallow_topo_2048&zoomsize=2&zoomdir=1&program=%2Fcgi-bin%2Fmapserv.exe&map_web=imagepath+%2Fms4w%2Ftmp%2Fms_tmp%2F+imageurl+%2Fms_tmp%2F When I look in the directory "C:\ms4w\tmp\ms_tmp\", I see the file in question and I've looked at it. It appears to be valid GML, though the cygwin "ls -lt" command shows the file permissions as "-rwxrwx---". Is this a problem (not world readable)? The "C:\ms4w\tmp\ms_tmp\" directory permissions are even more restrictive: "drwx------". I've tried opening up all the permissions on all these files and directories, but it didn't seem to help. Here are some system configuration details: I'm running Windows XP, SP2. I installed MS4W version 2.2.6 and the OGC Workshop version 1.0.8 into the recommended location, "C:\" (root directory is "C:\ms4w\"). Everything seemed to work fine, and several of the workshop demos worked fine, but when I clicked on the WFS-Client demo link and then clicked the "Initialize" button, I got the error message shown above. I noticed a message in the archives that looked very similar to this error, but the problem was actually an extra path separator char getting put into the tmp file path. Other than that, I haven't really seen this problem addressed anywhere, so most people obviously aren't seeing it. One thing I found that people have said could be a problem is the version of OGR/GDAL used by mapserver. I've used the "C:\ms4w\tools\gdal-ogr\ogrinfo.exe program to look at the tmp gml file in question: C:\ms4w\tools\gdal-ogr>ogrinfo.exe C:\ms4w\tmp\ms_tmp\e80d38d9bdf59eada6d84cd0b21eb99e.tmp.gml Had to open data source read-only. INFO: Open of 'C:\ms4w\tmp\ms_tmp\e80d38d9bdf59eada6d84cd0b21eb99e.tmp.gml' using driver 'GML' successfull. 1: envirodat So that seems fine, doesn't it? The MS4W 2.2.6 documentation says it includes "GDAL/OGR 1.4.2 and Utilities", so that seems fine too. Here's the mapfile of the demo that caused the problem: # # $Id: demo.map,v 1.2 2006/08/08 19:02:46 tkralidi Exp $ # # Start of map file # MAP # all temp files get prefixed with this string NAME ms_ogc_workshop # always returns a map STATUS ON # image format options OUTPUTFORMAT NAME png DRIVER "GD/PNG" MIMETYPE "image/png" IMAGEMODE RGB EXTENSION "png" END # width / height of map image SIZE 500 300 # projection of the INTERFACE that this mapfile supports PROJECTION "init=epsg:4326" END # minx miny maxx maxy EXTENT -180 -90 180 90 # World # units of map/app UNITS DD # def pointers for symbols SYMBOLSET "../../etc/symbols/symbols.sym" FONTSET "../../etc/fonts/fonts.txt" # # Start of web interface definition # WEB TEMPLATE "../../templates/demo.html" HEADER "../../templates/query_header.html" FOOTER "../../templates/query_footer.html" # this is set in the form which initializes the page, but can be set here if you want IMAGEPATH "/ms4w/tmp/ms_tmp/" # this is set in the form which initializes the page, but can be set here if you want IMAGEURL "/ms_tmp/" END # # Start of reference map # REFERENCE # which image is the base image for refmaps # a area of interest box will be drawn on top of it IMAGE ../../graphics/refmap_world_4326.gif # extents of ref image (minx miny maxx maxy) EXTENT -180 -90 180 90 # width / height of image SIZE 150 75 # always generated STATUS ON COLOR -1 -1 -1 # color of outline OUTLINECOLOR 255 0 0 END # # Start of legend # LEGEND KEYSIZE 18 12 LABEL TYPE BITMAP SIZE MEDIUM COLOR 0 0 89 END TEMPLATE "../../templates/legend.html" STATUS ON END # # Start of scalebar # SCALEBAR IMAGECOLOR 255 0 0 LABEL COLOR 0 0 0 SIZE tiny END STYLE 1 SIZE 80 2 COLOR 0 0 0 UNITS KILOMETERS INTERVALS 1 TRANSPARENT TRUE STATUS TRUE END # start of querymap object QUERYMAP SIZE 200 200 STATUS ON STYLE HILITE COLOR 255 0 0 END # start of layer definitions LAYER # name of layer NAME land_shallow_topo_2048 GROUP "RASTER" # projection: if the data is NOT in the same projection as the global # mapfile, you must explicitly give the native projection code of the data # some common projections: # lat/long: epsg:4326 # NRCan LCC: epsg:42304 PROJECTION "init=epsg:4326" END # what type of data is this? TYPE RASTER # always returned with interface STATUS ON # actual data pointer DATA ../../data/land_shallow_topo_2048.tif DUMP TRUE HEADER "../../templates/land_shallow_topo_2048_query_header.html" TEMPLATE "../../templates/land_shallow_topo_2048_query_body.html" TOLERANCE 5 END LAYER # name of layer NAME rivers GROUP "VECTOR" # projection: if the data is NOT in the same projection as the global # mapfile, you must explicitly give the native projection code of the data # some common projections: # lat/long: epsg:4326 # NRCan LCC: epsg:42304 PROJECTION "init=epsg:4326" END # what type of data is this? TYPE LINE # always returned with interface STATUS ON # actual data pointer DATA ../../data/rivers # data is queryable DUMP TRUE # query templates for HTML-based queries HEADER ../../templates/rivers_query_header.html TEMPLATE ../../templates/rivers_query_body.html TOLERANCE 5 # how will this data look? CLASS NAME "Rivers" COLOR 0 0 255 END END LAYER NAME envirodat GROUP "VECTOR" TYPE POINT STATUS ON # this is a remote OGC:WFS CONNECTIONTYPE WFS # the server URL prefix # MapServer will add the OGC:WMS specific # keyword value pairs accordingly #CONNECTION "http://map.ns.ec.gc.ca/envdat/map.aspx?service=WFS&version=1.0.0&request=GetFeature" CONNECTION "http://map.ns.ec.gc.ca/envdat/map.aspx?" PROJECTION "init=epsg:4326" END # base info MapServer needs to know to generate the # OGC:WFS GetFeature request METADATA # MapServer default sends POST # force to GET "wfs_request_method" "GET" # how long (in seconds) should MapServer use # in issuing and receiving the data? "wfs_connectiontimeout" "60" # which version of the OGC:WFS should MapServer communicate with "wfs_version" "1.0.0" # service type for connection # this info is a bit redundant "wfs_service" "WFS" # what is the feature type you are querying "wfs_typename" "envirodat" # what is the spatial extent? "wfs_latlonboundingbox" "-64.6622 46.7594 -52.6808 55.2333" # END # # MapServer will then use this information to generate a string like: # http://map.ns.ec.gc.ca/envdat/map.aspx?version=<wfs_version>&service=<wfs_service>&request=GetFeature&typename=<wfs_typename> # # missing required keyword value pairs get generated according # to the application using this mapfile, i.e.: # &bbox, &filter, etc. CLASS NAME "Water Quality Monitoring Stations" COLOR 255 255 0 END END END
