OpenStreetMap

Users' Diaries

Recent diary entries

RMT RehaMed Technology steht für Kompetenz, Innovation und Leistungsfähigkeit. Unsere Kernbereiche sind Speziallagerungsmatratzen für Menschen mit einem Dekubitusrisiko, sowie die Mobilisation und der Transfer immobilisierter Menschen. Unsere Kunden sind Kliniken, Pflege- und Behinderteneinrichtungen, Krankenkassen, Kommunen, Schwimmbadbetreiber, Fachhändler und privat betroffene Menschen. Wir beraten, fertigen, montieren und machen Vor-Ort-Schulungen – freundlich und kompetent. https://www.rmt.eu/

Location: Gewerbegebiet Nord, Steinberg, Dietzenbach, Landkreis Offenbach, Hessen, 63128, Deutschland

In the last year our Polish OpenStreetMap community started updating the data of parcel lockers and their locations in Poland. The popularity of these machines has significantly increased during the COVID-19 pandemic. We estimate the increase in the number of these devices in Poland at around 3,000 per year. The mapping campaign and the hard work of many contributors have led to the fact that the OSM data in the case of the introduced parcel machines in Poland is much more accurate than the data that the operators of these machines have. At the moment, we have over 4,200 parcel machines introduced to OSM. So we have potentially another advantage in promoting OpenStreetMap in Poland. Unfortunately, we cannot use it, because the parcel lockers are not rendered on www.openstreetmap.org.

The Polish OSM community made a huge contribution to standardize tagging of these features in accordance with all community guidelines. The process was quite difficult because the comments were diverse (and strong) and it was impossible to take into account all of them. Proposa link These steps were time consuming, but eventually we were able to work out the tagging scheme accepted by the OSM community.

Unfortunately, we are not able to develop a solution that would be satisfying for people responsible for maintaining the CartoCSS stylesheet. All our attempts failed.Git hub discussion

That is why I would like to ask a few questions: Why in some areas of our community project do we have total autocracy instead of democracy? Should the OSMF not change the rules for introducing changes to the style to follow the trends and changes in the world around us? Don’t you have the impression that our Democracy is turning into Anarchy?

Feel free to discuss in the comments. I hope that members of OSMF’s board of directors and members of the working group will also take part in this discussion. Anticipating questions, I published in my diary, because communication through other channels seems ineffective.

Posted by OsinachiAtama on 17 May 2022 in English (English).

Hi!! I am getting acquainted with the OSM hot keys(keyboard shortcuts) and it makes the editing easier. At this point I have added over 800 buildings to my father’s village. It’s been fun so far and I’d like to move on to my mother’s village.

Osinachi Atama #umtmapmyvillage

Happy mapping you all!!!

الان دیگه تقریبا نصف ۲۰۲۲ گذشته.. یک سال میلادی دیگه هم داره به سرعت میگذره..خوبه که ببسنیم الان تا به حال چی از پیش بردیم و داریم چه کار میکنیم دیشب یک مانگا خوندم https://en.m.wikipedia.org/wiki/Three_Days_of_Happiness باعث شد ساعت ها به سقف خیره بشم..از خودم بپرسم.. واقعا دارم با زندگیم چه کار میکنم؟ آیا راضی هستم از خودم؟ و از این جور حرف ها هر کی میاد اینجا و این رو میخونه، جدا از اینکه مانگا دوست داره یا نه..پیشنهاد میکنم حتما بخوندش اگه واقعا با مانگا مشکل دارین، نگران نباشید، این مانگا حقیقتا اقتباسی از یک رمان هستش میتونین رمانش رو بخونین :)

Posted by TealeKalon on 16 May 2022 in Korean (한국어).

여기는 뭐하는 곳인가요

Posted by JimjimW13 on 16 May 2022 in English (English).

I’m currently working on it and to be honest I am unaware of what, and or how.

Location: Willamina, Yamhill County, Oregon, United States

THIS IS NOT A PROPOSAL.

In most Yangtze Delta cities, buses usually operate in three separate networks: City Buses (城市公交), Suburban Buses (城乡公交) and Town-Village Buses (镇村公交). Some of those do operate outside the city boundaries, which are classified as Intercity Buses (毗邻公交), they can also be a City Bus Line, a Suburban Bus Line or a Town-Village Bus Line.

There exist a group of enthusiasts who spend their weekends from one city to another city purely by buses or subway lines, such a route is possible by benefiting from the tremendously complicated and connected bus network of Yangtze Delta Cities. I’m one of those enthusiasts who usually spend my entire weekend on buses and subway lines from city to city, as such I do exactly have “local knowledge” that I could benefit others if I can draw these lines on OpenStreetMap. In such a circumstance I figured out that there isn’t a proper way to mark the type of a bus line. After a long discussion with some of the experienced users, I decided to add an unofficial tag network:route:bus:type to tackle this special issue around Yangtze Delta.

For values of network:route:bus:type I would temporary provide city, urban, suburban, town, intercity as five valid options, further extension is possible.

  • city (城市公交), suburban (城乡公交), town (镇村公交) options are used when 3-level bus networks exist in such an area.
  • urban (市域公交) option is used when there’s only a single bus network, this option should not use on it’s own since you don’t really need it.
  • intercity (毗邻公交) option is used for bus routes that operate outside the city boundary limit, this is a optional tag and should be used with the other options.

Example:
1. Route 宜兴城乡公交225 is a suburban line and do have a stop outside the city boundary limit, we set network:route:bus:type=suburban,intercity to it.
2. Route 常州公交34 and 无锡公交26 are city, suburban, town-village mixed line and have stops outside the city boundary limit, since both city only has a single bus network, we set network:route:bus:type=urban,intercity to them.
3. Route 江阴-常州 is a purely intercity line and operates at two different cities, as such we only set network:route:bus:type=intercity to it.

When applying network:route:bus:type to a route, public_transport:version must set as 2 to indicate PTv2 is used. Then set public_transport:v2ext as yes to explicitly declare that this line is using unofficial extended features. Only set network:route:bus:type to the proper value when both of the public_transport tag is set.

DO NOT USE OUTSIDE YANGTZE DELTA.

Using such a tag outside Yangtze Delta is absolutely NOT recommended. When you do facing a similar situation like this or you would like to implement something like this to your local bus networks, please DO talk with me first.

