[mapserver-users] Calculate length!

Schylberg Lars lars.schylberg at saabgroup.com
Fri Mar 13 04:49:03 PDT 2015


Hi Jukka,

That is right and that is why I wrote about conversion to spatialite.
Next questions is when it gets interesting.

How can I get Mapserver to understand that it is sqlite dialect in the DATA statement?
If this would be the case:

CONNECTIONTYPE OGR
CONNECTION "doc_test.kml"
DATA "select st_length(geometry) from line_demo limit 5"

As far as I understand it defaults to regular OGR sql.
I was looking for an answer a couple of months ago but didn’t find any solution.

Somewhere I have seen that pszDialect can be set to "SQLITE".
But can that be done in the mapfile?

I have also seen in old message from You about a undocumented workaround with VRT
Is that the solution?

I have a similar issue myself where I would like work against another OGR format but with sqlite syntax.

/Lars

From: Rahkonen Jukka (MML) [mailto:jukka.rahkonen at maanmittauslaitos.fi]
Sent: den 13 mars 2015 10:58
To: Schylberg Lars; mapserver-users at lists.osgeo.org
Subject: Re: [mapserver-users] Calculate length!

Hi Lars,

You should not underestimate GDAL.  Read http://www.gdal.org/ogr_sql_sqlite.html and look at this:

ogrinfo -dialect sqlite -sql "select st_length(geometry) from line_demo limit 5" line_demo.shp
INFO: Open of `line_demo.shp'
      using driver `ESRI Shapefile' successful.

Layer name: SELECT
Geometry: None
Feature Count: 10
Layer SRS WKT:
(unknown)
st_length(geometry): Real (0.0)
OGRFeature(SELECT):0
  st_length(geometry) (Real) = 638.237633730745
OGRFeature(SELECT):1
  st_length(geometry) (Real) = 32.7179011265525
OGRFeature(SELECT):2
  st_length(geometry) (Real) = 4399.43983906202
OGRFeature(SELECT):3
  st_length(geometry) (Real) = 480.395511976145
OGRFeature(SELECT):4
  st_length(geometry) (Real) = 311.309421824364
-Jukka Rahkonen-


Schylberg Lars wrote:

As far as I know there is no length function in Mapserver.
The only geometry function to use in Expressions is area(shape).
OGR sql doesn’t provide that either as far as I can see in the documentation.

So the solutions might be to convert your KML data to  sqlite or postgis where such functions are available.

The length of a string (number of characters in the string) can be found in OGR sql with the length function,
but I am assuming You are looking for the geometric length of the linestring.

/Lars

From: mapserver-users-bounces at lists.osgeo.org<mailto:mapserver-users-bounces at lists.osgeo.org> [mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of alok mathur
Sent: den 13 mars 2015 07:01
To: mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>
Subject: [mapserver-users] Calculate length!

Hi,

I want to calculate the length in mapserver. Is it possible. Means i have a linestring and i want to know the length for it.
Also not could be suggest me how to do it.

I am using data source to mapserver as KML.

Thanks!

--

Alok Mathur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20150313/02d22849/attachment-0001.html>


More information about the mapserver-users mailing list