No description
Find a file
2020-07-22 17:02:38 +02:00
assets Extract icon 2020-07-21 16:20:47 +02:00
Customizations Merge branches 2020-07-22 11:05:04 +02:00
docs More translation fixes, allows re-enabling questions (fix #51) 2020-07-22 00:18:07 +02:00
Logic Actually change basemap when the UIEVentsource is changed 2020-07-22 15:17:29 +02:00
UI Fix click issue 2020-07-22 16:44:07 +02:00
vendor Fix multiple bugs after user testing 2020-06-28 23:33:48 +02:00
.gitignore Further work on infobox, styling everything, removing clutter 2020-06-27 03:06:51 +02:00
clean.sh Add clean script 2020-07-20 21:39:26 +02:00
deploy.sh Add deploy script 2020-07-16 17:29:52 +02:00
Helpers.ts Lot's of small improvements 2020-06-29 03:12:44 +02:00
icons_wbb.zip Add files via upload 2020-07-20 17:01:28 +02:00
index.css styling; background map select on bottom; only show layers when there's more than one 2020-07-22 17:02:38 +02:00
index.html basic styling: design implementation 2020-07-22 13:33:26 +02:00
index.ts styling; background map select on bottom; only show layers when there's more than one 2020-07-22 17:02:38 +02:00
land.html Add MapComplete 2020-06-24 00:35:19 +02:00
package-lock.json Bump lodash from 4.17.15 to 4.17.19 2020-07-16 15:25:22 +00:00
package.json Fix deployment 2020-07-16 22:00:23 +02:00
Quests.ts Lots of styling, mobile friendliness, better UI flows 2020-06-28 00:06:23 +02:00
README.md Add upload failed message; fix pump icon 2020-07-21 22:50:54 +02:00
test.html Add image delete button 2020-07-08 11:23:36 +02:00
test.ts start of layer dropdown 2020-07-22 15:44:47 +02:00

MapComplete

Let a thousand flowers bloom

MapComplete attempts to be a webversion of StreetComplete. However, we focus on 'themes', a bit similar as mapcontrib.

The design goals of MapComplete are to be:

  • Easy to use
  • Easy to deploy
  • Easy to modify

The basic functionality is to download some map features with overpass and then ask certain questions. An answer is sent back to OpenStreetMap.

Furthermore, it shows images present in the image tag or, if a wikidata or wikimedia_commons-tag is present, it follows those to get these images too

Examples

Have a theme idea? Drop it in the issues

License

GPL + 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, ...

Dev

To develop:

  1. Install npm.
  2. Run npm install to install the dependencies
  3. Run npm run start to build and host a local testversion

To deploy:

  1. rm -rf dist/ to remove the local build
  2. npm run build
  3. copy the entire dist folder to where you host your website. Visiting index.html gives you the website

Architecture

High-level overview

The website is purely static. This means that there is no database here, nor one is needed as all the data is kept in OpenStreetMap or Wikimedia (for images).

When viewing, the data is loaded from overpass. The data is then converted (in the browser) to geojson, which is rendered by Leaflet.

When a map feature is clicked, a popup shows the information, images and questions that are relevant for that object. The answers given by the user are sent (after a few seconds) to OpenStreetMap directly - if the user is logged in. If not logged in, the user is prompted to do so.

The UI-event-source is a class where the entire system is built upon, it acts as an observable object: another object can register for changes to update when needed.

Searching images

Images are fetched from:

  • The OSM image, image:0, image:1, ... tags
  • The OSM wikimedia_commons tags
  • If wikidata is present, the wikidata P18 (image) claim and, if a commons link is present, the commons images

Uploading images

Images are uplaoded to imgur, as their API was way easier to handle. The URL is written into the changes

The idea is that one in a while, the images are transfered to wikipedia

Privacy

Privacy is important, we try to leak as little information as possible. All major personal information is handled by OSM. Geolocation is available on mobile only throught hte device's GPS location (so no geolocation is sent of to google)

TODO: erase cookies of third party websites and API's

Attributions:

Data from OpenStreetMap Images from Wikipedia/Wikimedia

https://commons.wikimedia.org/wiki/File:Camera_font_awesome.svg Camera Icon, Dave Gandy, CC-BY-SA 3.0

https://commons.wikimedia.org/wiki/File:OOjs_UI_indicator_search-rtl.svg Search Icon, MIT

https://commons.wikimedia.org/wiki/File:Trash_font_awesome.svg Trash icon by Dave Gandy, CC-BY-SA

https://commons.wikimedia.org/wiki/File:Home-icon.svg Home icon by Timothy Miller, CC-BY-SA 3.0

https://commons.wikimedia.org/wiki/File:Map_icons_by_Scott_de_Jonge_-_bicycle-store.svg Bicycle logo, Scott de Jonge