Location: 宜城街道, Yixing, Wuxi City, Jiangsu, 214200, China

I was involved in mobilisation and signing up new members to OSM and participated in a mapathon titled “#mapmyvillage”.

One of the things that note-viewer does is showing notes on a map. They are displayed as markers which we can click to find notes in the table. Map markers show us locations and statuses of notes, the rest of note details can be found in the table. But we can dig deeper into these details. From the last diary entry we know that note-viewer looks for links to osm elements inside note comments. When clicked these links display their linked element on the map. That shows us the element geometry, but now we may want to see more details about the element. The map is displayed using Leaflet library1 which supports adding popups to various items that are shown over the base layer. A popup seems like an appropriate place to show the element version, changeset, last editing user and tags.

What’s the best way for us to implement these popups? If we just bind the popup (layer.bindPopup()) to the element geometry on the map, the user would have to click the element for the popup to show up. Sometimes that’s not very convenient to do because of note markers covering the geometry. To make things easier we can open the popup right away (layer.openPopup()) when the element link is clicked. But that’s not the only thing that needs to happen at that moment, and we may find ourselves struggling a bit with Leaflet. Obviously the linked element may be outside the current map view and we need to pan and zoom to it (map.panTo(), map.flyTo() or others). Opening the popup could have done part of this job because by default the map pans to the opened popup. That still doesn’t take care of zooming. But you may think so what, just let the user zoom to the tip of the popup to find the element on the map.

Here comes up our next problem: when the popup is opened at a low zoom level, after zooming it may drift away from the intended place. Anyway we probably want to zoom first and then open the popup. It would have been nice if we could queue the popup opening after the zooming/panning is finished. We’ll have to do that by listening to animation end events. There are zoomend and moveend events, which ones do we need to listen to? Maybe the map is already at a correct zoom level or at max zoom and the element is small. Then the zooming is not going to happen. Will the zoomend event also not happen in which case waiting for it is useless? But maybe the panning is also not going to happen and waiting for moveend is useless too? Apparently the moveend event happens after every call like map.panTo() or map.flyTo(), so we’ll wait for this event and then open the popup.

We’re still not done because for some unclear reason Leaflet sometimes manages to open the popup at a wrong location even after the map finished moving and zooming. Normally we would attach the popup to the geometry with layer.bindPopup() where we can also set popup options. One of the options is autoPan which is on by default as mentioned above. When the popup is opened at a wrong place, the map view scrolls away from the element with this option on, not something we want. With this option off, the popup stays outside the view, not something we want either. Here’s what we can do to solve this problem and what note-viewer currently does:

  1. Add the geometry to the map.
  2. Tell the map to .panTo()/.flyTo() the element if it’s a node or fit the element’s bounding box (layer.getBounds()) into the map view (map.fitBounds()) and wait for moveend.
  3. In the moveend listener create new L.popup() not bound to any geometry.
  4. Set the popup coordinates (popup.setLatLng()) to the current map center (map.getCenter()).
  5. Open the popup (popup.openOn(map)).
  6. Only after the steps above bind the popup to the geometry (layer.bindPopup(popup)).

Now the popup is going to be shown at the center of the element’s bounding box. This is not ideal because this center may be outside the element itself, but at least it’s not at some random location. That’s true unless the user manages to interrupt the map movement by grabbing the map before the animation stops, but they’ll have to do that on purpose and be quick.

  1. Everything written here is concerned with Leaflet v1.7.1 and may not be exactly true for the recently released v1.8. 

We have now run three casual mapping parties in the “Social Mapping Sunday” series, and they are always a bit different but each one has been as fun as the last.

Shenton Park

In Shenton Park, lots of brand new mappers showed up and were introduced to OSM for the first time. About 13 of us in total! Meeting in the park and walking to nearby features to map worked well.

We didn’t come prepared with specific material to introduce new mappers, and we ended up spending a lot of time installing apps and setting up user accounts, etc. This was not a problem per-se, because it needs to be done. But it would have been smoother if we had a link to send people to which helped people get set up with the basics.

Changes in Shenton Park

Mount Lawley

In Mount Lawley, 6 of us returning mappers set ourselves some explicit goals, and got a lot of data added to the map. We set the goal of mapping all of the shops and their names, footpaths, benches, bins, bus stops, bike parking and trees. We started in the middle of the shopping strip with a small team on each side of the road, and worked all the way to one end. Even though we didn’t map the whole retail strip, the are we did cover, we covered completely, which is very satisfying.

Changes in Mount Lawley

This gif shows the multiple stages of editing that these events encourage: The first step is cleaning up existing data and tracing features from imagery. This is important because it makes it easier to add data during the survey. It is also the best time to make assumptions based on the imagery, because any mistakes will be found during the survey. The next step is adding all of the data during the survey. The final step is cleaning things up, removing a few duplicates, fixing the odd tag, and generally making things neater with more powerful editing tools.

Organising

I have followed the same basic process that I described in my last post, for organising these events, but a few adjustments should be helpful. I have started a page on the wiki to document the process (in the hope that it continues to run, even when I can’t organise it).

It is important to do whole-group activities before everyone heads of to do mapping. That means before we start mapping we should: 1. take a photo of everyone, 2. decide on the details for the next event, and 3. decide on how to reconvene after mapping, for those who will stick around. Then 4. decide on mapping goals.

I have cobbled together a script for creating the before-and-after gifs showcased in this post. The most important part, is the awesome rendering engine Map Machine, which takes .osm files as input, so I can render the same area with the same settings passing in the data from different points in time (that I saved out of JOSM). I then use Image Magick’s convert to put the frames together into a gif.

Location: Mount Lawley, City Of Stirling, Western Australia, 6050, Australia

(In April, I was not as active as before with OSM(F) stuff, because there was water damage in my flat, which was very stressful & time consuming to solve)

Previously…

2022 Jan. Feb. Mar.                  
2021 Jan. Feb. Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec.
2020 Jan. Feb. Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec.

Social Media: 🐦 twitter: @lalonde / 🐘 fediverse/mastodon microblog: @amapanda@en.osm.town (rss feed)

  1. not them 

Posted by badenk on 14 May 2022 in English (English).

Hi Andy and DWG:

I did not take composing this response lightly. I have always mapped assuming good faith and intelligence with co-mappers, both which have seemingly diminished.

