Well, this is fantastic!! I spent most of today testing.
First reflections:
-
When you first open the widget, the zoom level spans the entire data set. My intuitive expectation is to start from a fairly high zoom level centered on my own location, but I guess the current behaviour is reasonable since it's fairly obvious that you just need to hit the my location icon to zoom into where you are.
- However, when I hit the target icon to go to my own location, the zoom level is fairly low, and my target location is not centered. I invariably find myself zooming in more.
- Update: this is actually upsetting me more as I proceed with testing! Once I get into a flow, I'm visiting lots of features in the same area. Every time I launch a new form and come to the
select from map
question, I have to hit the icon to pan&zoom to my location, and then zoom in some more before I can effectively select a point.- I think this behaviour makes perfect sense when you're just testing the functionality on a single point (or even when you visit your first point, at which moment it's probably nice to see where you are with respect to the whole dataset), but once you're spending a significant amount of time mapping multiple points, those two extra UI interactions per feature are aggravating.
-
The GeoJSON is pretty unforgiving! I've created samples a few different ways:
- Download OSM data from Overpass, import it into QGIS and convert polygons to centroids, export as geojson from QGIS
- Download OSM point-only data from Overpass directly as geojson
- Manually create QGIS point layers and export them as geojson
- Handwrite geojson
-
No matter how I do it, it usually takes me a few tries to get the geojson working. I'm not even sure what the problems are: right now I'm mostly making them work by deleting almost everything except the exact points and attribute fields I want. Sometimes the error messages are helpful (it seems that if I make a simple syntax error in the geojson it gives me a line number and descriptive error) but other times they are terribly opaque, for example
An unknown error has occurred... Attempt to set Uncast Data value to null1|AnswerData objects should never have null values.
(maybe this is when fields that the form attempts to perform calculations on are empty or null?) -
I think it would be fairly common to wish to add new points, in the same way that OpenMapKit did. In other words, if the feature exists in the real world, but not in the GeoJSON, you might wish to create a point and then fill out the same form, albeit without the pre-populated fields.
- I suppose a workaround could be using an XLSform that includes a Geopoint question that's relevant if there's nothing selected from the map.
- Yet another workaround would be to have a separate form that asks all the same questions but simply replaces the select from map with a geopoint. But you won't know that you need that until you've already tried to select the relevant point from the file.
-
Side reflection: is there anything preventing us from using the same media dialogue that we use for the GeoJSON upload to also optionally provide a raster base map? It seems like a matched set of a GeoJSON and a raster base map (and eventually a vector tile overlay) would go together nicely. Something particularly cool about this functionality that I hadn't really thought about before is that you're pretty explicitly defining an area of interest when you create the geojson file. Therefore it seems like a great starting point to add base layers from the Central server.