From OpenStreetMap Wiki
Jump to navigation Jump to search

User related

Do I need to be an OpenStreetMap expert to use it?

Absolutely no, the app is designed to be usable by anyone, this includes people who have never heard about OpenStreetMap. It, however, also eases editing for OSM experts.

So spread the word! Anyone can use the app.

How can I hide a type of quest?

In the settings there is an option called "Quest selection". It will take you to a list of all quests ordered by the priority they appear on the map. There, you can also disable or enable quest to hide, respectively show, them on the map.

I made a mistake. What to do?

Normal quest answers are undoable, even if the app already uploaded them. The button on the lower left corner lets you undo your last answer. If you already solved other quests in the meantime, this may however be inconvenient. In such a case, you could use another editor (for example the one on, login and revert your change there.

Why can't I disable/change the order of the notes quest (a black question mark inside a white speech bubble on a red background)?

A note is there to indicate a problem with the data there, so it indicates that "something is wrong with this element", so no quests for this should be created. For example, if someone answered "This shop does not exist anymore", then, of course, the app cannot use the current data as it is in the OSM database as a base for creating a quest, because one thing or another might be incorrect now.

Especially notes that have been created with StreetComplete (via the "Other answers…" menu) thus "block" other quests from showing up. This makes sure that once a StreetComplete user cannot answer a quest, the quest is not shown again to other users.

Why does the star counter not match the whole count of previous stars and upload counter?

Especially when you have auto-upload disabled, you may notice that the upload counter may display a higher number than what is actually added to the star count, after uploading. The reason for this is, that StreetComplete automatically resolves conflicts and may thus drop some of your changes, e.g. if the quest has already been answered by someone else. See the details about how StreetComplete handles conflicts, below.

Why doesn't the quest show up again, when I undo it?

When you undo solving a quest, it may sometimes happen that it does not show up again, but stays hidden. The reason for this is a technical limitation of some quests, e.g. the cycleway or housenumber quest, because these are filtered with some pre-processing on the device. See this issue for details.

Why was quest shown and then disappeared?

There are multiple reasons how it may happen

  • You solved the quest
  • StreetComplete refreshed quest data and discovered that:
    • someone else solved this quest
    • someone made another OpenStreetMap edit causing it to no longer apply
  • Zooming out resulted in the quest icon not being shown, as it was blocked by a more important quest (you can change quest priorities in settings)
  • Moving the map caused a more important quest to appear and block this one
  • Changing quest priority in settings caused this quest to disappear
  • Enabling showing of more notes resulted in more notes being shown and blocking this quest from display
  • Old quests are deleted, to reduce risk of editing/creating notes based on outdated data and to reduce risk of uncontrolled data usage[1]

Why does the housenumber quest not appear?

The house number quest is asked for buildings likely to have house numbers - for example building=house. It is not asked for building=garage or building=yes.

It means that if buildings are tagged as building=yes it is necessary to add the type of building first.

Fortunately there is quest for that in StreetComplete. Sadly, the house number question does not appear immediately after solving the building type quest. It will appear as StreetComplete will update quests on its own after some time (typically measured in days).

After solving some building type quests you can use "invalidate cache" option in the settings to trigger redownloading address quests.

Why doesn't the housenumber quest appear immediately?

Short answer is "technical reasons".

Longer is that it is caused by complexity of the quest. Some quests are based just on tags of object, for example after answering what is the name of restaurant questions about opening hours and so on are automatically generated.

But for address quest checking value of building tags (is it =detached or =apartment or ...) is only one of checks.

Other check include for example "not inside area that has address" (to handle cases where for example hospital buildings have no addresses, there is one address assigned to the entire hospital).

There are also other solutions but also extremely complex, see for example best currently known idea for implementing it. If someone has a simple solution - pull requests are welcomed![2][3]

Why does the street name quest not appear?

A typical address requires both a house number and a street name. StreetComplete will ask also for street name. Sadly, for technical reasons, the street name question does not appear immediately. After solving housenumbers quest it is necessary to wait for uploading answers and new download of street name quests. You can use "invalidate cache" option in settings to trigger redownloading address quests.


How does the app handle uploads?

By default, the app uploads each answer the user gives immediately. If there is no connection, it stores the change on the phone and tries again later.

For each different type of quest, it creates an own changeset. This changeset will have a short message what it is about, i.e. "Add street surfaces", and set the tags for created_by and source. Example.

The changeset is kept open while the user subsequently adds information on his survey. If the user erred and undoes already uploaded changes, the reverts (and the subsequent corrections) are also added to the same changeset. After the user did not add anything to the changeset for more than 20 minutes, the app closes it. If there is no connection then or the phone is off, the changeset will latest be closed after one hour (because that is the timeout of the API).

If during upload of the changes, it turns out that the changeset has been closed already, the app will simply create a new changeset and add the changes there.

How does the app handle conflicts?

In a nutshell, the app tries to solve conflicts automatically, and if one is not solvable, drops the conflicting change made by the user silently and subsequently refreshes the data for the user in the vicinity of where the conflict happened.

In detail:

Each answer to a quest only modifies exactly one element and each of these answers are uploaded separately. So, when conflicts arise, they arise for single elements separately. This makes it simple to solve them automatically. Divide and conquer.

First, the app downloads the newest version of the element for which the conflict occurred. Then, it checks whether the quest type for which the answer was given still applies to the new version of the element. I.e. if a previously unnamed street now has a name, the AddRoadName quest does not apply anymore to that element.

If that check succeeded, the change is again applied to the element (like a diff/patch). If applying the change went without conflict, the modified element is then uploaded.

Thus, a conflict is considered as not automatically solvable, if any tag that the app meant to add/change/delete on the element in question has been added/changed/deleted in the meantime. Other parallel changes on the same element are handles with no problem.

How does StreetComplete select the to be modified data and what exactly does it tag?

There is an extensive list in the wiki with all that information. See StreetComplete/Quests.

You can also see source code at (yes, "source code" may be a complete blocker for some, but it is quite understandable).

Why does StreetComplete often tag the absence of features?

You probably heard that if a feature is not tagged, the assumption is of course, that it is not there. I.e. if it is not tagged whether a street is lit, it means that it is not. However, this is an assumption the data consumer has to make when it is dealing with incomplete data. The absence of a tag is in no way equivalent to any value - it is what it is - unspecified.

So the reason why StreetComplete tags also the absence of features is to indicate that a user surveyed the place and determined that the feature is indeed absent, i.e. a street is not lit. The distinction of whether a feature has been surveyed or whether it is simply unspecified is an important information for other surveyors and thus for the maintainability of the map.

That being said, the app takes great care to limit the amount of quests where the answer can be assumed to always be the same (i.e. “no”) with a relative certainty.

As an example, the cycleway quest is only shown for a certain subset of roads which additionally do not have any cycleway tagging in any form (including separately mapped cycleways), which don't have a speed limit set to 30 km/h and below and are not unpaved. Additionally, the quest is only shown in certain countries, where it can be assumed that (sometimes) dedicated bicycle infrastructure is present in the first place.

How can I support the project?

You can help by supporting the development in various ways. Either add your own quests, make other code changes or just translate the app. For more details see the section Contributing on GitHub.