If I got a message about a changeset, I first checked the author’s edit count (i.e. experience), and whether they were locally mapping. You can visit my message list to see that I went well out of my way to address legitimate queries.

recent examples: https://www.openstreetmap.org/changeset/105906567 https://www.openstreetmap.org/changeset/116631815

If the author has minimal edits and no local presence, I will not encourage trolls. I especially detest, as probably many others also do, bird-doggers who have zero interest in the local mapping, and whose total focus is on policing, often using external tools. I do not know of any individuals who enjoy being watched over their shoulders.

A perfect example of this is: https://www.openstreetmap.org/changeset/118228668

The author had unbelievably zero edits and brazenly stated, “I’m sure that you’ve been asked several times”, when in actuality, I never had been.

Another mapper joined the recent fray from nowhere. It looks like his modus operandi is already recognised: https://forum.openstreetmap.org/viewtopic.php?pid=824528

And another with zero edits: https://www.openstreetmap.org/changeset/116970678

Andy, as for the “asked more than once previously”, whom are you referring to? I only saw that one message a few months ago. You insinuated that there was a huge hue and cry. A bunch of BS on some external blog does not cut it.

As for the comments, the two machines I predominately use for OSM do not have keyboards, so even writing a few words is a chore. Additionally, it impossible to edit those comments, even when they are misplaced and incorrect. Thus, I cannot imagine those comments having any real value except for the pseudo policia.

As for the sources, I am not sure if you know, but the imagery source used is automatically added to the OSM changeset database. Additionally, I frequently checked and used all the imagery available on my editors, so each node or way could have had multiple exclusive sources. If I used external imagery, such as Sentinel2, I normally attributed it.

Until May 3, everything seemed to be fine. I had been contentedly and diligently mapping the same way for years, without any objection. I have over 12 000 edits, which probably consumed well over 10 000 hours of my volunteered and dedicated time. I prided myself on top quality mapping and mapping entirely new routes, notably railways.

On May 3, one rude, obnoxious and ignorant individual named “Herman Lee” instigated and propagated this recent shitshow, and that should be readily apparent to any competent person. Why did he or you not respond to my queries when I asked why he sent 8 messages in less than 90 minutes, all containing large inexplicable binaries? I still consider his actions nefarious, especially considering a zero explanation.

Andy, you sent me a (DWG) message to respond, and then when I went to do so, I found you had blocked my account. I hope you can discern the ludicrous irony there? Maybe you think that that most OSM dweebs are spending most their time in their mother’s basements dedicated to OSM? I already know I spent (wasted?) too much OCD time on OSM, and my intermittent connections and other real responsibilities have prevented any more.

As for my guide lines and circles that I have been using for many years, it became acceptable to me when I noticed that OSM was riddled with millions of metres of “Hires” ways. I initially and ironically was deleting some of them, as I erroneously thought they were blatant commercial promotion for jobs, such as “Yahoo Hires” and “Bing Hires”, versus the actually intended term ‘high resolution’.

When I mapped new features, especially railway curves, I initially estimated the size and radius, and then with updated imagery, sized and aligned them more accurately. Maybe you did not know, but railway curves have a constant radius, which is well mapped using a template circle. The beauty was, if the placement was off, I only had to quickly move the line or circle and all the attached nodes moved with it. Conversely, each node would need to be individually moved, which would take substantial effort and time.

I also extensively used Sentinel2Explorer on new railway projects. Occasionally, I temporarily added the “highway=path” tag to make the way visible on Sentinel2Explorer, which AFAIK, was the only publicly accessible ‘real time’ and recent imagery. I could then get visible overlay feedback on OSM ways inside Sentinel2Explorer after the change propagated. Often, clear images could take weeks or longer. With what I did, there was no lasting visibility on publicly available maps. After I was satisfied with my way’s accuracy, I deleted the guidelines. Maximal mapping accuracy was consistently my objective, not adhering to a few valueless directives.

I would be interested if a more proficient individual than I could suggest any better method to map new ways without existing imagery.

My temporary additions contrasted to the proliferation of millions of incorrectly imported hash tag highway paths and other objects destined to persist indefinitely and which are actually non-existent. You seemed to have been able to delete most my ~thousand remaining guidelines in three seconds, which indicates it was not actually a problem. The fact that drawing each circle guideline consumed 30 minutes or more of my time was immaterial. I do not think DWG will be addressing with the same vigour all the useless “hires” lines and millions of errant “paths”.

My enjoyment value had been steady declining. A year or two ago, my WWW browsers stopped functioning to edit OSM. A month or two ago, my WWW browsers stopped functioning to even view OSM. A side effect from this, is I cannot even respond to emailed OSM links, as I have to first obtain another computer to view OSM, for which I first need to forward the emailed queries to.

Minimal appreciation and maximal policing along with an autocratic approach to any differences has culminated to where I think it is best that I take a sustained, and possibly permanent, vacation from this project.

thanks, Baden

Posted by Capo1986 on 13 May 2022 in English (English).

ctrl + shift + o: opens the “Download object” dialogue, allowing you to download by ID

A whilst in node drawing mode: toggles accurate drawing mode, allowing you to align to common angles and with previous points. You can also hold ctrl and hover over another way to draw parallel with it

ctrl + alt + v: paste copied object into the source position (i.e. where it was when you copied it). Useful when working with multiple layers

5: zoom to downloaded area

4: zoom to conflict

ctrl + h: display history

holding ctrl while drawing a way starts a new way from a point

shift + j: join overlapping areas

alt + shift + f: opens the filter dialogue allowing you to hide certain objects

I’ve recently got into learning some of the more hidden functions in JOSM, and I’ve discovered a lot of cool dialogues and functions that I didn’t know existed before. Here are some of my favourite keyboard shortcuts (make sure you’ve toggled expert mode on):

  • ctrl + shift + o: opens the “Download object” dialogue, allowing you to download by ID
  • A whilst in node drawing mode: toggles accurate drawing mode, allowing you to align to common angles and with previous points. You can also hold ctrl and hover over another way to draw parallel with it
  • ctrl + alt + v: paste copied object into the source position (i.e. where it was when you copied it). Useful when working with multiple layers
  • 5: zoom to downloaded area
  • 4: zoom to conflict
  • ctrl + h: display history
  • holding ctrl while drawing a way starts a new way from a point
  • shift + j: join overlapping areas
  • alt + shift + f: opens the filter dialogue allowing you to hide certain objects

