[mapserver-users] OGR data layer type - points and lines

Fawcett, David (MPCA) David.Fawcett at state.mn.us
Mon Dec 20 16:17:58 EST 2010


It took 4 whole days, but thanks to Sandro, Spatialite now has a MakeLine() function.

http://groups.google.com/group/spatialite-users/browse_thread/thread/20f8e907ae9226

The feature is in SVN, I am not sure if it will make it into the pending 2.4.0 release.  I am also not sure how the OGR driver works and if it can accept geometries created on-the-fly, or if they need to come from a geometry column.

David.

-----Original Message-----
From: Fawcett, David (MPCA) 
Sent: Friday, December 17, 2010 10:23 AM
To: 'Stephen Woodbridge'; Ian Walberg
Cc: mapserver-users at lists.osgeo.org
Subject: RE: [mapserver-users] OGR data layer type - points and lines

Ian, 

I thought that there was a pretty simple answer to this, but it seems as though I have imagined some non-existing functionality.

Assuming that you have a Spatialite db containing a point data set, and you have a MapServer layer that draws this, I think that I have a solution for you.  (This also assumes that OGR supports reading linestrings from Spatialite).

PostGIS has the ST_MakeLine() function that allows you to create linestrings out of point geometries.  The current version of Spatialite doesn't have anything like this (although since I have mentioned it on the Spatialite list, it could be there soon...)


So, this SQL employs some workarounds, but may work:

SELECT LineFromText('LINESTRING(' || group_concat(X(geometry) || ' ' || Y(geometry), ',') || ')') FROM datapoints ORDER BY fix_date;

If performance is a problem, I would build a Spatialite line dataset and rebuild it every time your point dataset changes.    

David.



More information about the mapserver-users mailing list