Giter Club home page Giter Club logo

streetcomplete's Introduction

StreetComplete

StreetComplete is an easy to use editor of OpenStreetMap data available for Android. It can be used without any OpenStreetMap-specific knowledge. It asks simple questions, with answers directly used to edit and improve OpenStreetMap data. The app is aimed at users who do not know anything about OSM tagging schemes but still want to contribute to OpenStreetMap.

StreetComplete automatically looks for nearby places where a survey is needed and shows them as quest markers on its map. Each of these quests can then be solved on site by answering a simple question. For example, tapping on a marker may show the question "What is the name of this road?", with a text field to answer it. More examples are shown in the screenshots below.

The user's answer is automatically processed and uploaded directly into the OSM database. Edits are done in meaningful changesets using the user's OSM account. Since the app is meant to be used on a survey, it can be used offline and is economic with data usage.

To make the app easy to use, quests are limited to those answerable by asking simple questions.

Screenshots

Download

Get it on Google PlayGet it on F-DroidDownload APK from GitHub

Quests

There are quite a few different quest types now and more will be added over time. You can see a community-managed list of all quests in the OSM wiki.

FAQ

You can find a list of frequently asked questions in the wiki.

Contributing

This is an active open-source project, so you can get involved in it easily! You can do so without any programming or OpenStreetMap knowledge! Just choose a task that you like.

Here are a few things you can do:

Also, if you like StreetComplete, spread the word! ❤️

License

This software is released under the terms of the GNU General Public License.

Sponsors


NGI Zero Discovery is a grant program organized by the NLnet foundation which sponsored the development on this app in three individual grants:
Grants given to Mateusz Konieczny in 2019 and 2021 enabled him to work on StreetComplete for about one year in total. Furthermore, yet another grant from 2021 enabled Tobias Zwick to work on the app for about 4-5 months!


The German Federal Ministry of Education and Research sponsored Tobias Zwick to work on this project (grant code 01IS20S35) within the frame of round 8 of the Prototype Fund for about six months in 2020/2021.


Many people are currently supporting this app through GitHub sponsors, Liberapay and Patreon. If you like the app, you can join them ☺️ to support the continued support and maintenance of the app.


JawgMaps is a provider of online custom maps, geocoding and routing based on OpenStreetMap data. They are providing their vector map tiles service to StreetComplete for free, i.e. the background map displayed in the app.


The OpenStreetMap foundation was funding the development of doing map maintenance with StreetComplete (~ 3 weeks) in their first round of the microgrant program in 2020.

streetcomplete's People

Contributors

adrianclay avatar arrival-spring avatar binnette avatar dbdean avatar eginhard avatar ent8r avatar errolpais avatar floedelmann avatar goldbattle avatar helium314 avatar holgerjeromin avatar isira-seneviratne avatar kmpoppe avatar matkoniecz avatar mcliquid avatar mnalis avatar naposm avatar neonowy avatar panieravide avatar peternewman avatar qugebert avatar riqq avatar rugk avatar smichel17 avatar sumanabhi avatar tapetis avatar teester avatar thefeiter avatar turnrdev avatar westnordost avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

streetcomplete's Issues

app "has stopped" when moved to background

Reproduce:

  1. Open quest to enter opening hours.
  2. Add a weekday. Confirm weekday selection.
  3. Move app to background. (E.g. switch to home screen.)
  4. Receive "has stopped" notification.

Version affected: 0.4 (f-droid.org)

Add dynamic min zoom level

In dense areas, the current zoom settings seem sensible. But in less populated areas, you can have a view with only 1 quest but it doesn't show until you zoom in. So as long as the view would not be cluttered, they should show. Perhaps also some indication of how many (enabled) quests are in the current view.

Road names

Consider only to ask for names of highway=residential.
On other streets like highway=unclassified this could lead to bad inputs from unqualified users. "Has no name" may be too often the best answer in this cases.

app asks for permission to upload GPS traces

After completing a quest, I tried to upload it. It sent me to osm OAuth which is fine, but it asked for not only permission to read profile, upload changesets, and change notes, but also to upload traces. StreetComplete's documentation does not talk about recording GPS traces, and certainly it does not talk about uploading them. Permissions should only be requested for things that are reasonably connected with the described functionality.

In addition, if one unchecks "upload GPS traces", the authorization is considered to fail, because not all requested permission were granted. This is really a separate bug - even if there were a documented trace/upload function, it should be possible to do quests without authorizing upload. I am happy to open a separate issue for that, but for now it doesn't seem useful.