I’m sure there’s many more that I’ve missed!

รถดั้มพ์ลาน

Location: บ้านเนินพยอม, จังหวัดสุโขทัย, 64160, ประเทศไทย

嘗試在臺北新增詞源學標註

因為之前看到OSMBE社群的性別平等地圖,是依靠etymology標籤來識別對應的人的,然後接觸到詞源學這個東西。雖然和我在北大讀的地理資訊科學沒什麼關係(之前曾經加過一些道路材質,後來因為工作量太大放棄了,突然發現中國大陸社群的朋友也建議我改用JOSM,但是那個我實在不習慣,感覺GUI太醜。),但是覺得很有意思。

我們亞洲國家習慣用什麼樣的地名、人名、事物來命名呢?

因此我想試試看,隨手加些顯而易見而十分普通平常的東西。

比如道路名字,全臺應該有數不清的「信義/忠孝/仁愛/和平」,但是對應的Wikidata我居然一個都沒找到,有點沮喪。

因此嘗試加了一些絕對不會出錯,全臺人盡皆知的詞源學標籤。

當然可能選擇的物件與我個人有關XD,不過不管怎麼說琉璃醬我有在改善資料對吧。

例如,對非道路的編輯可以參考這樣的,很多常見的設施可能得名於地名、人名、或者是商業公司或者學校醫院,都是有可能的。:


對道路的,在陳大提醒改用JOSM以後我試著用Overpass來快速篩選,可以參考這些:

對應的Overpass檢索語句為:

[out:xml][timeout:25];{{geocodeArea:Taipei}}->.searchArea;( way[“name”=”中山南路”](area.searchArea););out meta;>;out meta qt;

如果有不妥的話直接在下面指出具體changeset和對應錯誤比較好,希望不會封鎖我XD

Location: 黎明里, 中正區, 台北站前商圈, 臺北市, 臺灣
Posted by wielandb on 12 May 2022 in English (English). Last updated on 16 May 2022.

I did some statistical evaluation around StreetComplete, and in this post I describe what I evaluated and what the results are.

(This post is more or less the english text version of this YouTube video, which is in german. There is also a german version of this post here.)

First of all, how did I evaluate this data, or rather, where did I get all the info I’m talking about here? The basis was the StreetCompleteNumbers script that I wrote some time ago. It’s a Python script that can be used to find out the number of solved quests for a user. The script is also available on GitHub. One can use this script very easily:

from StreetCompleteNumbers import StreetCompleteNumbers

StreetCompleteNumbers("wielandb")

Then we just had to find out who are the users whose StreetComplete numbers we want to download. I tried to develop a method that makes as small a number of requests to the OpenStreetMap servers as possible. So simply downloading the entire changeset history for every user I come across should be avoided. I was using the daily replication diffs since October 2021 (so since half a year ago). I downloaded every diff file, and looked at every changeset that occurred in it. If a changeset contains the changeset tag StreetComplete:QuestType, I trigger a download and save of its numbers for that user. Also, the program remembers for which users it has already saved StreetComplete numbers, so that they are not downloaded twice for the same user.

So I ended up with StreetComplete numbers for 5284 users, which was my database. And so we came directly to the first limitation of this evaluation. Only users who solved at least one StreetComplete quest between October 2021 and March 2022 appear in this statistic.

Before we get to the statistics, it should be said that I do not want to name any users in this evaluation, so we will only see the countries of the top users. So, let’s get to the statistics now:

How many ★ do the top users have?

One statistic

How many users have disabled quests enabled?

To do this, I created a list myself of quests that were disabled by default and checked for each user in my database to see if they had at least one solution for at least one of those quests. The evaluation showed, one third of the users did not solve a single quest that was disabled by default. In theory, this doesn’t have to mean that these users haven’t activated any of these quests, but since many quests are deactivated because they are so spammy, I think we have a good estimate here.

How many quests were solved in total?

The data I have indicates that over 14 million quests have been solved using StreetComplete. (To be precise, there were 13,975,938 quests at the time of the survey, which is why the percentages in the table below are based on this figure).

How are the solved quests distributed among the colors?

In StreetComplete, each quest has a color that assigns it to a rough category. The categories are the following:

  • Blue represents footpaths and pedestrians.
  • Yellow represents streets and cars
  • Light gray (beige?) represents buildings
  • Dark grey represents man_made, so roughly “infrastructure”
  • Orange is for stores
  • Pink represents bicycles
  • Green is for public facilities like benches and trash cans
  • Brown represents nature

The colors as image

Here is the distribution as a graph:

The colors statistics

And here as a table:

Single Color Total Percent  
Light Brown 91112 13975938 0.65%
Gray 109326 13975938 0.78%
Orange 307434 13975938 2.20%
Green 391304 13975938 2.80%
Pink 585953 13975938 4.19%
Yellow 2963361 13975938 21.20%
Blue 4697256 13975938 33.61%
Light Gray 4830192 13975938 34.56%

Which quests are solved the most/least often?

Here is a graph showing the 3 most frequently solved quests, as well as the quests that have been solved under 100 times overall by all users:

A statistic

I think the quests with extremely few solutions can all be explained relatively easily:

  • “Is it possible to refuel at this gas station itself?” is not shown in Germany - which is very strongly represented in OSM and StreetComplete.
  • “Is there a summit book at this summit?” has probably not been answered so often because, on the one hand, there are not so many summits. For another, running through a city with StreetComplete is one thing, but climbing mountain peaks with StreetComplete is something else :D
  • The barrier-quests, air-conditioning-quest and physical-height-quest are all relatively new and probably therefore hardly answered yet. The air conditioning quest is disabled by default, and the physical height quest is in last place in my opinion, because you have to use the AR measurement tool for it, which not all phones have.

Here is another graph that shows some more quests with their respective percentages:

A statistic

And here is the whole list of quests in ascending order by the number of their solutions:

Quest-ID Number solved All solved quests Proportion of this quest in all solutions
AddMaxPhysicalHeight 19 13975938 0,0001%
AddAirConditioning 52 13975938 0,0004%
AddBarrierOnRoad 60 13975938 0,0004%
AddSummitRegister 65 13975938 0,0005%
AddBarrierOnPath 76 13975938 0,0005%
AddFuelSelfService 93 13975938 0,0007%
AddAcceptsCash 122 13975938 0,0009%
AddPoliceType 126 13975938 0,0009%
AddCyclewayWidth 149 13975938 0,0011%
AddTrafficCalmingType 214 13975938 0,0015%
AddWheelchairAccessToiletsPart 376 13975938 0,0027%
CheckOpeningHoursSigned 380 13975938 0,0027%
AddFerryAccessPedestrian 389 13975938 0,0028%
AddFerryAccessMotorVehicle 454 13975938 0,0032%
AddStileType 502 13975938 0,0036%
AddBarrierType 631 13975938 0,0045%
AddCameraType 717 13975938 0,0051%
AddBikeParkingFee 756 13975938 0,0054%
AddWheelchairAccessOutside 756 13975938 0,0054%
AddStreetParking 771 13975938 0,0055%
AddLevel 802 13975938 0,0057%
AddBikeParkingAccess 938 13975938 0,0067%
AddChargingStationOperator 992 13975938 0,0071%
AddReligionToPlaceOfWorship 1027 13975938 0,0073%
AddRoadWidth 1032 13975938 0,0074%
AddMotorcycleParkingCapacity 1060 13975938 0,0076%
AddIsBuildingUnderground 1102 13975938 0,0079%
AddSelfServiceLaundry 1169 13975938 0,0084%
AddClothingBinOperator 1313 13975938 0,0094%
AddBusStopRef 1335 13975938 0,0096%
SpecifyShopType 1354 13975938 0,0097%
AddIsDefibrillatorIndoor 1388 13975938 0,0099%
AddSuspectedOneway 1501 13975938 0,0107%
AddAtmOperator 1502 13975938 0,0107%
AddInternetAccess 1515 13975938 0,0108%
AddDrinkingWater 1673 13975938 0,0120%
AddChargingStationCapacity 1910 13975938 0,0137%
AddPostboxRef 1919 13975938 0,0137%
AddInformationToTourism 2113 13975938 0,0151%
AddPostboxRoyalCypher 2151 13975938 0,0154%
AddBabyChangingTable 2202 13975938 0,0158%
AddReligionToWaysideShrine 2240 13975938 0,0160%
AddOrchardProduce 2315 13975938 0,0166%
AddGeneralFee 2448 13975938 0,0175%
AddCarWashType 2455 13975938 0,0176%
AddToiletAvailability 2519 13975938 0,0180%
AddMotorcycleParkingCover 2638 13975938 0,0189%
AddBicycleBarrierType 2994 13975938 0,0214%
DetermineRecyclingGlass 3040 13975938 0,0218%
CheckShopType 3736 13975938 0,0267%
AddWheelchairAccessPublicTransport 3834 13975938 0,0274%
AddOneway 4034 13975938 0,0289%
AddHalal 4192 13975938 0,0300%
AddVegan 4536 13975938 0,0325%
AddKosher 5104 13975938 0,0365%
AddFireHydrantDiameter 5136 13975938 0,0367%
AddWheelchairAccessToilets 5293 13975938 0,0379%
AddSport 5531 13975938 0,0396%
AddBoardType 5706 13975938 0,0408%
AddPicnicTableCover 6012 13975938 0,0430%
AddBusStopName 6301 13975938 0,0451%
AddRecyclingType 7075 13975938 0,0506%
AddToiletsFee 7367 13975938 0,0527%
MarkCompletedBuildingConstruction 7492 13975938 0,0536%
AddFireHydrantPosition 9948 13975938 0,0712%
AddRecyclingContainerMaterials 11610 13975938 0,0831%
AddVegetarian 11861 13975938 0,0849%
AddFireHydrantType 11906 13975938 0,0852%
AddBridgeStructure 12060 13975938 0,0863%
AddCrossing 16934 13975938 0,1212%
AddPostboxCollectionTimes 17080 13975938 0,1222%
AddBollardType 18123 13975938 0,1297%
AddPitchLit 19606 13975938 0,1403%
AddRailwayCrossingBarrier 20071 13975938 0,1436%
AddBikeParkingType 20437 13975938 0,1462%
AddPitchSurface 22116 13975938 0,1582%
AddMaxWeight 22556 13975938 0,1614%
AddCyclewaySegregation 25751 13975938 0,1843%
AddBikeParkingCapacity 26817 13975938 0,1919%
AddProhibitedForPedestrians 27273 13975938 0,1951%
AddCyclewayPartSurface 28265 13975938 0,2022%
AddShoulder 28278 13975938 0,2023%
AddFootwayPartSurface 28794 13975938 0,2060%
AddBikeParkingCover 31671 13975938 0,2266%
AddPathSmoothness 33433 13975938 0,2392%
AddPlaygroundAccess 35503 13975938 0,2540%
MarkCompletedHighwayConstruction 40526 13975938 0,2900%
AddStepCount 41660 13975938 0,2981%
AddTracktype 41834 13975938 0,2993%
AddKerbHeight 42755 13975938 0,3059%
AddMaxHeight 43728 13975938 0,3129%
AddRoadSmoothness 44434 13975938 0,3179%
AddTactilePavingKerb 44713 13975938 0,3199%
AddPlaceName 46825 13975938 0,3350%
AddStepsIncline 49162 13975938 0,3518%
AddPowerPolesMaterial 62784 13975938 0,4492%
AddWheelchairAccessBusiness 63226 13975938 0,4524%
AddTrafficSignalsVibration 63457 13975938 0,4540%
AddTrafficSignalsSound 69883 13975938 0,5000%
AddBusStopLit 70486 13975938 0,5043%
AddHandrail 72727 13975938 0,5204%
AddTrafficSignalsButton 75446 13975938 0,5398%
AddStepsRamp 77822 13975938 0,5568%
AddBinStatusOnBusStop 82291 13975938 0,5888%
AddForestLeafType 88295 13975938 0,6318%
AddRoadName 93765 13975938 0,6709%
AddBenchStatusOnBusStop 94389 13975938 0,6754%
AddBenchBackrest 98525 13975938 0,7050%
AddParkingFee 100644 13975938 0,7201%
AddBusStopShelter 107404 13975938 0,7685%
AddParkingType 108408 13975938 0,7757%
AddTactilePavingBusStop 119748 13975938 0,8568%
CheckExistence 124524 13975938 0,8910%
AddParkingAccess 141111 13975938 1,0097%
AddCrossingType 145072 13975938 1,0380%
AddOpeningHours 160341 13975938 1,1473%
AddCrossingIsland 170003 13975938 1,2164%
AddMaxSpeed 190915 13975938 1,3660%
AddAddressStreet 268936 13975938 1,9243%
AddTactilePavingCrosswalk 283199 13975938 2,0263%
AddLanes 325145 13975938 2,3265%
AddSidewalk 427435 13975938 3,0584%
AddHousenumber 441068 13975938 3,1559%
AddCycleway 448175 13975938 3,2068%
AddRoofShape 850171 13975938 6,0831%
AddPathSurface 999441 13975938 7,1512%
AddBuildingLevels 1379383 13975938 9,8697%
AddWayLit 1541163 13975938 11,0273%
AddRoadSurface 1726590 13975938 12,3540%
AddBuildingType 1889532 13975938 13,5199%

