Fulcrum supports XYZ tiles in the standard Web Mercator projection on both the web and mobile platforms. This allows you to include custom external basemaps and GIS overlays from a variety of sources. If you want to include features like tax parcel boundaries or water mains to help provide location context while you are collecting data, this is a great solution.
The guide below walks you through the steps required to add map layers from a variety of popular web mapping and GIS platforms. Be aware that API's can change often and without warning, so these techniques are not guaranteed to work forever. Be sure also to check the terms of service and usage restrictions for any service you want to use and sign up for your own API tokens where applicable.
ESRI ArcGIS
Many governments and organizations manage their geospatial data in ESRI's ArcGIS ecosystem. ArcGIS supports a variety of formats, but if the data is available via the REST API as a cached map service with a Web Mercator projection, it should be compatible with Fulcrum. Dynamic services are not directly consumable in Fulcrum.
The New York Statewide Digital Orthoimagery Program (NYSDOP) has been producing orthoimagery annually for various portions of the state since 2000. The state makes this imagery available via their Discover GIS Data NY program, which includes a web application and direct access to their cached map services.
Loading these services into Fulcrum is fairly straightforward:
Find the MapServer endpoint for the service you are interested in. In my case I'm looking at https://orthos.dhses.ny.gov/ArcGIS/rest/services/2018/MapServer/.
After confirming that the service is compatible: "Single Fused Map Cache", Spatial Reference: 102100 (Web Mercator), 256x256px, we can proceed.
The URL template is:
https://orthos.dhses.ny.gov/arcgis/rest/services/2018/MapServer/tile/{z}/{y}/{x}
Proceed with Adding XYZ Tile Layers to Fulcrum.
MapTiler Cloud
MapTiler offers a variety of tools and services for building and hosting maps. MapTiler Desktop can be used to convert data and maps into tiles, which can be self-hosted, hosted on the MapTiler Cloud, or MBTiles files, which can be directly uploaded to Fulcrum.
Log in to MapTiler Cloud and click on Maps.
Click on the map you want to use and scroll down to the Raster tiles section below the map.
Copy the 256x256 raster PNG URL:
https://api.maptiler.com/maps/basic/256/{z}/{x}/{y}.png?key={api_key}.
Proceed with Adding XYZ Tile Layers to Fulcrum.
Mapbox
Mapbox supports directly accessing raster tile endpoints for Mapbox Studio styles. This means you can design custom maps in Mapbox Studio and access them directly in Fulcrum!
From the Styles page in Mapbox Studio, click on one of your styles or create a new style.
Click the Share button in the upper right corner of the page.
Under Develop, click the Third party tab and select Fulcrum from the dropdown list.
Copy the Integration URL and proceed with Adding XYZ Tile Layers to Fulcrum.
CARTO
CARTO supports direct tile access via Named Maps. In order to load your CARTO layers into Fulcrum, you must first create a Named Map. This cannot currently by done in the CARTO Editor, so you have to manually create it using the Named Maps API.
Create a JSON template (template.json):
{
"version": "0.0.1",
"name": "tax_parcels",
"layergroup": {
"layers": [{
"type": "cartodb",
"options": {
"cartocss_version": "2.1.1",
"cartocss": "#tax_parcels{polygon-opacity: 0;line-color: #D6301D;line-width: 1.5;line-opacity: 1;}",
"sql": "select * from tax_parcels"
}
}]
}
}
Copy
Use the command line or terminal to POST that template to the named maps API:
curl -X POST \
-H 'Content-Type: application/json' \
-d @template.json \
'https://{username}.carto.com/api/v1/map/named/?api_key={api_key}'
Copy
Use the following URL template in a Fulcrum Tile XYZ layer:
https://{username}.carto.com/api/v1/map/named/tax_parcels/all/{z}/{x}/{y}.png
Proceed with Adding XYZ Tile Layers to Fulcrum.