Trouble with OGC Workshop WFS Client Demo
Scott Wittenburg
wwittenburg at COMCAST.NET
Thu Jan 17 11:59:23 PST 2008
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
More information about the MapServer-users
mailing list