Skip to content

Add map views for Entities and Submissions #1152

@nicoleorlowski

Description

@nicoleorlowski

Vision
Our goal is to bring more visual insights directly into Central. We are starting this effort by allowing users to view submissions and Entities on a map.

Designs in Figma

User stories

  • As a project manager, I want to view a map of submissions so I can quickly find submissions of interest for viewing, editing or reviewing based on my geospatial understanding of the project.
  • As a project manager, I want to be able to track a project’s progress at a glance by seeing submissions on a map. E.g. “the eastern region is really lagging, let me check in with the supervisor there”
  • As a project manager, I want to identify geometry overlaps and other location-related anomalies as quickly as possible so that I can communicate with my field teams while they still can return to sites they have visited.
  • As a system administrator, I don’t want mapping functionality to change the performance characteristics of my server.
  • As Yaw, I want a geospatial representation of captured data when I do demos to make the end-to-end flow feel more concrete and complete.

First iteration

View the first geometry outside of any repeat on a map

  • For Entity Lists, each Entity will be mapped using the geometry property if it exists. This matches how select_one with the map appearance works.
  • For Submission Lists, each Submission will be mapped using the first geopoint/trace/shape found in the form definition that is outside of any repeat. This is similar to the submission map in Collect (documentation). If you have a form with locations captured in a repeat, you will soon be able to create Entities from those repeat instances and see them on the Entity List map.

Technical considerations

  • When a new form definition is uploaded, the path of the first geometry in form definition traversal order is identified and saved to the form_def
  • When a submission for using a certain form version is processed, the value at the path identified above is parsed out and saved on the submission_def as additional metadata
  • When a submission is edited, the geometry may be taken from a different path if the form def has changed (the latest form definition is used for edits)
  • Submissions that are not edited keep whatever geometry was pulled out at time of submission processing, even if the form definition has changed
  • Could have a migration to process existing submissions or make the feature opt-in and process submissions at time of opting in

Future iterations (see brainstorming doc)

  • Let the user pick a non-repeated field to use as geometry
  • Let the user pick one or more geometry fields at any level

Implementation requirements

Interactions:

  • Display points as pins, make selected point larger (like Collect)
  • Traces and shapes are currently a red line with shaded interior (Collect) - add a visual change when selected (ex. thicker line, color change)
  • Selected point is larger (like Collect)
  • Zoom controls (plus/minus buttons)
  • Loading indicators
  • First load display zooms to fit all pins
  • Show count display for submissions (ex. 7 of 6000 shown) for zoomed displays

Sub-issues

Metadata

Metadata

Labels

backendRequires a change to the API serverbehavior verifiedBehavior has been manually verifiedfrontendRequires a change to the UI

Projects

Status

✅ done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions