[OSM-dev] Student Project Ideas?
Steve Hosgood
steve at tallyho.bc.nu
Thu Mar 11 11:44:22 GMT 2010
Another idea:
This would probably be best thought-of as a feature for API 0.8, but
basically the idea is to "fix" the current sloppy formatting of the
database tags that contain measurements. This would include "maxspeed=",
"maxheight=" and "maxwidth=" but there are weight limits too, and
"est_width=" and other such tags.
The "problem" with 0.7 and earlier is that the data in these fields is
free-form and this doesn't suit the needs of autorouters. The U.S users
and a lot of U.K. users are inputting these values in imperial units,
everyone else is doing it in metric units. Autorouters need to work in
some consistent system and are currently having to parse out the
freeform data.
That's not too difficult for metric, but (say) a height limit in
imperial may be stored as <<11' 6">> or <<11ft 6>> or <<11ft, 6in>> or
<<11.5ft>> or.... you name it! And human users of editing programs might
like to work in imperial-only (and see values that were entered in
metric be converted for them) or metric-only (and see values that were
entered in imperial be converted for them) or have it displayed the way
it was entered.
I suggest that API 0.8 would specify that any values in the database be
stored in some appropriate canonical form, with a flag to say if it is
naturally imperial or naturally metric. So heights and widths would be
stored (say) in integer millimetres or integer inches with a one-bit
flag to say which it is, and speed limits would be stored in integer
km/h or integer mph with a one-bit flag to say which it is. The API call
to obtain these values would have a parameter to say whether the user
wants metric, imperial or "how-it-was-specified".
( The reason for the one-bit flags is to avoid converting data when it
needn't be. Autorouters will certainly want to work in a single given
system and won't mind if a speed limit is 48.27kph, but humans would
probably rather see that one displayed as 30mph - even if they are
French! Likewise human U.K users would probably want to see a French
speed limit shown as 50km/h not 31.0752mph. )
The GSoC project would need to deal with writing a robot that could go
through all the existing data, parse the extensive list of inventive
abuses of the free-format data(!) and rewrite it in this canonical form.
The project would also create this new API call to return the data of
course. Presumably it would present data in human-readable form
according to the "how I want to see it" parameter.
Steve.
More information about the dev
mailing list