-
Notifications
You must be signed in to change notification settings - Fork 217
Labels
backendRequires a change to the API serverRequires a change to the API serverbehavior verifiedBehavior has been manually verifiedBehavior has been manually verifiedfrontendRequires a change to the UIRequires a change to the UI
Description
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.
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
Reactions are currently unavailable
Sub-issues
Metadata
Metadata
Assignees
Labels
backendRequires a change to the API serverRequires a change to the API serverbehavior verifiedBehavior has been manually verifiedBehavior has been manually verifiedfrontendRequires a change to the UIRequires a change to the UI
Type
Projects
Status
✅ done