maproulette / maproulette3

MapRoulette, the micro-tasking tool for OpenStreetMap
https://maproulette.org
MIT License
128 stars 34 forks source link

Create Tasks from Geotagged Photos #1759

Open mvexel opened 2 years ago

mvexel commented 2 years ago

Inspired by https://twitter.com/mvexel/status/1532114607120130049

This is a big one and needs quite a bit of thinking and discussion—and work.

To create a 'photo challenge' you would point MapRoulette to an place (online / local?) that contains a set of geotagged images. MapRoulette would create a task from each image. There might be a special widget to display the image inline on the task page, or just on the map like JOSM does.

mvexel commented 2 years ago

Perhaps this could be done outside of MapRoulette, using https://github.com/osmlab/maproulette-python-client @mattmanley ...?

mvexel commented 2 years ago

A rough outline of what an external script / program would do:

  1. read EXIF tags for all JPEGs in a specified local folder
  2. Create thumbnail versions of those photos with valid EXIF geolocation tags
  3. upload photos with valid EXIF locations and their thumbnail versions to a specified S3 bucket with public access
  4. Create a task for each uploaded photo using
    • the geolocation as the task geometry and
    • the S3 URL for the thumbnail version of the photo in the task instruction
    • the S3 URL for the full version of the photo as a link when the user clicks the thumbnail
mvexel commented 2 years ago

Some work ongoing here: https://github.com/mvexel/maproulette-photo-challenge

joostschouppe commented 2 years ago

As a more generic feature (that might be needed to make this one work), it'd be nice if you could include images in new tasks. That would be really convenient in my Traffic sign project task.

mvexel commented 2 years ago

@joostschouppe You can already include links in the task instructions, this includes links to externally hosted images, using the regular ![alt](url) markdown syntax.

Image hosting is hard, and most likely MapRoulette is going to continue to rely on external hosting for images.

mvexel commented 2 years ago

@mattmanley created a PR that has a rough working implementation of the Python tool to create this type of challenge: https://github.com/mvexel/maproulette-photo-challenge/pull/3

joostschouppe commented 2 years ago

Martijn, the issue isn't the hosting of the files. The issue is that there are loads and loads of different traffic signs. So it'd be nice to show an image of the new traffic sign instead of just the code.

mvexel commented 2 years ago

@joostschouppe right, for that you would use the ![]() syntax to show an image hosted elsewhere inline in the task instruction. Or is it something else you want to achieve?

mvexel commented 2 years ago

@joostschouppe right, for that you would use the ![]() syntax to show an image hosted elsewhere inline in the task instruction. Or is it something else you want to achieve?

There is a ticket over on the docs repo to clarify that you can use image links: https://github.com/maproulette/docs/issues/22

joostschouppe commented 2 years ago

I'm sorry! I tried and failed at it, and thought it was just not possible. Sorry to hijack the conversation here.

mvexel commented 2 years ago

No problem @joostschouppe . Let me know if you have any problems with this. I haven't actually tested it myself, but the markdown parser should support setting image display size like this.