bryceco / GoMap

OpenStreetMap editor for iPhone/iPad
ISC License
316 stars 41 forks source link

Add "quests" (like those in StreetComplete on Android) #221

Closed wtimme closed 4 years ago

wtimme commented 5 years ago

How do you guys feel about adding "quests" like StreetComplete?

We would visually indicate on the map that an object is lacking some tag(s). Through some interaction (e. g. the "Perform Action" menu), the user is able to add data by simply answering a question, e. g. "How many bikes can be parked here?". The user would then only type in a number and hit "Save".

bryceco commented 5 years ago

Sounds good. It fits in with the Notes/Fixme functionality as well as the aborted KeepRight functionality (which I killed because the API didn’t properly support resolving issues, and which should be replaced with Osmose).

tordans commented 5 years ago

I love the idea of StreetComplete. Even though I never really used it for more than a few minute, since I am in the iOS eco system, so I don't know much about it.

Btw, there will probably never be a iOS version of StreetComplete itself – https://github.com/westnordost/StreetComplete/issues/43 –; GoMap is in a good position to fill the gab.

However, I find the idea of adding all those new interaction a bit daunting. There is a lot to consider to make a good quest-based UI.

I wonder if there is a different way to tackle a similar problem. At its core, GoMap is an editor. So it will always be a conflict between raw editor- and quest-feature. StreetComplete has it easier here, they are "only" working on being a great quest-app. To be more concrete, I wrote up my idea at https://github.com/bryceco/GoMap/issues/222. I think that does scratch the same its as this ticket, but in a way that fits more in the GoMap-Editor-World. (I extracted it in a separate Issue in the hopes of making the discussions easier to follow.)

tordans commented 5 years ago

@bryceco

…the aborted KeepRight functionality (which I killed because the API didn’t properly support resolving issues, and which should be replaced with Osmose).

Did you see the new integration of KeepRight in iD? They added it a few month ago as a first external QA-/validation feature. They also added ImproveOSM later. And Osmose is planned, but AFAIK not actively worked on ATM.

Looking at those integrations, I think in theory it should be possible to have those in GoMap as well.

However, personally I don't think those are very important to add ATM. Ist just FYI.

tordans commented 5 years ago

@bryceco I will answer here, to try to keep the "quest" idea separate:

This sounds similar enough to #221 that they should be the same feature.

The way I look at the quest, is a UI that really shines with "one question, one prepared answer". Like this:

Source: https://play.google.com/store/apps/details?id=de.westnordost.streetcomplete&hl=en_US

For me, those two ideas are like this:

Both have their place, but one cannot be good at being the other, without hurting its core.

wtimme commented 5 years ago

Thanks for all your input!

For now, I was looking for an MVP approach to this. Here's what I think could work:

And from there, we can improve.

Another approach could be to use fork GoMap and create a new app, dedicated to these kind of "quests". But since GoMap already has a userbase, and since that userbase might also be interested in these kind of "quests", I think an MVP could be a start.

zlavergne commented 5 years ago

I like that @tordans started thinking of how the mobile platform can set GoMap apart in #227 which got me thinking about this...

This is bluesky stuff but what do you think about an AR component of quests/errors?

Imagine a user pulls up a camera view in GoMap and points it down the street and the app somehow indicates errors, incomplete data, etc (based on location). From there they can tap one of the flags and it pulls up the tagging window.

bryceco commented 5 years ago

I would love to have an overlay that showed the OSM data on top of the real world, but the compass is simply not accurate enough to make it work well, IMO.

tordans commented 5 years ago

This is bluesky stuff but what do you think about an AR component of quests/errors?

@zlavergne like this, right? Unfortunately postet on the 1st of April :-D

Love the idea regardless.

tordans commented 5 years ago

Back to https://github.com/bryceco/GoMap/issues/221#issuecomment-485262945

Another approach could be to use fork GoMap and create a new app, dedicated to these kind of "quests". (…)

What I tried to point out when I split off https://github.com/bryceco/GoMap/issues/222 is, that a quest mode in "GoMap – the editor" is something different from StreetComplete. Which is totally fine and for me personally great. I thinks its very much possible to add this kind of interaction to GoMap. It will be, however, something different from StreetComplete in the way that it is another layer on top of and editor. So the target user is someone who can handle the editor and wishes for some fun, pointers/guidance and quick editing help.

tordans commented 5 years ago

For now, I was looking for an MVP approach to this. Here's what I think could work: Start with a single, easy quest (such as the one for the bicycle_parking spots), and continue from that Add a new setting/filter that lets the user enable/disable the visual indicators for certain "quests" Add the question to the "Action menu". When tapping the question, show custom UI for this specific question.

