[OSM-talk] Android survey app: osmagent

Tobias Zwick osm at westnordost.de
Tue Nov 8 16:40:46 UTC 2016


I would like to advocate an Android app I have been working on more or
less for a year. I posted this in the forum already but it has been
suggested to me that I also post this here on this mailing list to reach
the right audience, so here it goes:

Osmagent is a tool for surveyors that doesn't require any knowledge
about the tagging schemes in OpenStreetMap and also doesn't require the
surveyor to return home after the survey, launch JOSM and spend an equal
amount of time inputting the data into the database:

The app searches for incomplete or extendable data in the user's
vicinity and presents the user with a map of "quests" (like i.e. in
Mapdust) that each are solvable by answering a simple question while
surveying it. Basically, take the concept of Mapdust and Maproulette,
add the ability to solve them on-site and you got osmagent.
The data input by the user is then directly added to the OSM database,
making it available for others immediately and also eliminating the need
for editing tools to insert the info later when back from the survey.

Some examples of what the app might ask:

* What is the name of this road / shop / place / bus stop / etc. ?
* What are the opening hours of this shop / place / etc.?
* How many lanes does this road have?
* What is the surface / smoothness of this road? (User selects photo)
* Does this road have a sidewalk?
* How many storeys does this building have?
* etc. ... many more

The Idea
The idea for the project came to me when I realized how inefficient and
time-consuming a GPS survey is:

* regardless of which mapping technique I used, it always boiled down
  having to spend several hours to "process" the GPS trace in front of
  the PC

* During a survey, I had no clue how well-surveyed the area already was
  because many details like road surfaces, building heights, etc. are
  not shown on the default (offline) map I use during a GPS survey.
  Also, house numbers might generally be defined, but missing for only
  one street or a few houses. So, often I noted down information that
  was already there. Also recording any possible information that
  might be missing takes a lot of time and a survey starts to feel
  tedious. Wouldn't it be nice if someone already collected everything
  that is missing for me?

* I like to contribute to the OSM, but I realized that many others also
  like to contribute while only few have the leisure to acquaint
  themselves with how to survey and even less are able to program tools
  and apps that help. So I can better contribute to the OSM in helping
  others to contribute.

The Name
I had the idea for the name when I overheard someone saying something
along the lines of that "google has their agents [who survey these
things]" when I was impressed on seeing the Google indoor maps of
certain shopping centres. Well, with this app, anyone can be an agent
for OpenStreetMap!
I realize that "agent" might carry a negative undertone for some people,
so I am not set on this name yet. I thought of osmscout, but this name
is already taken. Another name that recently crossed my mind is
mapcomplete (leaned towards "achievement complete"). Let me know what
you think.

* decentralized: The app only communicates with OSM and Overpass, no
                 third server involved. Consequently, you do not need
                 any other account than your OSM account.

* data economic: The app downloads sparse data from Overpass and only
                 that which it needs to display the quests

* offline-usage: Sync-only-on-Wifi option. You can solve the quests
                 offline, when you return to some online-place, the OSM
                 changes are automatically uploaded, conflicts are
                 resolved automatically. You can download the quests
                 for an area beforehand.

* oauth: The answers you give are created as atomic commits with
         reasonable comments and source tags in your name

* Mu: For each quest, you have the possibility to leave a public note
      instead of answering the question, i.e. if app asks for the
      opening hours of the shop but in reality the shop does not exist
      anymore. A note at a location blocks any other quests, so other
      users are not bothered about an unanswerable question at that
      position as long as it is not solved. Alternatively, they can
      just hide the quest for themselves.

* answering notes: The other way round, users may also answer on other
                   people's notes

* 3D Map rendering: I am using Tangram-ES to render the map, which is
                    capable of rendering the buildings in 3D and also
                    apply all kinds of shaders to the map. Other than
                    that the map may look cool, it also means that it
                    would be possible to directly display the answer
                    the user gave on the map (i.e. the building height)

State of development
See here: https://github.com/westnordost/osmagent

Of the quests, currently implemented are only "road name", "shop opening
hours" and "contribute to note" as proof-of-concepts, I am still working
on the base system. Adding more quests will be an easy
What's missing on the base system is the logic when the system should
download quests and upload the changes the user made. Also, since the
app is making direct changes to the DB in the name of the user, I want
to write more tests before I make it available.
But that's it, pretty much, what is missing for a first release.

In the forum thread, I linked a few screenshots so that you can get an
impression of the app:

  Tobias Zwick (westnordost)

More information about the talk mailing list