What can we take away from these statistics?

We can see very well that StreetComplete is quite undiversified in terms of its use and its users. Few people are responsible for the majority of all solved quests. Mainly StreetComplete is used to add details to houses, streets and roads. This doesn’t seem too surprising, since a city consists mostly of houses, streets and roads. In this respect, it is not a big deal that a large part of the solved quests are also related to these object types. As for the users, it looks a little different: Of the 5000+ users I examined, 100 are responsible for 30% of all quests solved. And while in the video version of this post I conclude that this is an indication of the not-so-good-looking diversification in OpenStreetMap, I’ve since done some more thinking and come to a different conclusion. You have to count out the power users much more than aligning the other users with them. So the average user doesn’t do proportionally little, but the power users do proportionally a lot. Looking at it this way, StreetComplete has a good user base that contributes relatively evenly to OpenStreetMap.

Ich habe ein paar statistische Auswertungen rund um StreetComplete gemacht, und in diesem Post beschreibe ich was ich Ausgewertet habe und was die Ergebnisse sind.

(Dieser Post ist mehr oder weniger die Text-Version von diesem YouTube-Video.)

Zunächst einmal: Wie habe ich diese Daten ausgewertet, bzw. woher habe ich all die Infos, über die ich hier rede? Grundlage war das Skript StreetCompleteNumbers, dass ich vor einiger Zeit geschrieben habe. Es ist ein Python-Skript, mit dem man die Anzahl der gelösten Quests für einen Nutzer herausfinden kann. Das Skript gibt es auch auf GitHub. Dieses Skript kann man sehr einfach verwenden:

from StreetCompleteNumbers import StreetCompleteNumbers

StreetCompleteNumbers("wielandb")

Dann galt es nur noch herauszufinden, wer denn die Nutzer sind, deren StreetComplete-Zahlen wir herunterladen wollen. Dabei habe ich versucht eine Methode zu entwickeln, die eine möglichst kleine Anzahl an Anfragen an die OpenStreetMap-Server stellt. Also einfach für jeden Nutzer der mir unterkommt die gesamte Changeset-History runterladen sollte vermieden werden. Ich nutzte die täglichen replication-Diffs seit Oktober 2021 (also seit vor einem halben Jahr). Ich lud jede diff-Datei herunter, und sah mir jedes Changeset, dass in ihm vorkommt, an. Sollte ein Changeset den Changeset-Tag StreetComplete:QuestType enthalten, löse ich für diesen Nutzer ein herunterladen und abspeichern seiner Zahlen aus. Außerdem merkt sich das Programm, für welche Nutzer es schon StreetComplete-Zahlen abgespeichert hat, damit sie nicht zweimal für den selben Nutzer heruntergeladen werden.

Dadurch hatte ich am Ende die StreetComplete-Zahlen für 5284 Nutzer, was meine Datenbasis darstellte. Und so sind wir auch direkt bei der ersten Limitierung dieser Auswertung angelangt. In dieser Statistik tauchen nur Nutzer auf, die zwischen Oktober 2021 und März 2022 mindestens eine StreetComplete-Quest gelöst haben.

Bevor wir jetzt zu den Statistiken kommen, sei noch gesagt, dass ich in dieser Auswertung keine Nutzer beim Namen nennen möchte, weswegen wir gleich nur die Länder der Top-Nutzer sehen werden. So, kommen wir jetzt aber zu den Statistiken:

Wie viele ★ haben die Top-Nutzer?

Die unten stehende Statistik zeigt die Liste an Top-Nutzern in meinem Datensatz zusammen mit ihren Sternen und dem Land, aus dem sie kommen. Hier sei gesagt, dass ich das “Land aus dem sie kommen” “manuell” ermittelt habe. Also ich habe mir die OSM-Profile der betreffenden Nutzer angesehen und einfach nachgesehen wo ihre letzten Changesets so gemacht wurden. Es könnte also absolut sein, dass ich einfach einen ungünstigen Zeitpunkt erwischt habe und die betreffende Person einfach gerade woanders im Urlaub war.

Eine Statistik

Wie viele Nutzer haben deaktivierte Quests aktiviert?

Dafür habe ich selbst eine Liste mit den standardmäßig deaktivierten Quests erstellt und für jeden Nutzer in meiner Datenbasis überprüft, ob er für mindestens eine dieser Quests mindestens eine Lösung hat. Die Auswertung zeigte, ein Drittel der Nutzer hat nicht eine einzige standardmäßig deaktivierte Quest gelöst. Das muss in der Theorie nicht heißen, dass diese Nutzer keine dieser Quests aktiviert haben, aber da viele Quests deaktiviert sind, weil sie so spammy sind, haben wir hier denke ich eine gute Abschätzung.

Wie viele Quests wurden insgesamt gelöst?

Die Daten, die mir zur Verfügung stehen, weisen darauf hin, dass über 14 Millionen Quests mit StreetComplete gelöst wurden. (Genau gesagt waren es zum Zeitpunkt der Erhebung 13.975.938 Quests, weswegen die Prozentzahlen in der unteren Tabelle auch von diesem Wert ausgehen.)

Wie verteilen sich die gelösten Quests auf die Farben?

