[postgis-users] match line with road segment
searchelite
searchelite at gmail.com
Thu Jul 17 20:59:56 PDT 2008
searchelite wrote:
>
>
>
> Obe, Regina DND\MIS wrote:
>>
>> Now you do your make line. But you'll have to take into consideration
>> what Paolo Rizzi said afterward. Not sure the easiest way to do that.
>>
>> So basically your process should look something like the below where
>> trip_id is some fied that uniquely identifies each trip. The below snaps
>> each point to closest road segment and then makes a line for each trip.
>> It assumes the pt.gid is in the order of time travel. If you have a
>> datetime field for each point, use that instead of the pt.gid.
>>
>> SELECT trip_id, ST_MakeLine(snapped_point) As trip_route
>> (SELECT
>> pt_id,
>> ln_id,
>>
>> ST_Line_Interpolate_Point(
>> ln_geom,
>> ST_Line_Locate_Point(ln_geom, pt_geom)
>> ) As snapped_point,
>> travel_id
>>
>> FROM
>> (
>> SELECT DISTINCT ON (pt.gid)
>> ln.the_geom AS ln_geom,
>> pt.the_geom AS pt_geom,
>> ln.id AS ln_id,
>> pt.gid AS pt_id,pt.trip_id
>> FROM
>> gps_points pt INNER JOIN
>> road_table ln
>> ON
>> ST_DWithin(pt.the_geom, ln.the_geom, 10.0)
>> ORDER BY
>> pt.gid,ST_Distance(ln.the_geom, pt.the_geom)
>> ) AS subquery ORDER BY trip_id, pt_id) As snapped_points
>> GROUP BY travel_id;
>>
>> Hope that helps,
>> Regina
>>
>>
>
>
> thanks a lot for the reply...i'll try the code you give me first thing
> tomorrow...:-)
>
>
basically, the code you gave me just create a line from snapped points
right? what about matching the route with the road? I want to make the route
like the illustration below
http://www.nabble.com/file/p18522213/untitled.jpg
thank you
--
View this message in context: http://www.nabble.com/match-line-with-road-segment-tp18479996p18522213.html
Sent from the PostGIS - User mailing list archive at Nabble.com.
More information about the postgis-users
mailing list