[mapserver-users] passing parameter to a OGRVRTDataSource layer

Fawcett, David (MNIT) David.Fawcett at state.mn.us
Wed Mar 25 13:47:07 PDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20150325/2cbf2592/attachment-0001.html>


More information about the mapserver-users mailing list