Change language in Settings

May I suggest that language may be changed in settings? In my experience, it is best to have this option activated by users and accessible somewhere.

Changing from Map View to Settings and back resets Map View

Clicking Settings and going back to the map view resets the map view to the current location. Would be great to keep the map view pinned while quickly editing settings. Maybe happens with other views, too.

Solid app, keep up the good work 👍

Support alternative map renderers

I can see all kinds of rendering artefacts with connected ways, which are probably due to issues in the upstream Tangram render. Do you plan on supporting alternative renderers?

Specifically I would love if you could support Mapbox GL as a native renderer (disclaimer: I work for Mapbox but not on the renderer and my involvement with your app is purely private).

https://www.mapbox.com/android-sdk/

What's your take on this?

If this is out of scope feel free to close this issue - no hard feelings ;)


Here are some issues I found after a couple minutes of playing around with the map view

sc-2
sc-1
sc-0

zoom-buttons for one-hand use

I played around with the beta a little bit and had problems using the app one-handed because zooming seems only be possible using pinch-to-zoom.

Would it be possible to add zoom control buttons (+/-)? Maybe this could be made optional via the settings menu.

Request: iOS Version

The app looks promising and it would be great to have it on iOS too.
May not today or in the next months but you could leave the issue open and see how other use responds to it.

clear privacy description needed

I am pretty sure what the app does is ok, but there should be a clear statement of what it does with location data in terms of fetching and uploading data. Presumably other than some kind of data download in the region around the current location and uploading of commits of answered questions, no information would be sent anywhere else. But it would be good to make that claim, if true.

Clarify Phrasing for Building Levels Quest

For the 'how many levels does this building have' quest, perhaps the prompts could be changed to:

Total levels (inclusive roof) => Total levels (including the roof)

Of these, levels in the roof* => Of these, how many levels are the roof?

* I am not completely sure what is being asked in the second prompt.

StreetComplete no longer builds from source due to missing/required keystore.propertires

In 9239f1d, a reference to keystore.properties was added, but of course not the file. I get an error building (up-to-date Android Studio). I'm sure I could work around this, but it seems like the sources in github should by default allow building/installing unsigned apks for people to test/debug. If it's easy to make a signed release if keystore.properties is present and just build if not, that would be great.

Missing error panel after selecting a map pin

Sorry for typos and brievety:

On moto g with Android 5: after clicking on an error map pin only the red circle is displayed around position ... But no error description.

But when turning device from portrait mode to landscape mode, error description is then shown!

Anyone can reproduce?

Feature Request: Filter quests

It has been requested by several people to have the option to filter (out) certain quest types.

I would supply this as an option in the settings, listing all quests with a checkmark in front, whether to download and show them or not.

Add Type of Ferry quest

The app should probably filter the number of markers it shows in the map view and prioritize quests for which the added value is high or the frequency in osm is low. Conceptually similar to tf-idf.


To be more specific here: consider the case of ferries. Ferries are tagged route=ferry and a duration tag describes how long the route takes. Without a duration tag you can only guess the duration.

The ferry tag is rare and the duration tags adds high value - a marker for a missing ferry duration tag should probably be prioritized among many opening hour, building level and roof shape markers.

http://wiki.openstreetmap.org/wiki/Tag:route%3Dferry

v0.4 carries wrong version info

Just a note: v0.4 and v0.3 have the same versionCode, which causes some trouble on updates:

package: name='de.westnordost.streetcomplete' versionCode='1' versionName='0.3' platformBuildVersionName=''
package: name='de.westnordost.streetcomplete' versionCode='1' versionName='0.4' platformBuildVersionName=''

Could you please check to increase versionCode with each new release? 😺 Thanks!

Working off line user unfriendly message

I have a couple of smartphones that I only use with WiFi. I opened up streetcomplete with WiFi on downloaded the map and quests. I think I closed streetcomplete turned WiFi off then opened up Streetcomplete again. I could see and complete the quests but since it had WiFi off it couldn't update the OSM database directly.

It gave an error message saying see log.

The edits were held correctly and when WiFi mas enabled a batch was sent up correctly and entered OSM correctly. So it all functioned as it should except the error message when it couldn't send the edits because it was off line.

For a new user this can be confusing.

Have fun John

Add setting for disabling some kinds of quests

