A few months ago, Frederik Ramm posted an idea on the German OpenStreetMap mailing list about a new (stochastic) approach to OSM data quality assurance. You can find his original German post here. His idea was to create a way to allow users to “like” or “dislike” a specific region on the OSM map, a function that other popular websites such as YouTube or Facebook implemented to allow users to provide feedback to videos or status updates. For OSM this particular function could give some indicators or trends about the OSM map data.
I really liked his idea and in collaboration with Frederik I created an Open Source OpenLayers plugin. For all new readers: OpenLayers is an Open Source library which can implement a dynamic (OSM) map into more or less any webpage. One of our goals was to make the integration of the ILikeOSM plugin as easy as adding a tile server to your OpenLayers map.
The following image shows the plugin in more detail, including the “like” and “dislike” buttons to provide feedback about the area on the map.
An additional feature of the plugin shows how many users have been viewing the same area of the map that the current user is taking a look at. More precisely: How many other users have been viewing a similar area of the map within the past two minutes with a zoom level of +-3 to yours. All components of the plugin are Open Source and available on github. The database which saves the likes and dislikes is running on a German OSM Dev server. A database dump file can be downloaded on a daily basis. It is important to note at this point that no private data is saved in the database when a user leaves his or her feedback. The plugin only saves an independent, randomly generated user ID, the feedback type i.e. thumbs up/down, the zoom level, the layer name and the bounding box of the map section. A map view is generally not saved to the database until the user accepts to do so via a pop up window.
Do you like this feature?
It is quite easy to integrate it into your own webpage. Here is how it works:
1. Add the following line below your OpenLayers script-tag:
<script src=”http://ilike.openstreetmap.de/ILikeOSM.min.js” type=”text/javascript”></script>
2. Then add the following lines to your OpenLayers Controls:
new OpenLayers.ILikeOSM()
3. Styling
<style type="text/css">
div.olILikeOSM { position: absolute; top: 15px; left: 50px; padding: 7px; color:white; border-radius: 10px; background: rgba(0, 0, 0, 0.6); }
div.olILikeOSM a { color: white; font-size:12px; text-decoration: underline; }
</style>
4. That’s it!
What is the benefit of this plugin or of the saved ILikeOSM data?
Based on the saved likes, dislikes and map views we can generate some statistics to provide you with information about the number of people who like or dislike your particular area of interest. Maybe we can even see some prove of Linu’s law “given enough eyeballs, all bugs are shallow”; meaning in this case, that a larger number of users that check a certain region of the map, results in “better” OSM data quality. As a first prototype, I generated a static webpage which shows an example result map.
Further ideas?
The plugin could potentially be expanded with an additional textbox in which a user could leave a comment why the area is not well represented in OSM. This information could then be saved e.g. in OpenStreetBugs. Anyway, we think that the current version of the plugin could provide some very useful information. You will find a webpage with all information, examples and downloads here: http://ilike.openstreetmap.de As a first step we integrated the plugin into the OpenStreetMap Germany webpage.
Frederik will give a short talk about the ILikeOSM plugin at the upcoming State of the Map 2012 in Tokyo. If our proposed session abstract about another topic for the State of the Map 2012 US gets accepted, Dennis will try to present it there too.
Thank you very much for your feedback: Frederik, Jonas, Dennis, Sven & Marc