- TypeScript 57.5%
- Svelte 38.8%
- CSS 3.1%
- HTML 0.4%
- Shell 0.2%
| .forgejo | ||
| .reuse | ||
| .vscode | ||
| android@b187154dd0 | ||
| app | ||
| assets | ||
| Docs | ||
| langs | ||
| LICENSES | ||
| public | ||
| scripts | ||
| src | ||
| test | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc.cjs | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .gitmodules | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .tool-versions | ||
| .versionrc.json | ||
| 404.html | ||
| ARCHITECTURE.md | ||
| capacitor.config.ts | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| config.json | ||
| CONTRIBUTING.md | ||
| index.html | ||
| inspector.html | ||
| issues.html | ||
| land.html | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.cjs | ||
| privacy.html | ||
| README.md | ||
| SECURITY.md | ||
| statistics.html | ||
| status.html | ||
| studio.html | ||
| style_test.html | ||
| svelte.config.js | ||
| tailwind.config.cjs | ||
| test.html | ||
| theme.html | ||
| tsconfig.json | ||
| tslint.json | ||
| vite.config.js | ||
| vitest.config.ts | ||
MapComplete
Let a thousand flowers bloom
MapComplete is an OpenStreetMap viewer and editor. The main goal is to make it trivial to see and update information on OpenStreetMap, also for non-technical users. This is achieved by showing only features related to a single topic on the map. MapComplete contains many thematic maps, each built for a certain community of users, showing data and questions that are highly relevant for this topic. By showing only objects on a single topic, contributors are not distracted by objects that are not relevant to them. Furthermore, this allows to show (and ask for) attributes that are highly specialized (e.g. a widget that determines tree species based on pictures) but also by reusing common attributes and elements (such as showing and adding opening hours or pictures).
The design goals of MapComplete are to be:
- Easy to use, both on web and on mobile
- Easy to deploy (by having a limited, non-critical backend)
- Easy to set up a custom theme
- Easy to fall down the rabbit hole of OSM
The basic functionality is to show some map features and then ask certain questions. Answers (and new point data) are sent back directly to OpenStreetMap.
Furthermore, it shows images if present in the panoramax,
image tag or, if a wikidata or wikimedia_commons-tag is present,
it
follows those to get these images too.
An explicit non-goal of MapComplete is to modify geometries of ways, especially generic geometry editing. If adding geometry would be supported, we'd also have to show all geometries (to avoid accidental intersections). This would invite showing and editing other geometries as well, resulting in a general-purpose editor. However, we already have an excellent, web-based general purpose editor. (Splitting roads is possible though - with respect for relations if it is part of a relation; in some restricted themes, geometry conflation is also possible).
**More about MapComplete: ** Watch Pieter's talk on the 2021 State Of The Map Conference (YouTube) about the history, vision and future of MapComplete.
How is it different from StreetComplete?
This is the repository of Map Complete. Street Complete is an Android-only application where the contributor is shown some questions to solve, after which the pin will disappear from the map.
StreetComplete can thus be seen as a Todo-list for contributors who go on a stroll, whereas MapComplete is a website showing relevant information and which allows adding or updating information.
The codebases are separate, even though many ideas and some artwork are copied from the StreetComplete app.
Documentation
More documentation can be found on the documentation website *docs.mapcomplete.org
Dev
To develop or deploy a version of MapComplete, have a look to the guide.
Creating your own theme
It is possible to quickly make and distribute your own layer/theme. This can be done with MapComplete Studio. You can also code your own, please read the documentation on how to do this.
The main developer is currently not fullfilling requests for new themes (unless you are paying him). There are simply too many good thematic maps to make. We do however encourage you to try to create your own theme yourself - we'll gladly accept it as an official theme if it meets the criteria.
Some history
The first ever (testing) changeset https://www.openstreetmap.org/changeset/85856178 (27th may 2020) and first proper changeset one day later: https://www.openstreetmap.org/changeset/85903433
- Buurtnatuur.be, developed for the Belgian Green party. They also funded the initial development!
- Cyclofix, further development during Open Summer of Code funded by Brussels Mobility. Landing page at https://cyclofix.osm.be/
- Bookcases cause I like to collect them.
- Map of Maps after a tweet
- Pin je punt (project homepage) commissioned by 'Toerisme Vlaanderen'
Statistics
To see statistics, consult OsmCha or the statistics page.
User journey
MapComplete is set up to lure people into OpenStreetMap and to teach them while they are on the go, step by step.
A typical user journey would be:
-
Oh, this is a cool map of my specific interest! There is a lot of data already...
-
The user clicks that big tempting button 'login' in order to answer questions and creates an account.
-
The user answers a question! Hooray! The user is now transformed into a contributor.
-
The user adds a new POI somewhere
-
At various number of changesets, some more features become available, e.g. a link to the changeset, tags, ...
License
GPLv3.0 + recommended pingback.
I love it to see where the project ends up. You are free to reuse the software (under GPL) but, when you have made your own change and are using it, I would like to know about it. Drop me a line, give a pingback in the issues,...
Translating MapComplete
See translating mapcomplete for more information.
Android
The website is also packaged into an Android App, but there are no major differences between the web version and the Android App.
The Android version is available online, the source code is here
Architecture overview
See ARCHITECTURE.md
Privacy
Privacy is important, we try to leak as little information as possible. See the privacy policy for more information
Attributions and Copyright
The code is available under GPL; all map data comes from OpenStreetMap (both foreground and background maps).
Background layer selection: curated by https://github.com/osmlab/editor-layer-index
Icons are attributed in various 'license_info.json'-files and can be found in the app.
This project was funded through NGI0 Entrust, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.