I see a vast number of opening hours quests. That's fine for many, I suspect, but I'm not that interested in opening hours, and often it's awkward. So I'd like to be able to download and see other types. I suggest a setting with checkboxes for the various kinds of quests.

Add interface to maproulette

It would be interesting to be able to point StreetComplete at a maproulette challenge, and have that become a quest. That's probably too hard, but even if there needed to be per-challenge code, being able to hook into the query would be interesting.

Quests not always shown in different zoomlevels

For example there is one area where I see no quests at all when zoomed out. But I see quests few streets a little furhter on.
When I zoom in a bit one of the quests appears. Zooming in a bit more and the quest disappears. Zooming in a bit more the previous quest appears again and also a second one.

From my understanding I should see both always in every zoom level.

With this it is very hard to do all the quests in an area because you always miss some of them.

new quests are not shown until the map moves

I panned/zoomed to someplace of interest for offline use, and did a manual download. The progress bar finished, but no quests appeared. Panning just the slightest bit made them show up. So there is perhaps a missing call to redraw them after download is complete.

Quests for Routing

I work on the Open Source Routing Machine and wanted to ask if it's possible to add a quest for routing related tags. We support a variety of tags (see taginfo.json) so I'd like to discuss with you if we could add a routing task and further more which tags make sense to prioritize.

It makes sense to start with high-value tags many routing engines support (for example maxspeed tags) and incrementally add quests for other routing related tags (such as surface, track type and lane tags - and others, see taginfo).

What's your take on this? How can I help?

option to disable auto-download

I'd like the default behavior to be that quests are downloaded only when asked for. I realize others want different behavior, so perhaps on first launch there can be a "Download quests from current location automatically (manual download can always be requested)? Yes/No" to set the preference.

This first screen could also ask the user to authorize OSM. That is often more convenient when installing an app than when trying to use it in the field (not intrinsically, but I often install and try new things in situations where finding my OSM password and typing is easier).

Quest for type of building

I am very impressed with this app. I have a couple of questions for you.

Is it possible to have a quest for the type of buildings? This is one of the most missing information about buildings. Could a quest be added for mobility access too?

close dialog

Please add a close dialog if the app is closed.
Otherwise hitting the return button too often closes the app undesired.
Also if there are contributions left they should be commited.

If the app is only put into the background the dialog shouldn't appear.

opening hours: add answer that the place does not really have opening hours

There are some places that are basically not open, or open by appointment, or 3 times a year they announce they will be open. I don't even know how to represent this in OSM, but it would be good to resolve them by tagging "no regular open hours; usually closed" or something. I suppose this needs a whole new tagging scheme for erratic-almost-never erratic-1h-per-week erratic-frequent. Right now the best I can do is say don't know and hide.

easier opening hours with half hours

setting an opening hour like 7:30 - 12:30 is tedious because you have to scroll through each of the 30 minutes. Because most of the times should be either *:00 oder *:30 they should be easier to choose. Or is that a operating system component? Because there is a lot of free space on the time choosing page there might be even other possibilities to choose the hours and minutes than the scrolling menu.

uploading to / downloading from a POSM server?

In some parts of the world the internet doesn't exist. The American red cross have come up with a remote OSM server but it would need the ability to change the pointer in the software to a different server.

This is slow time but I suspect it will be of great interest to the HOT NGOs.

John

explain objects with no name

sometimes there are objects without a name, like this one:

https://www.openstreetmap.org/node/573381069

Then the app does just ask "What are the opening hours of this object" and you might not know exactly what object is meant (I only guessed it). For this situations it would be better to see something like "what are the opening hours of this object (shop=funeral_directors)"

Quest for house number

A quest for house numbers is much more important from my point of view than the shape of the roof.
In the feature graphic it is already iconed, is there a reason why it is not implemented yet?

offline mode

I would like to download areas and then use the map offline

Unable to reach the authorization server

I just installed StreetComplete through F-Droid and I answered a couple of questions in my area, but I am unable to upload them as when I try to authorize my account I consistently get, "Unable to reach the authorization server" after a timeout of some sort. Searching did not reveal any additional information about this kind of error yet.

I am running Android 7 on an HTC 10 for what it's worth. Not sure what other information might be useful.

Show un-searched area with some kind of shading

In JOSM, areas without data are crosshatched. Some visual clue that quests haven't been downloaded within the cache period would be really nice.

PS: the fact that I'm making issues like this is a clue that I have not found anything seriously wrong!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.