Geo: Optimizing zoom levels for walking surveyors

#1

(This item is moved here from the ODK Geo roadmap document.)

Currently, the geo widgets zoom to level 16 when zooming to the phone's GPS location.

This isn't optimal because it's a bit too zoomed out to see the level of detail one would need when walking a line for GeoTrace. Also, the zoom level is always reset to 16 even if the current view is more zoomed in, which feels awkward.

So, two changes we're considering are:

  1. When zooming the view to the current GPS location, zoom to level 19 unless the zoom level is already 19 or higher. (This would happen when you first open the map, and when you press the circle-with-crosshairs button.)

  2. When the user starts collecting a trace, zoom further to level 21 unless the zoom level is already 21 or higher. (This would happen only when collection begins, not continuously during collection.)

We could implement either of these changes, or both.

These zoom levels work fairly well for enumerators collecting a trace at walking speeds. Below the first image is at zoom level 19; at less than 19 it would be hard to identify the surrounding buildings and neighbourhood. Below the second image is at zoom level 21; at less than 21 it would be hard to tell whether a point is on the correct side of the street, for example. At level 21, it is easy to distinguish the collected points, shown as small red circles, which are ten paces apart.

Zoom level 19:
2019-03-16 23-07-25

Zoom level 21:
2019-03-16 23-07-28

We'd like to get your feedback on this proposed change. What do you think? Thanks!

#2

@danbjoseph asked whether, if you started collecting a trace and then zoomed out to level 20, it would force the zoom back to 21. No; the idea would be just to zoom in to 21 when recording starts (if we do this at all). Open to opinions on both changes; we could do either one or both.

#3

I'm open to changing the default zoom level, @zestyping. For comparison, what zoom level does Google Maps (the application) zoom to on open and during walking navigation? That seems like a reasonable benchmark.

Do you want to apply these changes to GeoPoint as well? Seems like we might want to have consistent zoom behavior.

It feels like zooming in after starting the trace could be annoying. I'd imagine that as an enumerator, I'd adjust the zoom to the level I want before starting the trace. Maybe I want to zoom out because I'm collecting data with a motobike? It'd be annoying to have the app zoom in and then I'd have to zoom back out.

#4

I gave this a try on a Huawei Honor 5A, Android 5.1. The Google Maps app opens up at a zoom level that looks pretty close to OSM at zoom level 15. (We currently open at zoom level 16, and zoom to location at zoom level 16.)

When I activate walking navigation, I get a zoomed-in first-person view. If I adjust the camera to be orthographic without changing the zoom level (two-finger swipe down), the zoom level of the resulting view looks pretty close to OSM at zoom level 18 (one residential block roughly fills the screen).

Zoom level 21 may be a special case. In the survey that Ramani Huria was doing, it was important to distinguish which side of the street you were on, so it had to be pretty zoomed in.

Should this be controllable by the form designer?

#5

I don't love adding more options if we don't have to. Also, if the form designer sets the zoom level poorly, then that's annoying to enumerators also.

Would it be easier if Collect remembered the last zoom level?

#6

This does sound like it could be a good compromise by allowing the enumerator to make the zoom level decision once.

Agreed. Given that no users have jumped up here to express enthusiasm, I don't think we should change the default.

This also seems like a reasonable approach to me. Presumably the form designer would field test the change so I don't share @yanokwa's concern about being annoying to enumerators. That said, having Collect remember the zoom level has the advantage of letting each enumerator have what they need based on their eyesight, device size, device pixel density, etc.

1 Like