[mapserver-users] Spatial queries to Mapserver

Gabriel Messner gabmessner at gmail.com
Fri Jun 26 04:51:43 PDT 2009


Thanks, I´ll digest it :-)


2009/6/26 Ben Madin <ben at remoteinformation.com.au>

> Gabriel,
> You need to add a layer with your query in it - you can use variable
> substitution etc.
>
> an example (may or may not be a good one!) :
>
>     LAYER
>         DEBUG 3
>         NAME "buffalo"
>         GROUP "Movement"
>         METADATA
>             layer_title "Buffalo"
>             layer_order "2"
>         END
>         CONNECTIONTYPE postgis
>         CONNECTION "host=localhost port=5432 dbname=prices"
> PROCESSING "CLOSE_CONNECTION=DEFER"
>         DATA "route FROM (
>                 SELECT s.id, s.commodity, s.shortname, s.amount,
> s.purpose, s.origprov, s.destprov, ST_MakeLine(s.startpoint, s.endpoint) as
> route, to_char(s.origindate,'DD/MM/YYYY') as date
>                 FROM (
>                     SELECT m.id, c.commodity, sp.shortname, c.amount,
> r.name AS purpose,
>                      initcap(o.name) as origprov, initcap(d.name) as
> destprov,
>                      ST_Centroid(o.geom) as startpoint,
> ST_Centroid(d.geom) as endpoint, origindate
>                     FROM movements m
>                     LEFT OUTER JOIN locations o
>                     ON m.originprovince = o.hiercode
>                     AND o.del = 0
>                     AND o.level = 2
>                     LEFT OUTER JOIN locations d
>                     ON m.destinationprovince = d.hiercode
>                      AND d.del = 0
>                      AND d.level = 2
>                     JOIN commodities c
>                     ON m.id = c.movementid
>                      AND c.del = 0
>                     AND c.commodity = 2
>          LEFT OUTER JOIN species sp
>          ON c.commodity = sp.id
>          AND sp.del = 0
>          LEFT OUTER JOIN reasons r
>          ON c.purpose::int = r.id
>          AND r.del = 0
>                     WHERE m.del = 0
> AND originprovince is not null
> AND originprovince not like '0'
> AND destinationprovince is not null
> AND destinationprovince not like '0'
>                 ) AS s
>                 WHERE s.origindate > '%start%'
>                 AND s.origindate < '%end%'
>                 ORDER BY s.origindate
>         ) AS foo USING UNIQUE id USING srid=4326"
>         TYPE LINE
>         STATUS ON
>         HEADER 'templates/trade_header.html'
>         FOOTER 'templates/trade_footer.html'
>         CLASSITEM commodity
>         CLASS
>             NAME "Buffalo"
>             EXPRESSION "2"
>             STYLE
>             SYMBOL "arrow1"
>             OFFSET 0 0
>             SIZE 12
>             COLOR 0 0 255
>          END
>             TEMPLATE 'templates/trade_query.html'
>         END
>     END
>
>
> Actually, I don't think it's a great example, but it shows you how to
> create a line on the fly using the centroid (probably should have been point
> on surface) showing the direction the animals moved, within a user specified
> time frame.
>
> I'm open to any feedback on this - it's a modification of one I modified
> from one Regina Obe posted somewhere.
>
> I should say, note the use of debug. the error messages are invaluable when
> it doesn't work.
>
> good luck
>
> cheers
>
> Ben
>
>
>
>
>
> On 26/06/2009, at 2:47 PM, mapserver-users-request at lists.osgeo.org wrote:
>
> *Subject: **[mapserver-users] Spatial queries to Mapserver*
>
>
> Hi all,
>
> Any one know of examples about how to call spatial queries using Postis
> functions from Mapserver?
>
>
> --
>
> Ben Madin
> REMOTE INFORMATION
>
> t : +61 8 9192 5455
> f : +61 8 9192 5535
> m : 0448 887 220
> Broome   WA   6725
>
> ben at remoteinformation.com.au
>
>
>
> Out here, it pays to know...
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20090626/ea41a58e/attachment.htm>


More information about the MapServer-users mailing list