Fulcrum leverages the MBTiles format for offline map layers. MBTiles files are essentially SQLite databases containing tiles and metadata tables for storing tilesets.

Fulcrum currently only supports raster tilesets. The MBTiles file container can also be used with vector tilesets, but these are not supported in Fulcrum. Be sure your MBTiles file contains only raster tiles for use in Fulcrum.

MBTiles files can be loaded directly from your mobile device or uploaded to Fulcrum for use on the web. Uploaded layers can also be permissioned to other users within your account. Once initially download, these layers work fully offline.

Below are some useful tools for generating MBTiles from local raster files, GIS datasets, and remote tile servers.

MapTiler Desktop

MapTiler Desktop is a free tool for converting raster images generated in GIS, AutoCAD, etc. into the MBTiles format. If you have a GeoTIFF or JPEG2000 file, this is a great tool for converting it for use in Fulcrum. MapTiler also has built in georeferencing, making it easy to position images that may not be referenced.

QGIS 3.8+

QGIS, the popular free and open source Geographic Information System, now supports directly generating raster XYZ tiles, including MBTiles, from the QGIS map canvas. This is the best way to style your GIS data (raster and/or vector) and export an MBTiles map for use in Fulcrum. More information is available on our blog.

GDAL

The open source Geospatial Data Abstraction Library (GDAL) can transform raster images into the MBTiles format. The following commands convert a GeoTIFF dataset to MBTiles and add overviews.

$ gdal_translate my_dataset.tif my_dataset.mbtiles -of MBTILES
$ gdaladdo -r average my_dataset.mbtiles 2 4 8 16

Landez

Landez is a Python library that manipulates tiles, builds MBTiles, does tiles compositing and arrange tiles together into single images. The example below fetches tiles from a NYC tile server and generates an MBTiles file for zoom levels 16-18 for an area around Columbia University.

import logging
from landez import MBTilesBuilder

mb = MBTilesBuilder(
tiles_url="https://maps.nyc.gov/xyz/1.0.0/photo/2018/{z}/{x}/{y}.png8",
filepath="nyc-columbia.mbtiles"
)
mb.add_coverage(
bbox=([-73.9737267047167,40.80240696594497,-73.94969411194324,40.815367424893566]),
zoomlevels=[16,17,18]
)
mb.run()

Uploading MBTiles Layers to Fulcrum

You can upload MBTiles files into your Fulcrum account for use on the web and mobile.

  • From the Fulcrum Layers page click the +New button.
  • Select MBTiles as the layer type.
  • Enter a name for the layer. This name will be used in the layer list to toggle the layer's visibility. Description is optional.
  • Click the Choose MBTiles File button and select your file.
  • Click the Start Upload button to upload the file.
  • Select the organization members that will have access to the Layer and click the Create Layer button.

Loading MBTiles Layers Directly

To save time and bandwidth, you can add your offline maps directly to your mobile device. Accessing layers directly is a great alternative to having to upload maps through the web app and then download them to your device, especially in cases where wi-fi/network connectivity may not be reliable.

Android

There are several ways to transfer your MBTiles files onto your Android device, including USB transfer from a computer, downloading from a server, or using an app like Dropbox or Google Drive. Once the file is on your device, you can navigate to Settings > Layers and click the + button to browse the file system and add the file.

iOS

iTunes File Sharing is required to transfer MBTiles files onto your iOS device for use in Fulcrum.

  • Connect your iOS device to your computer via cable and connect to iTunes.
  • Navigate to Settings > File Sharing and click on the Fulcrum icon in the Apps list.
  • Click the Add button to upload the file and it will be transferred to your device and available in the Layers list.
Did this answer your question?