[mapserver-users] Dynamic WMS Service - Projections problem?
Jean-François Gigand
jean-francois at gigand.fr
Tue Feb 8 17:02:39 PST 2011
Great!
Good luck for your issue, and to get it working again on your server!
Jeff
2011/2/8 <joanne.mcgraw at sympatico.ca>:
> Beautiful, yes. After a bit of fudging and adjusting (because I don't
> actually have access to the actual server I'm really trying to use), I
> managed to get it "not" working on my localhost as it was "not" working on
> that server. On localhost I was able to put the DEBUG in the map file and
> see the results. It told me that it couldn't resolve the host (Host not
> found).
>
> There is an extra '/' in the path being put in the WMC. Instead of
> http://<domain>/... in the OnlineResource, it is getting
> http:///<domain>/... during the process. Now I just have to figure out why
> that's happening but I'm sure it won't be difficult.
>
> Thank you for reminding me of the DEBUG.
>
> Cheers,
> jtm
>
>> From: jean-francois at gigand.fr
>> Date: Tue, 8 Feb 2011 22:32:59 +0100
>> Subject: Re: [mapserver-users] Dynamic WMS Service - Projections problem?
>> To: joanne.mcgraw at sympatico.ca
>> CC: mapserver-users at lists.osgeo.org
>>
>> Hi,
>>
>> Have you checked the MapServer logs?
>>
>> To enable it, set the env variable MS_ERRORFILE to the log file path
>> and MS_DEBUGLEVEL to "5".
>> It will detail interesting details about how your layers are built.
>>
>> Jeff
>>
>>
>> 2011/2/8 myOpenLayersUName <joanne.mcgraw at sympatico.ca>:
>> >
>> > First, the background...
>> >
>> > I have a WMS Service that has an "empty" point layer in it. I use it to
>> > display labels at dynamically generated coordinates by passing x,y
>> > within
>> > the request. For example:
>> >
>> >
>> > http://<domain>/ogc/mapserv?map=/path/fenceLabelWms_en.map&map.layer[fencelabel]=FEATURE
>> > POINTS -105.5620661354989 51.14394472618872 END TEXT "Fence 1"
>> > END&map.layer[fencelabel].class[0]=COLOR 255 0 0
>> > END&map.layer[fencelabel].class[0]=LABEL COLOR 255 0 0 SIZE 10 POSITION
>> > UR
>> > END&LAYERS=fencelabel&mode=map
>> >
>> >
>> > The entire map file is as follows:
>> >
>> > MAP
>> > NAME "fenceLabelWms_en"
>> > FONTSET "../../../mapserv/etc/fonts.txt"
>> > SYMBOLSET "../../../mapserv/etc/symbols.sym"
>> > SIZE 400 300
>> > IMAGETYPE PNG
>> > IMAGECOLOR 255 255 255
>> > RESOLUTION 96
>> > EXTENT -141.5 41.5 -51.5 83.5 # all of Canada
>> > UNITS METERS
>> > PROJECTION
>> > "init=epsg:4269" # lat/long
>> > END
>> > WEB
>> > METADATA
>> > "wms_srs" "EPSG:42304"
>> > END
>> > END
>> >
>> > OUTPUTFORMAT
>> > NAME png
>> > DRIVER 'GD/PNG'
>> > MIMETYPE 'image/png'
>> > IMAGEMODE PC256 #RGB
>> > FORMATOPTION "INTERLACE=OFF"
>> > EXTENSION 'png'
>> > TRANSPARENT ON
>> > END
>> >
>> > LAYER
>> > NAME "fencelabel"
>> > STATUS ON
>> > TYPE point
>> > CLASS
>> > SIZE 0
>> > COLOR 0 0 0
>> > LABEL
>> > TYPE truetype
>> > FONT verdana
>> > ANTIALIAS false
>> > END
>> > END
>> > END
>> > END
>> >
>> >
>> > A number of applications use this WMS and each has its own projection
>> > but,
>> > as in the request above, all pass the x,y as lat/long (EPSG:4269). The
>> > MAP
>> > METADATA's "wms_srs" lists the supported projections (for the purposes
>> > of
>> > this example, I'm simplifying by only including EPSG:42304).
>> >
>> >
>> > So, this allows me to provide the point coordinates in lat/long, but
>> > display
>> > them using the projection from the application itself. For example:
>> >
>> >
>> > http://<domain>/ogc/mapserv?map=/path/fenceLabelWms_en.map&map.layer[fencelabel]=FEATURE
>> > POINTS -105.5620661354989 51.14394472618872 END TEXT 'Fence 1'
>> > END&map.layer[fencelabel].class[0]=COLOR 255 0 0
>> > END&map.layer[fencelabel].class[0]=LABEL COLOR 255 0 0 SIZE 10 POSITION
>> > UR
>> >
>> > END&LAYERS=fencelabel&FORMAT=image/png&SRS=EPSG:42304&TRANSPARENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application/vnd.ogc.se_inimage&BBOX=-2903297.000,-789911.0000,3431059.000,3959683.000&WIDTH=1219&HEIGHT=601
>> >
>> >
>> > Knowing this, I can define this "dynamic" layer within a WMC <Layer> tag
>> > and
>> > load it into an OpenLayers Map (whose projection is set to EPSG:42304
>> > and
>> > extents encompass all of Canada). The WMC definition for the above layer
>> > is
>> > as follows (we use a batch script to set the path to the MapServer
>> > executable and MAP file, "fenceLabelWms_en"):
>> >
>> > <Layer queryable="0" hidden="0">
>> > <Server service="OGC:WMS" version="1.1.1">
>> > <OnlineResource xlink:type="simple"
>> >
>> > xlink:href="http://<domain>/ogc/fenceLabelWms_en?map.layer[fencelabel]=FEATURE%20POINTS%20-105.5620661354989%2051.14394472618872%20END%20TEXT%20'Fence%201'%20END&map.layer[fencelabel].class[0]=COLOR%20255%20105%200%20END&map.layer[fencelabel].class[0]=LABEL%20COLOR%20255%20105%200%20SIZE%2010%20POSITION%20LR%20END"/>
>> > </Server>
>> > <Name>fencelabel</Name>
>> > <Title>Fence 1</Title>
>> > <SRS>EPSG:42304</SRS>
>> > <FormatList>
>> > <Format current="1">image/png</Format>
>> > </FormatList>
>> > <Extension>
>> > <ol:maxExtent minx="-2903297.000" miny="-789911.0000"
>> > maxx="3431059.000" maxy="3959683.000"/>
>> > <ol:transparent>true</ol:transparent>
>> > <ol:numZoomLevels>5</ol:numZoomLevels>
>> > <ol:units>m</ol:units>
>> > <ol:isBaseLayer>false</ol:isBaseLayer>
>> > <ol:displayInLayerSwitcher>false</ol:displayInLayerSwitcher>
>> > <ol:singleTile>true</ol:singleTile>
>> > </Extension>
>> > </Layer>
>> >
>> >
>> > Okay, everything works fine up to this point. The fence label WMS is
>> > displayed in the OpenLayers Map correctly in relation to the other
>> > layers it
>> > contains, all of which have projections of EPSG:42304.
>> >
>> >
>> > Now, the problem ...
>> >
>> > I’d like to print the image displayed to the user. To do this, I have
>> > another "empty" MAP file that I use to print the WMC; the same WMC I
>> > loaded
>> > into OpenLayers. The entire contents of this MAP file are:
>> >
>> > MAP
>> > NAME "wmsContextServer"
>> > FONTSET "../../../mapserv/etc/fonts.txt"
>> > SYMBOLSET "../../../mapserv/etc/symbols.sym"
>> > SIZE 400 300
>> > STATUS ON
>> > IMAGETYPE PNG
>> > IMAGECOLOR 255 255 255
>> > EXTENT -2338951 -800000 3008692 3900000
>> > UNITS METERS
>> > CONFIG "CGI_CONTEXT_URL" "1"
>> > PROJECTION
>> > "init=epsg:42304"
>> > END
>> >
>> > RESOLUTION 96
>> >
>> > REFERENCE
>> > # Parameter settings NOT to change
>> > STATUS ON
>> > COLOR -1 -1 -1
>> > OUTLINECOLOR 255 0 0
>> > # Parameter settings that will change if you replace the default
>> > 'refmap.png'
>> > IMAGE "../htdocs/images/refmap.png"
>> > SIZE 100 74
>> > EXTENT -2.2e+006 -712631 3.0728e+006 3.84e+006
>> > END # REFERENCE
>> >
>> > SCALEBAR
>> > STATUS EMBED
>> > INTERVALS 1
>> > POSITION LL
>> > TRANSPARENT true
>> > UNITS kilometers
>> > STYLE 1
>> > SIZE 100 7
>> > LABEL
>> > SIZE small
>> > END
>> > END
>> >
>> > WEB
>> > INCLUDE "../../../mapserv/conf/imagepath.inc.map"
>> > METADATA
>> > # Used for App Page Title
>> > "wms_title" "WMC Context Client"
>> > "wms_connectiontimeout" "60"
>> > END
>> > END
>> > OUTPUTFORMAT
>> > NAME png
>> > DRIVER 'GD/PNG'
>> > MIMETYPE 'image/png'
>> > IMAGEMODE RGB
>> > FORMATOPTION "INTERLACE=OFF"
>> > EXTENSION 'png'
>> > #TRANSPARENT ON
>> > END
>> >
>> > OUTPUTFORMAT
>> > NAME gif
>> > DRIVER 'GD/GIF'
>> > MIMETYPE 'image/gif'
>> > IMAGEMODE RGB
>> > FORMATOPTION "INTERLACE=OFF"
>> > EXTENSION 'gif'
>> > END
>> >
>> > END
>> >
>> >
>> > Unfortunately, the "dynamic" WMS layer doesn't appear in the output
>> > image. I
>> > can use the following URL to get an image of all the other layers in the
>> > WMC
>> > successfully, but the fence label is not shown and there is no error
>> > message:
>> >
>> >
>> > http://<domain>/ogc/mapserv?map=/path/wmsContextServer.map&mode=map&context=http://<domain>/contexts/WMCwFenceLabels.xml&layers=all
>> >
>> >
>> >
>> > I'm guessing MapServer is getting a blank image when it's assembling the
>> > layers for the output image and I'm further guessing that this is the
>> > result
>> > of the projections somehow getting out of whack somewhere along the
>> > line.
>> > I'm thinking that the point is being evaluated as not actually existing
>> > within the extents of the output image being generated, perhaps? But, I
>> > can't guess why this would be the case. There is no question that it
>> > does
>> > fall within the extents (as witnessed by loading the same WMC in
>> > OpenLayers).
>> >
>> >
>> > As it is now, I am completely stuck as to what the problem might be. Can
>> > anyone suggest anything that might help me narrow down exactly what the
>> > problem is or a direction I can investigate further?
>> >
>> > --
>> > View this message in context:
>> > http://osgeo-org.1803224.n2.nabble.com/Dynamic-WMS-Service-Projections-problem-tp6004893p6004893.html
>> > Sent from the Mapserver - User mailing list archive at Nabble.com.
>> > _______________________________________________
>> > 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