Provide a way to get mbtiles to Collect without having to connect to a computer

I've discussed this elsewhere in the past, but essentially;

  • For a survey form that for various reasons requires the use of different offline layers;
    • the survey covers areas far apart but the required offline layer has high zoom levels so it's space efficient and faster to render a tileset for each separate area (eg 10s to 100s of km apart and Z0-22 levels)
    • there are different elevations at the same location with a layer for each one (eg 1F/2F/3F)
    • the survey covers different aspects that rely on differing overlays to an offline layer that would be cluttered in a single layer (eg aboveground vs underground infrastructure)
  • When opening the map widget, for that particular question Collect will select the offline layer based on a previous question or hard coded to a particular layer, and if the layer doesn't exist then return a warning and default to none/last selected (But ideally having these filenames is like images and requires upload to Central as attachments! - I know this is beyond current scope)
    • hard coded: parameter or similar as LocationA_1F.mbtiles
    • dynamic: parameter or similar as ${selected_tileset} where the selection name is the tileset filename or a lookup against a selected value to return the tileset filename instance('survey_sites')/root/item[name=${location} and elevation=${elevation}]/tileset
1 Like

I think it's probably feasible, but I'd need to check what Android's file picker allows us to do. Either way, it's something I think we could look at after adding the ability to add one at a time rather than as part of this initial work.

Just wondering if there has been any progress on incorporating this feature into the production model of ODK Collect. I am about to embark on another data collection exercise where I can't get access to the protected folder.

Maybe I missed something in the latest version but can't see a function available - is there a likely time line. Sorry if this sounds like impatience - it's hunger...


1 Like

I'm currently working on this and it should be a part of the next release (v2024.2).
If you want to know what exactly we have decided to implement here are the GitHub issues:"mbtiles+import"