[OSM-dev] osmeditor2, and editors in general... usability

Nick Whitelegg nick at hogweed.org
Sun Jul 30 09:15:00 BST 2006


[Some of this is dev-related, but some is talk-related, so posted to both 
lists]

I've now taken osmeditor2 as far as I want to in terms of editing features, 
and with a Windows .EXE available (albeit without the ability to talk to a 
GPS, though I have a way of getting round that one for the moment), I'd like 
to turn my attention to usability.

What I want to do with osmeditor2 is to improve the usability to make it very 
easy for new OSM users to be able to download OSM data and create new ways, 
focusing on selecting from a range of predefined types e.g. footpath, 
bridleway, minor road, A road, B road etc. (the list is UK-centric at the 
moment, but this could be expanded - perhaps with the use of a configuration 
file - to equivalents for other countries) as well as create and edit points 
of interest, edit existing ways, and upload waypoints from the GPS.  
With feedback on the list that the editors are regarded by some as difficult 
to use, particularly for non-technical users, I'd like to focus on this 
particular aspect now. 

A related point, and something of interest to all editors is that the process 
of way construction via the API necessitates significant complexity, with 
consequent usability issues. At the moment to create a way you have to (in 
pseudo-code):

Create first node
For i=2 to nnodes
    Create segment
    Create next node
Next i
Create way

With each step being dependent on the last, it makes the code to communicate 
with the API very complex, and if there is a network error, the whole thing 
fails. 

It would thus be better I feel to write a new API script which takes a list of 
latitudes and longitudes (the nodes of the way) plus the intended tags, and 
creates the whole lot server side. This would minimise the chance of errors 
in way construction and make the client-side code much less convoluted.

The question is, what format should it take? Something like the following?

<way id="0" construct="yes">
<node lat="..." lon="..." />
<node lat="..." lon="..." />
<tag k="..." v="..." />
</way>

If we can agree on a format I'll get going creating the API script.

Nick




More information about the dev mailing list