Collecting GPS data
There are three field types for collecting GPS data in SurveyCTO forms:
- geopoint - for collecting one GPS position at a time, either explicitly (with the enumerator's cooperation) or invisibly. (Can collect multiple GPS positions in a repeat group.)
- geoshape - for drawing boundaries on a map. (Always creates a closed polygon.)
- geotrace - for automatically tracing a path, generally by walking or driving. (Can save as closed polygon or open polyline.)
Click any field type above to see more details about that particular field type, or see below for general guidance on collecting GPS data using SurveyCTO.
Mobile GPS performance tips
The first time you try to acquire a GPS location with a new device or in a new country, the device might take up to an hour to find the proper satellites. Leave the device for a while, so that it can work. Once it finds the satellites, it should become much faster from then on.
Your device may still take a little while to capture an accurate location – especially after powering down or rebooting. If you want your form's users to be able to more quickly capture accurate GPS positions, you can configure SurveyCTO Collect to "pre-warm" the device's GPS unit at the start of any form that captures GPS positions. This will consume some extra battery power at the beginning of the form, but it will make it more likely that GPS positions captured later in the form can be captured quickly. To pre-warm GPS, go to the Collect main menu, open the three-dot menu in the upper-right, select Admin Settings, scroll down to the bottom, and select one of the Pre-warm device location options; you can choose to pre-warm more or less aggressively (for greater accuracy and more time, or for lesser accuracy and less time, depending on how much battery you want to spend on pre-warming).
Advanced offline mapping
The geoshape and geotrace field types involve interacting with a map, as does the geopoint field type with the "maps" or "placement-map" appearance. On Android, this generally requires a working connection to the Internet, so that map tiles can be downloaded on-the-fly to cover the necessary geography. It is possible to pre-load all of the necessary map tiles onto Android devices, though, and configure them to be able to use those tiles fully offline – but a warning: it's a slightly complex, technical process. You will likely need some level of technical GIS training to be able configure and manage offline maps support.
Required: offline map tiles in raster-based MBTile files
SurveyCTO's mapping features include support for the offline presentation of layers using tiled map data. These layers can be loaded from the map interface, and their features will be overlaid onto the mapping engine's "basemap" – without the need for an Internet connection. The layers themselves can contain any geospatial data that you are already working with or are interested in presenting, whether that be high-resolution satellite imagery, population heatmaps, or wireframe drawings.
SurveyCTO Collect supports the open-source MBTile format, which provides an efficient specification for storing raster- and vector-based map tiles in a SQLite database. Please note that, at this time, Collect only supports raster-based MBTile files: vector-based files will unfortunately not work.
Raster-based MBTile files can be created using open-source tools such as TileMill, as well as through commercial products such as Mapbox Studio or MapTiler. The MBTile specification's website also maintains an "Implementations" page, which lists software that is known to produce valid MBTile files. (Procurement or creation of the actual MBTiles files is beyond the scope of the help available here in SurveyCTO.)
Loading raster-based MBTile files onto devices
In order to make your offline map tiles available on devices, you must manually copy or upload your MBTile files to a subdirectory within SurveyCTO Collect's "layers" directory, which exists on any device that has opened SurveyCTO Collect at least once. For each layer you want available to users of Collect, create a subdirectory under
/Android/data/com.surveycto.collect.android/files/config/layers, and give it a user-friendly name since users will choose which layer to use by choosing the directory name. So, for example, tiles saved in a directory named "
/Android/data/com.surveycto.collect.android/files/config/layers/Northeastern region satellite" would appear to users as "Northeastern region satellite".
New file path
The layers directory moved from
/Android/data/com.surveycto.collect.android/files/config/layers in the 2.70.2 release of Collect.
See the Collect download page to update your devices to the latest version.
Configuring offline mapping options
SurveyCTO Collect has configuration options for offline mapping – but they're hidden by default. To un-hide them, go to the Collect main menu, open the three-dot menu, and select Admin Settings; from there, scroll down to the "User Can Access Change Settings Items" section, continue scrolling to the "Advanced mapping options" item, and place a checkmark in the box labeled "Uncheck to hide from General Settings". Then if you go back to the main Collect menu, click the menu button, and choose General Settings, you will be able to scroll down to find the "Advanced mapping options" section. That's where you configure the device's offline mapping options, including:
- Mapping engine - for choosing between Google Maps and OpenStreetMaps presentations. Google Maps is the default selection, and we recommend that you keep this setting unchanged unless you have a compelling reason to use OpenStreetMaps or one of their specific map styles.
- Basemaps - for choosing the style of the basemaps to use. Your options here will depend on the mapping engine you choose; for Google Maps: Streets (default road-map view), Satellite (Google Earth satellite view), Terrain (physical topography), or Hybrid (mixture of the streets and satellite styles); for OpenStreetMaps: OSM Streets (default road-map view), USGS National Map Topo (U.S.-focused, quadrangle-format), USGS National Map Sat (U.S.-focused, Landsat-derived), Stamen Terrain (hill shading, natural vegetation colors), CartoDB Positron (light-colored, designed for data visualization), or CartoDB Dark Matter (dark-colored, designed for data visualization).
- Offline map tiles - to remind you that offline map tiles should be loaded into subdirectories of the
/Android/data/com.surveycto.collect.android/files/config/layersdirectory (discussed further above).
Using offline map layers
Once you've loaded your .mbtiles files into one or more subdirectories off of the
/Android/data/com.surveycto.collect.android/files/config/layers directory, users in a map view for a geoshape, geotrace, or geopoint field will be able to click the "stack of square sheets" button to select the appropriate map layer.
Tips for offline maps
Following are additional details and tips for succeeding with offline map tiles:
- If you were involved with the creation of your MBTile files, you might already be familiar with a particular basemap that was displayed by the creation software to help you position your tiles. The creation software's basemap was only used as a visual reference; internally, the software translated your arrangement to geospatial coordinates, which were then associated with each individual tile in your file. Because of this, you may notice that our interface's basemap does not change to the presentation you are familiar with from the MBTile creation software. This is expected behavior: MBTile files rely upon the mapping engine to supply the basemap.
- MBTile files store the zoom levels at which the layer should become visible on the basemap. This metadata specifies both the highest zoom level (when the layer first becomes visible) and the lowest zoom level (when the layer stops being visible). Depending on how the MBTile files were created, these zoom-level rules might not be intuitive to new users. For example, if an MBTile file specifies the highest zoom level too low, then a user might be positioned directly over where the layer should appear, but technically be one zoom level too far away – and the layer will not be visible. Similarly, if an MBTile file specifies the lowest zoom level too high, then a user might be positioned directly over where the layer should appear, but technically be one zoom level too close – and again, the layer will not be visible. Finally, if the zoom-level range is too narrow, the user might have difficulty finding the layer, unless they first pan to the precise area where it should appear, and slowly advance zoom levels until it comes into view. Because of these considerations, when using a map tile for the first time we recommend that you deliberately pan to the correct area first, slowly zoom in until the layer is visible, and subsequently investigate at what zoom levels this layer will be visible.
- When, in a map, you first select a layer to show, the layer might not be immediately loaded by the mapping engine. In order to force a refresh of the basemap and load the layer, zoom one level in or out on the map. After zooming in or out, the layer should become visible, and you can then return to your previous zoom level.
- Complex MBTile files with high-resolution imagery may contain several gigabytes of data, and this may contribute to significant delays in the layer appearing on first load. Additionally, to a lesser extent, there may be some delays with individual tiles loading as you pan and zoom around the layer.
Custom tiles for online use
Finally, please note that the instructions above assume that you would only want to adjust the mapping engine or load custom tiles for offline mapping. However, you can follow all of these instructions also in online settings, if you want to use OpenStreetMap maps and/or your own custom map layers. The instructions are the same either way.