Convert Figma logo to code with AI

streetcomplete logoStreetComplete

Easy to use OpenStreetMap editor for Android

3,819
348
3,819
108

Top Related Projects

4,641

OsmAnd

3,357

🆔 The easy-to-use OpenStreetMap editor in JavaScript.

Quick Overview

StreetComplete is an Android app for OpenStreetMap contributors. It simplifies the process of adding and improving map data by presenting users with simple quests based on their location, allowing them to contribute to OpenStreetMap without needing to understand the complexities of map editing.

Pros

  • User-friendly interface, making it easy for newcomers to contribute to OpenStreetMap
  • Gamification elements encourage regular contributions and engagement
  • Offline functionality allows for data collection in areas with poor internet connectivity
  • Supports multiple languages, making it accessible to a global user base

Cons

  • Limited to Android devices, excluding iOS and web users
  • Some advanced OpenStreetMap contributors may find the simplified quests too basic
  • Requires GPS and location services, which can drain battery life
  • May not cover all types of map data that more experienced contributors might want to add

Getting Started

To get started with StreetComplete:

  1. Download the app from the Google Play Store or F-Droid
  2. Open the app and grant necessary permissions (location, storage)
  3. Log in with your OpenStreetMap account or create a new one
  4. Start exploring your area and completing quests
  5. Submit your changes to contribute to OpenStreetMap

For developers interested in contributing to the project:

  1. Fork the repository on GitHub
  2. Clone your fork: git clone https://github.com/your-username/StreetComplete.git
  3. Set up the development environment following the instructions in the project's README
  4. Make your changes and submit a pull request

Note: As StreetComplete is an Android app and not a code library, code examples are not applicable in this context.

Competitor Comparisons

4,641

OsmAnd

Pros of OsmAnd

  • More comprehensive navigation and mapping features
  • Offline functionality for maps and routing
  • Extensive customization options for map display and data sources

Cons of OsmAnd

  • Steeper learning curve due to complex interface
  • Larger app size and resource consumption
  • Less focused on contributing to OpenStreetMap data

Code Comparison

StreetComplete (Kotlin):

override fun onClickOk() {
    val radioGroup = radioButtonGroup as RadioGroup
    val selectedId = radioGroup.checkedRadioButtonId
    if (selectedId == -1) {
        return
    }
    applyAnswer(selectedId)
}

OsmAnd (Java):

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.map_button:
            app.getSettings().MAP_INFO_CONTROLS.set(isChecked());
            break;
        // ... more cases
    }
    updateAllSettings();
}

Both projects use Android-specific UI handling, but StreetComplete's Kotlin code is more concise. OsmAnd's Java code shows a more traditional approach with switch statements for handling multiple UI elements.

3,357

🆔 The easy-to-use OpenStreetMap editor in JavaScript.

Pros of iD

  • More comprehensive editing capabilities for OpenStreetMap data
  • Web-based interface accessible from any device with a browser
  • Extensive documentation and user guides available

Cons of iD

  • Steeper learning curve for new users
  • Requires more manual input and knowledge of OSM tagging schemes
  • Less focused on mobile/on-the-go contributions

Code Comparison

StreetComplete (Kotlin):

override fun onClickOk() {
    applyAnswer(Answer.Yes)
}

iD (JavaScript):

function click() {
    context.enter(modeSelect(context, []).newFeature(true));
}

Both projects use different programming languages due to their target platforms. StreetComplete, being an Android app, uses Kotlin, while iD, a web-based editor, uses JavaScript. The code snippets show basic interaction handling, with StreetComplete focusing on simple yes/no answers and iD dealing with more complex selection modes.

StreetComplete is designed for mobile use, emphasizing ease of contribution through guided questions. iD offers a more comprehensive editing experience but requires more user knowledge and input. Both projects contribute significantly to OpenStreetMap data collection and editing, catering to different user needs and preferences.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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

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

German Federal Ministry of Education and ResearchPrototype Fund
Within the frame of Prototype Fund round 15 (March 2024 to August 2024), the German Federal Ministry of Education and Research currently sponsors Tobias Zwick to work on StreetComplete for iOS.
Development on this app was also sponsored in round 8 (September 2020 to February 2021) of the Prototype fund, with focus on collecting more data points and on general improvements of this app.

JawgMaps
Since mid 2020, JawgMaps provides their vector map tiles service to StreetComplete for free, i.e. the background map displayed in the app.

Past Sponsors

nlnet
The NLnet foundation sponsored development on this app in three individual grants with funds from the European Commission:
Two grants given to Mateusz Konieczny in 2019 and 2021 enabled him to work on StreetComplete for about one year in total, with a focus on clearer UI and improvements on data collection. Furthermore, yet another grant enabled Tobias Zwick to work about five months in 2021/2022 on - most notably - the overlays functionality and measuring with AR.

OpenStreetMap foundation
In August 2020, the OpenStreetMap foundation funded the development of Map Maintenance with StreetComplete within the frame of the microgrants program.