Sounds good.

The ways I read it: The goal of this feature is, to guide me as a mapper to points and ways that are missing certain tags that we consider "required to be fully mapped". Like amenity=bicycle_parking should always have a bicycle_parking=* value.

And the map highlight those points/ways.

IMO this alone is a good MVP.

Maybe also with a UI similar to the "Custom Presets" UI that allows to specify those "queries". This way we could test the feature in more detail than just the one hard coded use case.

The existing feature "highlight roads of type x (?) where name is blank" could be merged with this. It looks the same to me.

Another question is, what happens once I tab on one of the highlighted features. IMO this could be part 2 of this exploration.

What StreetComplete and pic4review do, is to show special UIs for those cases. Which is IMO not needed for GoMap as an editor.

So maybe some highlighting in the presets where enough at first?

wtimme commented 5 years ago

Thanks for your thorough input, @tordans!

I've implemented a MVP for highlighting nodes, and I think it is ready to be reviewed. Here are some impressions.

I've added a new menu entry in the "Display" option. When tapping it, you get to a new screen ("Overpass Query"). 1-display-options

Here you can enter a "Overpass Wizard" query. As you type, your query is run against a parser and parsing errors are displayed in real-time. 2-query-editor 2-query-error

After entering a valid query, you can tap the "Preview in Overpass Turbo" button to preview the results of your query right in Overpass Turbo. 3-preview

When leaving the screen, your query is saved. When you get back to the map, the nodes matching your query will have blue circle with a yellow fill color above them. 4-editor-map-layer

At the moment, tapping the circles doesn't do anything - they just act as transparent overlays, and the tap behaviour of the map remains unchanged.


I've tested this with several queries, and even though the UI only allows for one single query to run at any given time, I think this can already have a benefit to the user.

What do you think, guys? Is this an MVP that we can work with already?

tordans commented 5 years ago

This looks very promising and like a great MVP. It will gladly test it in a testflight.

Personally, I don't see any issue in bringing this in front of users – even in this MVP – since it is well hidden in the settings; only those who look for it will find it.

wtimme commented 5 years ago

Thanks for the positive feedback!

I've gone ahead and created a pull request (#232). Feedback on the changes is much appreciated!

bryceco commented 5 years ago

Expecting users to type in overpass queries is way too complicated for what is supposed to be “beginners” app for editing OSM. Especially since the quest feature should also be aimed at beginners and people who just want to do light editing. We need a much more user-friendly and localizable way for people to choose quests.

wtimme commented 5 years ago

I agree. For beginners to be able to use this feature, there are a couple of more steps that we need to take.

Until then, however, we can already test and use this MVP. For example, you can go ahead and copy the quests from StreetComplete and see overlays for nodes where data is missing.

By the way, just to clarify (since the wording that I used might be a little confusing): The view controller is not for entering raw Overpass Turbo queries, but rather for entering the human-readable (and easier to compose) Overpass Turbo Wizard queries. For beginners, they might still be "too advanced", but for casual mappers and experts, they are way easier to compose and understand. 👍🏼

tordans commented 5 years ago

This is for @wtimme FYI: We had a meetup in Berlin recently. The discussion was also about how to improve data quality with Tools like StreetComplete and maybe this one here. There will be a follow up Meetup next month, details at https://www.meetup.com/de-DE/OSM-Berlin-Brandenburg/events/262027183/. If you want to know more, ping me via email.

tordans commented 5 years ago

Hi @bryceco we have a project going in Berlin that would benefit from this feature. Is there a way to get this released as a Beta-/Testing-Feature?

For example:

wtimme commented 4 years ago

Hey @bryceco, I guess your time is as sparse as mine. Could you still give me some feedback as to where we will go with this? I‘ve put quite some effort into this feature already, and would love for people to get their hands on it and give feedback.

Thanks in advance! Your effort is much appreciated.

wtimme commented 4 years ago

Hey guys, not trying to bump this, but per suggestion from @tordans, I've updated the pull request to work with ways and buildings as well, so queries like

highway=* and surface is null

will now also highlight ways that are missing the surface tag, and a blue layer (similar to the one found on Overpass Turbo) will be rendered on top of them. Here's a quick preview:

osm-completionist-way-highlighting

bryceco commented 4 years ago

I haven't played with this on my device yet so I'm not sure how this interacts with nodes being displayed during selection, but would it make sense for it to be an outline of the way more like the "Unnamed Roads" feature?

bryceco commented 4 years ago

Closing since this discussion is stagnant and is essentially a dup of #240 which has more recent comments. Based on @wtimme's prototype I think this feature has potential, but further discussion should occur at #240.