-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add MapRoulette-"Quests" similar to the StreetComplete-Quest-Idea #240
Comments
Acceptance criteriasPlease bare in mind that this is a raw MVP. It is not the finished version of the MapRoulette integration, but it's a start to get the API and some basic UI in place.
|
I like it @wtimme! My only thought is with the last point:
To better test the actual API integration, should we rather fetch the task itself and have a small, scrolling modal with instructions and info. For the MVP, it can just display the text without any formatting. |
Thanks for the feedback, @zlavergne! Yes, that could also work. In maproulette/maproulette3#1108, it says that they want to build
Presenting a web view as the MVP would allow them to test their page already. But I wouldn't object if someone already went for a modal (e. g. utilizing an |
Good news: I was finally able to generate the API client for MapRoulette by modifying the Swagger definition a bit. 🎉 (Take a look at the code here.) For this, I made use of Swagger Codegen 3.0.18, which added support for Swift 5. Open questionsDuring development, I came across a couple of obstacles and would like to discuss them with you. How do we integrate the auto-generated code (cp. #163)? By default, Swagger Codegen supports Carthage and Cocoapods. (I've used the latter for my branch.) In addition, I am not sure about the integration of the Try it outYou can try the MapRoulette integration using the TestFlight Beta for OSM Completionist. (Sorry for the self-plug!) If you're more interested in the code, the comparision of the branches might be a good start. Keep in mind though that it compares the branch with the Footnote for expectation management: This is by far not ready to be shipped yet.
If you are an iOS developer (Objective-C/Swift), I would be grateful for feedback. |
Thanks for the prototype, @wtimme! A few unsorted thoughts
Suggestions for next steps Prio IMO …
Maybe easy …
Soon after …
|
If you're loading the MR frontend just to let the user set the task status after completion, that is very easy to do through the API using the For the situation where too many tasks are being loaded for an area, the MR API supports retrieving task clusters instead of individual tasks. Each cluster includes a bounds so that you can zoom in when a user taps on a cluster, or you can uncluster it and show individual tasks. However, the clusters only include summary data for the child tasks, so if you're preparing to go offline then you'd need to also take care to fetch the full data for the tasks in the area so you have it available. Using the cluster APIs will also be much faster than loading all the task data (if the user is not going offline). Regarding challenges, we do have short-term plans to add a new category of challenge for tasks where local knowledge is preferred or required for completion. That would allow GoMap to focus on tasks local to a user's location where being on the ground is of higher value than with ordinary tasks that can be solved remotely. MR doesn't currently support attaching photos to tasks, though it is something that has come up from time to time. I can see how for a business-hours "local" challenge, it might make more sense for the challenge to ask for photos from people out in the field rather than OSM edits, and then feed those into a new "standard" challenge where remote mappers could enter the business hours into OSM based on the photos. Again, though, GoMap would need to support storage and management of the photos in the case of offline (or just limited connection speeds out in the field) and feed these to the MR API later or in the background. |
Thanks for the feedback and the thorough replies!
Which exact endpoint are you referring to? I had a look at the ones outlined in the Swagger definition and watched Firefox' network debugging tools. The operation with the ID
The only documented parameter is But since this is just an assumption, it would be great of one of the MR devs could take a look before we spend more time on this. In general, though, retrieving a cluster sounds like the better approach. 👍🏼 As for the rest of the ideas, they sound like bigger goals. What I want to focus on right now is a feasible MVP, and I was hoping for users to be able to use the native iOS app to identify tasks/challenges on the map, and then using MR's website to resolve them.
Yes, it unfortunately is, even with the route |
If you plan to flip to the website to fix issues then only challenges that support the forthcoming MR “quick fix” feature should be displayed on the map. But honestly I think a Go Map!! feature that doesn’t rely on the editor itself to fix things isn’t good enough to ship: why use the app when you can accomplish the same thing in Safari? |
Thanks for the feedback, Bryce!
That is a very good point. Since we try to implement this feature in a MVP way, the question we have to ask ourselves is: What exactly is a version of this feature with just enough features to satisfy early customers and provide feedback for future product development? I have tried to answer that question in an earlier comment, and at least two people reacted positively. Do you have "minimum requirements" in mind so that the feature is good enough to ship? Thanks in advance for your feedback! Known issue/bugTo increase visibility, I want to let you know that the MVP currently has an issue. With the "MapRoulette" layer active, it is not possible to use the "Edit" control at the bottom (the one that says "Tags", "Paste", etc.). I'll have a look once I have the time. (PRs that target the feature branch are always welcome. 😉) Thanks for reporting this through TestFlight! |
The MVP already exists for users by simply opening MR.com in Safari. The new and interesting product is to be able to edit more complex challenges on mobile than the website can support. We can can also discuss whether MVP is a beneficial development strategy in general, and I don’t think it is. First impressions count and if a feature seems poorly implemented or hard to see the benefit then users won’t go back and use that feature even after the bugs are fixed. |
I should add that using MVP for prototyping and internal evaluation is great, I just don’t think that “half-baked” features belong in the App Store. |
This idea is based on – or similar to – #221.
With what @wtimme is working on at #232 is would be possible to add a quest based on existing OSM-data. Like "show me all bike stands that still need attribute x".
However, there are quite some usecases where the nudge to check a location for a possible mapping-quest is based on external data.
Example: At https://bikeparking.lorenz.lu/missingmap/Berlin# @britiger is working on a data check that compares city data with OSM data. All those places that are missing in OSM should be checked by someone locally.
For this, https://maproulette.org / https://github.com/osmlab/maproulette3 is ideal. We can upload the missing data and save the "this is done" and "this is not an issue" state in the maproulette DB.
So this is the idea:
Other ideas
I can do more research into this – like looking at API calls – in case this looks interesting to other people.
The text was updated successfully, but these errors were encountered: