A day in the life of Danny D'Amours

Openstreetmap: How to start contributing

Openstreet map is an open and free map source that can be used in applications, websites or for any other purpose that you can imagine.


“What’s the point?” you might ask. I can just use Google or Yahoo maps and just use their API to serve my needs. Although Google Maps and Yahoo Maps allow you to create and use their mapping services for free, there are several restrictions imposed by these sites. For example Google Maps terms of service prevents you from using the data outside of Google’s service. It is therefore a violation of Google’s terms if you attempt to cache maps for offline use in an application (which seems to be an obvious use case of map data). For more info see: http://wiki.openstreetmap.org/index.php/FAQ#Why_don.27t_you_just_use_Google_Maps.2Fwhoever_for_your_data.3F


Openstreetmap attempts to create a completely free and open map source for programmers and users. In the same spirit as Wikipedia where users submit content for encyclopedia articles, Openstreetmap is created by the users. Users capture geographical co-ordinates using inexpensive GPS units. The GPS tracks are then tagged and uploaded to the Openstreetmap servers where they are combined with other users marked up traces to create maps.

Collecting data :

Using a GPS or GPS enabled device, you record your location as you move about by foot, by bike or by car. Personally I have been using my Nokia N800 Internet Tablet combined with an HP Bluetooth GPS device. I use maemo mapper to capture and view and save my tracks as I drive about my business whether that is going to work or driving to the store. Saving tracks or paths generates a GPX file which is simply an XML file which contains a series of latitude/longitude points with an associated time stamp.

Tagging and editing paths:

With a GPX file, one has the basic information required for a map. Indeed, you can simply upload a GPX file to Openstreetmap and hopefully somebody will annotate it and add details to it. It is much more desirable however if the person collecting the GPS data also marks up the path with additional information.

Although one can mark up a GPS trace using OSM’s online site, it is easier to use a standalone program called JOSM (Java Openstreetmap). It is necessary to mark “ways” on the track which indicate where the roads or features being mapped are located by using the captured GPS points as a reference. Why not simply use the captured points as a way? By marking up the ways, it is possible to smooth out features to take into account GPS errors. It also allows OSM to use fewer segments greatly easing the processing burden. For example, a straight line road can be delineated by two points and a connecting line between them while the GPX track might have tens or hundreds of positional points to deal with.

Openstreet map

JOSM application examining a captured GPS track.

Once a way is defined, you can add various annotations or “tags” to it such as the type of highway (primary, secondary, etc.) and the name of the road. See here for a little of common conventions when creating tags.Adding tags to a way

Once all of the appropriate tags have been added, it is time to upload the maked up track to the OSM servers for everybody else to see. One disappointing thing about OSM is that currently the maps on the server are updated with uploaded tracks once a week (Wednesday night I believe). This current setup unfortunately removes the instantaneous satisfaction and feedback when uploading data that a site such as Wikipedia gives users.

Although I thought that I would be the first to upload data for the Fredericton area, somebody has beet me to it by a week or so. My first track detailing Lincoln road showed up on the update this Wednesday. Not perfect but it is a good start. I have captured a bunch of other tracks that I now have to mark up and upload.

Related Posts:

August 3rd, 2007 Posted by Danny D'Amours | Fredericton, Mapping, Tech | no comments

No Comments »

No comments yet.

Leave a comment