It is highly recommended to work with polylines instead of segmented vector lines. The command v.build.polylines creates this map structure.
The lidcol and pidcol columns contain the line IDs which relate mileposts and vector line(s) to each other.
When creating a LRS with this module, any existing rstable will be replaced.
As first step, bus route data are prepared.
# break into segments for correct route selection v.clean roads_net out=busroute_tmp tool=break # make polyline for easier line selection by coordinate pairs v.build.polylines busroute_tmp out=busroute_tmp2 # reverse delete: reduce route map to bus route (enter in one line) v.edit -r busroute_tmp2 tool=delete coords=590273,4927304,\ 590346,4927246,590414,4927210,590438,4927096,590468,4926966,\ 590491,4926848,590566,4926798,590637,4926753,590701,4926698,\ 590830,4926726,590935,4926751,590993,4926830,590972,4926949,\ 590948,4927066,590922,4927182,590957,4927251 thresh=5 # vector line needs to be polyline v.build.polylines busroute_tmp2 out=busroute_tmp3 v.category busroute_tmp3 out=busroute op=add g.remove vect=busroute_tmp,busroute_tmp2,busroute_tmp3
g.region vect=busroute n=n+100 s=s-100 w=w-100 e=e+100 d.mon x0 d.vect roads_net d.vect busroute col=red width=2
v.db.addtable busroute col="lid integer" v.db.update busroute col=lid value=22 v.db.select busroute cat|lid 1|22
# generate points map echo "590263|4927361 590432|4927120 590505|4926776 590660|4926687 590905|4926742 590972|4926949 591019|4927263" | v.in.ascii out=busstops d.vect busstops icon=basic/triangle col=blue d.vect busstops disp=cat lcol=blue
v.db.addtable busstops col="lid integer, start_mp double precision, \ start_off double precision, end_mp double precision, \ end_off double precision" v.db.update busstops col=lid value=22
v.db.update busstops col=start_mp qcol=cat # verify table v.db.select busstops cat|lid|start_mp|start_off|end_mp|end_off 1|22|1||| 2|22|2||| 3|22|3||| 4|22|4||| 5|22|5||| 6|22|6||| 7|22|7||| # visualize with start_mp to check order d.erase d.vect roads_net d.vect busroute col=red width=2 d.vect busstops icon=basic/triangle col=blue d.vect busstops disp=attr attrcol=start_mp lcol=blue
As second step, the linear reference network is created:
v.lrs.create busroute points=busstops out=route_lrs err=lrs_error \ lidcol=lid pidcol=lid rstable=route_lrs thresh=50
# show LRS table db.select route_lrs d.vect route_lrs col=blue width=2
v.build.polylines, v.lrs.segment, v.lrs.where, v.lrs.label
Last changed: $Date$