Bei StreetComplete hat jede Quest eine Farbe, die sie einer groben Kategorie zuordnet. Die Kategorien sind die Folgenden:

  • Blau steht für Gehwege und Fußgänger
  • Gelb steht für Straßen und Autos
  • Hellgrau (Beige?) steht für Gebäude
  • Dunkelgrau steht für man_made, also so ungefähr “Infrastruktur”
  • Orange steht für Geschäfte
  • Pink steht für Fahrräder
  • Grün steht für öffentliche Einrichtungen wie Bänke und Mülleimer
  • Braun steht für Natur

Die Farben als Bild

Hier ist die Verteilung als Grafik:

Die Farbenstatistik

Und hier als Tabelle:

Einzelne Farbe Gesamt Prozent  
Hellbraun 91112 13975938 0,65%
Grau 109326 13975938 0,78%
Orange 307434 13975938 2,20%
Grün 391304 13975938 2,80%
Pink 585953 13975938 4,19%
Gelb 2963361 13975938 21,20%
Blau 4697256 13975938 33,61%
Hellgrau 4830192 13975938 34,56%

Welche Quests werden am häufigsten/seltensten gelöst?

Hier ist eine Grafik, die die 3 am häufigsten gelösten Quests zeigt, sowie die Quests, die insgesamt von allen Nutzern unter 100 mal gelöst wurden:

Eine Statistik

Ich denke, die Quests mit den extrem wenigen Lösungen lassen sich alle relativ einfach erklären:

  • “Kann man an dieser Tankstelle selbst Tanken?” wird in Deutschland - was bei OSM und StreetComplete sehr stark vertreten ist - nicht angezeigt
  • “Gibt es an diesem Gipfel ein Gipfelbuch?” ist wahrscheinlich deswegen nicht so oft beantwortet worden, weil es zum einen nicht so viele Gipfel gibt. Zum anderen ist mit StreetComplete durch eine Stadt zu rennen das eine, aber mit StreetComplete auf Berggipfel zu klettern schon was anderes :D
  • Die Barrieren-Quests, Klimaanlagen-Quest und physische-Höhe-Quest sind alle relativ neu und wahrscheinlich deshalb noch kaum beantwortet. Bei der Klimaanlagen-Quest kommt hinzu, dass sie standardmäßig deaktiviert ist, und die physische-Höhe-Quest ist meiner Meinung nach auf dem letzten Platz, da man für sie das AR-Vermessungstool nutzen muss, was nicht alle Handys haben

Diese Grafik zeigt ein paar mehr der Quests:

Eine Statistik

Und hier ist die ganze Liste mit Quests aufsteigend nach der Anzahl ihrer Lösungen:

