[mapserver-users] passing parameter to a OGRVRTDataSource layer

Daniel Morissette dmorissette at mapgears.com
Thu Mar 26 05:01:23 PDT 2015


I believe the variable substitution is working since you see the 
coordinate values in the exception message received from the server.

The error message says that it cannot find layer "select" in the OGR 
data source, so it may very well be that it ends up being called 
something else for some reason.

I'd suggest hardcoding the coordinate values in your VRT and starting by 
making the VRT works with hardcoded values. Once it works, put the 
variables back in.

Just a guess, but ogrinfo on that VRT may help figure out the source of 
the problem.

Daniel


On 2015-03-25 4:47 PM, Fawcett, David (MNIT) wrote:
> Martin,
>
> Have you looked at the CGI runtime substitution docs?:
> http://mapserver.org/cgi/runsub.html
>
> Make sure that you look at the validation section near the bottom.  If
> the substitution works with CGI WMS, you will need validation.
>
> David.
>
> *From:*mapserver-users-bounces at lists.osgeo.org
> [mailto:mapserver-users-bounces at lists.osgeo.org] *On Behalf Of *Martin
> Ouellet
> *Sent:* Wednesday, March 25, 2015 3:38 PM
> *To:* mapserver-users at lists.osgeo.org
> *Subject:* [mapserver-users] passing parameter to a OGRVRTDataSource layer
>
> Hi all,
>
> I'm using the virtual plugin of OGR to consume a web service who return
> CSV coordinates and mapserver is able to draw the points without any
> problems.
>
> The connection definition in my mapfile is something like this.
>
> CONNECTION "<OGRVRTDataSource><OGRVRTLayer
> name='select'><SrcDataSource>CSV:/vsicurl/http://<my
> server>/service.php</SrcDataSource><GeometryType>wkbPoint</GeometryType><SrcLayer>select</SrcLayer><LayerSRS>WGS84</LayerSRS><GeometryField
> encoding='PointFromColumns' x='PHOTO_LONGITUDE'
> y='PHOTO_LATITUDE'/></OGRVRTLayer></OGRVRTDataSource>"
>
> I would like to pass arguments to that CONNETION string so I could build
> dynamic request.  something like this
>
> CONNECTION "<OGRVRTDataSource><OGRVRTLayer
> name='select'><SrcDataSource>CSV:/vsicurl/http://<my
> server>/service.php?*param1=%PARAM1%&param2=%PARAM2%*</SrcDataSource><GeometryType>wkbPoint</GeometryType><SrcLayer>select</SrcLayer><LayerSRS>WGS84</LayerSRS><GeometryField
> encoding='PointFromColumns' x='PHOTO_LONGITUDE'
> y='PHOTO_LATITUDE'/></OGRVRTLayer></OGRVRTDataSource>"
>
> I know the argument values (in my example PARAM1 and PARAM2) are OK
> because I'm seeing them in the error message thrown by mapserver (see
> below).  But mapserver refuse to render the points:
>
> <?xml version='1.0' encoding="UTF-8" standalone="no" ?>
>
> <!DOCTYPE ServiceExceptionReport SYSTEM
> "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd">
>
> <ServiceExceptionReport version="1.1.1">
>
> <ServiceException>
>
> msDrawMap(): Image handling error. Failed to draw layer named
> 'photo_ownedby_all'.
>
> msOGRFileNextShape(): OGR error. Failed to find layer 'select'
> on datasource 'CSV:/vsicurl/*http://<my
> server>/geophoto/select.php?PARAM1=40.886913500823205%2C-84.41259765625011&PARAM2=63.97980162961738%2C-43.587402343750284*'.
>
> </ServiceException>
>
> </ServiceExceptionReport>
>
> Strangely, if I copy paste this url in the browser, the web service is
> returning valid csv data:
>
> *http://<my <http://%3cmy>
> server>/geophoto/select.php?ll=40.886913500823205%2C-84.41259765625011&ur=63.97980162961738%2C-43.587402343750284*
>
> returned
>
> PHOTO_LATITUDE,PHOTO_LONGITUDE
>
> 48.8099315451953,-77.0906915758454
>
> 48.8119226339273,-77.123176861499
>
> 48.8139039864207,-77.1556648776822
>
> 48.8158756013937,-77.1881556113468
>
> 48.8178374775437,-77.2206490494331
>
> 48.8171607148511,-77.2546364217682
>
> 48.8164732928131,-77.2886228129866
>
> 48.8157752119077,-77.3226082078249
>
> 48.815066472652,-77.356592590973
>
> any thoughts?
>
> MartinO
>
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>


-- 
Daniel Morissette
T: +1 418-696-5056 #201
http://www.mapgears.com/
Provider of Professional MapServer Support since 2000


More information about the mapserver-users mailing list