Skip to content

OpenDataKit Forms for OpenMapKit

@tomgertin edited this page Jan 6, 2016 · 5 revisions

OpenMapKit uses XLSforms with the addition of the osm question type. This allows you to collect OSM data in OpenMapKit using ODK Collect. In addition, you can easily create accessible public tag information in OpenStreetMap in addition to your private, domain specific ODK survey data.

You can use all of the form functionality currently available in OpenDataKit, but now you can also add osm questions. An OSM question is a new "media type", which means that it functions in the survey in the same manor as a photo or video. When an osm question is specified in a survey, ODK Collect opens OpenMapKit, providing parameters for the tags to be entered for an OSM feature that you will select.

Basic OpenMapKit Example Form

If you download this Basic OpenMapKit Building form Example form, you can see a simple OSM question. This question is named osm_building. In the type column, it is defined to be osm. It also has a parameter of building_tags.

osm question

This parameter is referenced in the osm sheet, between choices and settings.

OSM Sheet

osm sheet

The osm sheet has three columns: list name, name, and label. This sheet defines the tagging parameters that will be sent to OpenMapKit.

columns

list name has two functions.

  1. It defines the set of tags that OpenMapKit will add to an OSM feature.

  2. It defines the set of tag values selectable for a given OSM tag. (optional)

In the survey sheet, our osm_building question had a type parameter of building_tags. In the osm sheet, we have several rows with the list name of building_tags. This is the set of OSM tags the user will answer in OpenMapKit.

The set of OSM tags has a list name suffix of _tags. The values in the name column are the tag keys that are recognized in OSM. The values in the label column are the labels that will be presented to the user when entering values for the given OSM tag.

Often times we do not want the user directly typing in values for an OSM tag. Typing in a specific string value is error prone, and if there is a set of possible values that we want for a given tag, we want to present these values as a multiple choice question to the user.

Notice that one of the building_tags has the name building.

building_tags

We want to give the user multiple choices of values for a building tag. These are the corresponding tag value choices that will be presented to the user in OpenMapKit:

value choices

This step is optional, and if you do not provide a set of tag values, the user will manually type in a value for a given question.

Multiple Choice OpenMapKit Tag Question Manual String Value OpenMapKit Tag Question
multiple choice question string value question