akvo / akvo-flow

A data collection and monitoring tool that works anywhere.
http://akvo.org/products/akvoflow/
GNU Affero General Public License v3.0
65 stars 31 forks source link

Handle geotagged media in maps (estimated: 16) #1653

Closed janagombitova closed 8 years ago

janagombitova commented 8 years ago

We are now capturing location information for all media questions as a default setting. Geotagging was implemented based on the need to provide the ability to perform quality checks on the collected photos and videos. Simply said, to give our partners a way to answer the question: How do I know that the photo was taken at the location where it was supposed to be taken?

All user stories are captured here: https://docs.google.com/document/d/1pFKNdT0QrCOt5RDdq42i72_bQ3WHHJy1xxcUw1fc5Zw/edit

At this point the location information is shown in the dashboard under the media link, latitude and longitude. This is informative but does not directly give our users value. They need to add the information to a map and reference it with the data point location as well, to answer the above mentioned question. We will be adding the location information into the raw data reports as well, which will allow our users to further use the information in other tools to analyse to location patterns, but we should also provide value without expecting our users to need to use the data in other tools.

All documentation and discussions are captured here: https://github.com/akvo/akvo-product-design/issues/74

@loicsans and @Kiarii can you please take a look at this issue and provide a solution?

janagombitova commented 8 years ago

Discussion from the planning poker session today

Goal of this functionality is to provide the users with a way to validate their photos, a data quality check. We capture by default the location information of each photo and video with the Flow app if possible. The need is to give user an indication on the locational relation between the photo and the data point location.

One of the implementation ideas was to calculate the distance between the location of the photo and the data point. However, the accuracy plays a role and thus needs to also be either taken into account or shown in a way the user can easily understand. As this implementation is complex with many unanswered question we decided to push this for later. It will be handled first here https://github.com/akvo/akvo-product-design/issues/141

For now we will display the location points of the photo in relation to the data point - after the user selects the point on the map the photo location will be indicated on the map. The implementation should be implemented is such a way that the UI rendering is shown on both maps that we use in Flow - the general map and the CartoDB maps.

janagombitova commented 8 years ago

Implementation design

picsmap

Expected behaviour:

janagombitova commented 8 years ago

Together with @kymni and @Kiarii we looked at the 1st testable implementation of this feature, where the expected behaviour was that once the user clicks on a point (which has a photo that is geotagged) its location will immediately appear on the map as well. However with this implementation we ran into a few complications:

As a result of these learnings we propose a different approach. After clicking on a data point now photo location will be shown. Above each photo the link "show on map" / "hide from map" (identical as with geoshapes) will be given for the user to add the point of the photo to the map if he/she wants. Secondly, also when the user hovers over the photo to location is shown on the map.

image location on map.pdf

With the 2nd implementation we aim to learn if this is a more understandable and smoother user experience - the user does not have to figure out himself what the extra point on the map means, but chooses if he want to see the location on the photo on the map or not.

The pending question is: What if I want to see the location of all photos at once for the data point? Can I show the location of all submitted photos?

janagombitova commented 8 years ago

From review meeting with @Kiarii and @kymni we agreed to:

janagombitova commented 8 years ago

@kymni I have only one comment to the implementation currently on UAT1. I opened a data point, clicked on "Show photo on map", all worked super smooth, but then I clicked on another point on my photo remained shown on the map even though it did not belong to the new data point that I selected.

I like that you can have multiple photo locations shown on the map from one data point, but once the user selects a new data point to preview or a new survey, the photos should not be shown on the map anymore.

screen shot 2016-07-29 at 09 54 11

New point selected

screen shot 2016-07-29 at 09 58 58

New survey selected

Second thing. @Kiarii suggested to change the link a bit to: "Show photo location on map" and "Hide photo location on map"

Besides these two points, the implementation works very nicely with hovering over an unselected photo, over a selected photo, showing and hiding on the map, showing together with geoshapes... Well done!

janagombitova commented 8 years ago

👍 passes 1st UAT sprint freeze test

janagombitova commented 8 years ago

missing test plan, but fix works as expected 👍

janagombitova commented 8 years ago

👍 works like a charm, well done everyone!

janagombitova commented 8 years ago

passes 2nd round of regression tests as well 👍