Nowadays, postgis allow calibrating a linestring with ST_AddMeasure. Although very useful, it is not enough to cover some common cases when calibrating lines: for example, in road management is very usual that the ratio between a route's length and its measures is not constant. It's typical to have a table with measured points (mileage points, for example) and use it to calibrate the linestring.
So, a method to calibrate a linestring from a collection of PointM would be very helpful. Something like … ?
geometry ST_AddMeasure(geometry geom_mline, geometry points_collection);
To take into account:
- the measured points not intersect with the line: the user should be able to set a offset/buffer for the points to be snapped to linestring. Somethink like … ?
geometry ST_AddMeasure(geometry geom_mline, geometry points_collection, float buffer);
- start & end points of linestring: sometimes, the collection of measured points provided might not to be the start or end points of the linestring. I see two actions could be taken to prevent this: 1) require the user to provide a collection where the points match up to the ones on linestring or 2) allow the user to set measures for start & end points of linestring. Something like… ?
geometry ST_AddMeasure(geometry geom_mline, geometry points_collection, float start_measure, float end_measure);
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/About_calibrating_route_measures_using_points/00390000000t000000/