Quest-ID Anzahl gelöst Alle gelösten Quests Anteil dieser Quest an allen Lösungen
AddMaxPhysicalHeight 19 13975938 0,0001%
AddAirConditioning 52 13975938 0,0004%
AddBarrierOnRoad 60 13975938 0,0004%
AddSummitRegister 65 13975938 0,0005%
AddBarrierOnPath 76 13975938 0,0005%
AddFuelSelfService 93 13975938 0,0007%
AddAcceptsCash 122 13975938 0,0009%
AddPoliceType 126 13975938 0,0009%
AddCyclewayWidth 149 13975938 0,0011%
AddTrafficCalmingType 214 13975938 0,0015%
AddWheelchairAccessToiletsPart 376 13975938 0,0027%
CheckOpeningHoursSigned 380 13975938 0,0027%
AddFerryAccessPedestrian 389 13975938 0,0028%
AddFerryAccessMotorVehicle 454 13975938 0,0032%
AddStileType 502 13975938 0,0036%
AddBarrierType 631 13975938 0,0045%
AddCameraType 717 13975938 0,0051%
AddBikeParkingFee 756 13975938 0,0054%
AddWheelchairAccessOutside 756 13975938 0,0054%
AddStreetParking 771 13975938 0,0055%
AddLevel 802 13975938 0,0057%
AddBikeParkingAccess 938 13975938 0,0067%
AddChargingStationOperator 992 13975938 0,0071%
AddReligionToPlaceOfWorship 1027 13975938 0,0073%
AddRoadWidth 1032 13975938 0,0074%
AddMotorcycleParkingCapacity 1060 13975938 0,0076%
AddIsBuildingUnderground 1102 13975938 0,0079%
AddSelfServiceLaundry 1169 13975938 0,0084%
AddClothingBinOperator 1313 13975938 0,0094%
AddBusStopRef 1335 13975938 0,0096%
SpecifyShopType 1354 13975938 0,0097%
AddIsDefibrillatorIndoor 1388 13975938 0,0099%
AddSuspectedOneway 1501 13975938 0,0107%
AddAtmOperator 1502 13975938 0,0107%
AddInternetAccess 1515 13975938 0,0108%
AddDrinkingWater 1673 13975938 0,0120%
AddChargingStationCapacity 1910 13975938 0,0137%
AddPostboxRef 1919 13975938 0,0137%
AddInformationToTourism 2113 13975938 0,0151%
AddPostboxRoyalCypher 2151 13975938 0,0154%
AddBabyChangingTable 2202 13975938 0,0158%
AddReligionToWaysideShrine 2240 13975938 0,0160%
AddOrchardProduce 2315 13975938 0,0166%
AddGeneralFee 2448 13975938 0,0175%
AddCarWashType 2455 13975938 0,0176%
AddToiletAvailability 2519 13975938 0,0180%
AddMotorcycleParkingCover 2638 13975938 0,0189%
AddBicycleBarrierType 2994 13975938 0,0214%
DetermineRecyclingGlass 3040 13975938 0,0218%
CheckShopType 3736 13975938 0,0267%
AddWheelchairAccessPublicTransport 3834 13975938 0,0274%
AddOneway 4034 13975938 0,0289%
AddHalal 4192 13975938 0,0300%
AddVegan 4536 13975938 0,0325%
AddKosher 5104 13975938 0,0365%
AddFireHydrantDiameter 5136 13975938 0,0367%
AddWheelchairAccessToilets 5293 13975938 0,0379%
AddSport 5531 13975938 0,0396%
AddBoardType 5706 13975938 0,0408%
AddPicnicTableCover 6012 13975938 0,0430%
AddBusStopName 6301 13975938 0,0451%
AddRecyclingType 7075 13975938 0,0506%
AddToiletsFee 7367 13975938 0,0527%
MarkCompletedBuildingConstruction 7492 13975938 0,0536%
AddFireHydrantPosition 9948 13975938 0,0712%
AddRecyclingContainerMaterials 11610 13975938 0,0831%
AddVegetarian 11861 13975938 0,0849%
AddFireHydrantType 11906 13975938 0,0852%
AddBridgeStructure 12060 13975938 0,0863%
AddCrossing 16934 13975938 0,1212%
AddPostboxCollectionTimes 17080 13975938 0,1222%
AddBollardType 18123 13975938 0,1297%
AddPitchLit 19606 13975938 0,1403%
AddRailwayCrossingBarrier 20071 13975938 0,1436%
AddBikeParkingType 20437 13975938 0,1462%
AddPitchSurface 22116 13975938 0,1582%
AddMaxWeight 22556 13975938 0,1614%
AddCyclewaySegregation 25751 13975938 0,1843%
AddBikeParkingCapacity 26817 13975938 0,1919%
AddProhibitedForPedestrians 27273 13975938 0,1951%
AddCyclewayPartSurface 28265 13975938 0,2022%
AddShoulder 28278 13975938 0,2023%
AddFootwayPartSurface 28794 13975938 0,2060%
AddBikeParkingCover 31671 13975938 0,2266%
AddPathSmoothness 33433 13975938 0,2392%
AddPlaygroundAccess 35503 13975938 0,2540%
MarkCompletedHighwayConstruction 40526 13975938 0,2900%
AddStepCount 41660 13975938 0,2981%
AddTracktype 41834 13975938 0,2993%
AddKerbHeight 42755 13975938 0,3059%
AddMaxHeight 43728 13975938 0,3129%
AddRoadSmoothness 44434 13975938 0,3179%
AddTactilePavingKerb 44713 13975938 0,3199%
AddPlaceName 46825 13975938 0,3350%
AddStepsIncline 49162 13975938 0,3518%
AddPowerPolesMaterial 62784 13975938 0,4492%
AddWheelchairAccessBusiness 63226 13975938 0,4524%
AddTrafficSignalsVibration 63457 13975938 0,4540%
AddTrafficSignalsSound 69883 13975938 0,5000%
AddBusStopLit 70486 13975938 0,5043%
AddHandrail 72727 13975938 0,5204%
AddTrafficSignalsButton 75446 13975938 0,5398%
AddStepsRamp 77822 13975938 0,5568%
AddBinStatusOnBusStop 82291 13975938 0,5888%
AddForestLeafType 88295 13975938 0,6318%
AddRoadName 93765 13975938 0,6709%
AddBenchStatusOnBusStop 94389 13975938 0,6754%
AddBenchBackrest 98525 13975938 0,7050%
AddParkingFee 100644 13975938 0,7201%
AddBusStopShelter 107404 13975938 0,7685%
AddParkingType 108408 13975938 0,7757%
AddTactilePavingBusStop 119748 13975938 0,8568%
CheckExistence 124524 13975938 0,8910%
AddParkingAccess 141111 13975938 1,0097%
AddCrossingType 145072 13975938 1,0380%
AddOpeningHours 160341 13975938 1,1473%
AddCrossingIsland 170003 13975938 1,2164%
AddMaxSpeed 190915 13975938 1,3660%
AddAddressStreet 268936 13975938 1,9243%
AddTactilePavingCrosswalk 283199 13975938 2,0263%
AddLanes 325145 13975938 2,3265%
AddSidewalk 427435 13975938 3,0584%
AddHousenumber 441068 13975938 3,1559%
AddCycleway 448175 13975938 3,2068%
AddRoofShape 850171 13975938 6,0831%
AddPathSurface 999441 13975938 7,1512%
AddBuildingLevels 1379383 13975938 9,8697%
AddWayLit 1541163 13975938 11,0273%
AddRoadSurface 1726590 13975938 12,3540%
AddBuildingType 1889532 13975938 13,5199%

Was können wir aus dieser Statistik mitnehmen?

Wir sehen sehr gut, dass StreetComplete von seinem Nutzen und von seinen Nutzern her ziemich undiversifiziert ist. Wenige Leute sind für den Großteil aller gelösten Quests verantwortlich. Hauptsächlich wird StreetComplete genutzt, um Details zu Häusern, Straßen und Wegen hinzuzufügen. Das scheint aber nicht sonderlich verwunderlich, da eine Stadt nunmal zum großteil aus Häusern, Straßen und Wegen besteht. In dieser Hinsicht ist es also nicht schlimm, dass auch ein Großteil der gelösten Quests auf diese Objekttypen entfällt. Was die Nutzer angeht, sieht es etwas anders aus: Von den über 5000 Nutzern die ich untersuchte sind 100 für 30% aller geösten Quests verantwortlich. Und während ich in der Videoversion dieses Posts zu dem Schluss komme, dass das ein Hinweis auf die nicht so gut aussehende diversifizierung in OpenStreetMap ist, habe ich seit dem noch etwas nachgedacht und komme zu einem anderen Ergebnis. Man muss die Power-User viel mehr rausrechnen, als die anderen Nutzer an ihnen auszurichten. Also der Durchschnittsnutzer macht nicht verhältnismäßig wenig, sondern die Power-User machen verhältnismäßig viel. Betrachtet man es so hat StreetComplete eine gute Nutzerbasis, die relativ gleichmäßig zu OpenStreetMap beiträgt.

Just a question, when searching for any substation. As an example, here is Pembroke Substation:

https://www.openstreetmap.org/relation/13110367

However searching using the words “Pembroke Substation” returns significantly wrong results ie: in Bristol, Dublin, and even Florida!

The Name field is spelled correctly as “Pembroke Substation”, copy/pasting these exact words from the Name field into the search bar still can’t find it.

I have only been researching substations in South Wales so far, and they all have had good accurate naming, and are wither a Way if a single entity, or a Relation if more than one Way is used.

Is there a setting somewhere to enable this search? Maybe someone could drop me a message.

Many thanks, Scott

Annadruman Ring Fort, Castleblayney, Monaghan, Rep of Ireland

Location: Broomfield, Carrickmacross-Castleblaney Municipal District, County Monaghan, Ireland