I'm not sure if I understand you question correctly, but here is a
solution for my understanding.
So you have a network component that is partially overlapped by the quay
and you know the length along the network component where the overlap
starts or stops. You can extract the part of the network component that
overlap with ST_Intersection or ST_Difference as Regina suggests. You
can also do this using the linear referencing functions which might be
faster:
From start of netcomponent to your distance of intersection:
SELECT ST_line_substring(netcomponent.the_geom, 0.0,
dist_meters/ST_length_spheroid(netcomponent.the_geom,spheroid))
From your distance of intersection to the end of the netcomponent:
SELECT ST_line_substring(netcomponent.the_geom,
dist_meters/ST_length_spheroid(netcomponent.the_geom,spheroid), 1.0)
If you just want the point of intersection with the quay then this
should do it:
SELECT ST_locate_along_measure(netcomponent.the_geom,
dist_meters/ST_length_spheroid(netcomponent.the_geom,spheroid))
All these functions assume your geometry is in units degrees and you
will need to define an appropriate value for spheroid like:
SPHEROID[<NAME>,<SEMI-MAJOR AXIS>,<INVERSE FLATTENING>]
for example:
'SPHEROID["GRS_1980",6378137,298.257222101]'
-Steve
Paragon Corporation wrote:
I don't quite understand your question.
Are you trying to get the length of the intersection of the 2? So that part
of the network component that falls within the quay?
In that case it would be something of the form
SELECT ST_Length(ST_Intersection(netcomponent.the_geom, quay.the_geom))
Which assumes your netcomponent is defined as a LINESTRING (you can use
ST_MakeLine
http://postgis.refractions.net/documentation/manual-svn/ST_MakeLine.html
if you have 2 points and no line)
And quay is some sort of polygon.
Hope that helps,
Regina
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of
[email protected]
Sent: Saturday, February 14, 2009 11:31 AM
To: [email protected]
Cc: [email protected]
Subject: [postgis-users] Which postGIS functions to use?
I have a "network component" (= part of a waterway) defined by 2
coordinates.
I know how to calculate the length of that component.
However, another component, let's say a quay, overlaps with the component. I
know how far it overlaps (in meters) with the component from the beginning
coordinate and I want to calculate the end coordinate of the quay (that
should be on the network component).
How do I do this?
Thank you
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users