Documentation → How-to guides
Import data from a service
Most public spatial data lives behind an ArcGIS REST or WFS endpoint rather than as a file. mapbench fetches from those directly, so you never download a Shapefile, unzip it and upload it again — and it can re-fetch later to pick up the publisher's changes.
Before you start
- The service URL. For ArcGIS that is a
…/FeatureServer/3or…/MapServer/3layer URL, or the service root ending in/FeatureServer. For WFS it is the base endpoint you would callGetCapabilitieson. - The service must be reachable from the public internet and require no sign-in. mapbench sends no credentials, and refuses to fetch private or internal addresses at all.
Import one ArcGIS layer
- Open Datasets → New → From ArcGIS.
- Paste the URL and choose Load layers. mapbench reads the service's own metadata and lists what it publishes.
- Pick the layer you want. The name and layer name are filled in from the service — adjust the display Name if you like, but treat the Layer name as final: it is baked into the tiles and cannot be changed afterwards.
- Choose Fetch & Queue.
From there it is an ordinary dataset — it queues, tiles, and turns Ready. Pasting a layer URL directly skips the picker and loads that one layer.
Import a whole ArcGIS service
Paste the service root instead of a layer URL and mapbench lists every feature layer it contains, with a checkbox each. Select the ones you want and import them in one go — each becomes its own dataset, named from the service, and they are grouped into a folder together.
There is a ceiling on how many layers one import may fan out to; a service larger than that is refused rather than quietly queuing hundreds of tiling jobs. Formats, limits and quotas states the number for this deployment. If you hit it, import in batches.
Import from WFS
- Open Datasets → New → From WFS.
- Paste the base endpoint URL — not a full
GetFeaturerequest — and load its capabilities. - Pick a feature type from the list, name it, and choose Fetch & Queue.
Paste an ArcGIS URL into the WFS box by mistake and mapbench notices, switches to From ArcGIS and loads it there rather than failing on XML it was never going to get.
Attribution is captured for you — on ArcGIS only
An ArcGIS layer's copyrightText is read during the import and
written into the dataset's attribution, so a credit you are
obliged to publish is on file before you build anything on top of it. It only
ever fills an empty attribution: a reimport never overwrites something
you typed.
WFS has no equivalent field, so for a WFS import — and for uploaded files — attribution and licence are yours to record under Edit dataset. The share page publishes the credit in three places, and it can only publish one you gave it.
Refreshing an imported dataset
Choose Reprocess — from the processing panel, or Save & Reprocess in Edit dataset. For a dataset that came from a service, that re-fetches from the source and rebuilds the tiles in place.
Reprocessing keeps the dataset's identity: the same id, the same styling, the same place in every map that uses it. Published share links keep working and start serving the new data. Nothing about a reprocess is scheduled — it happens when you ask for it.
Already-tiled PMTiles cannot be reprocessed. There is no source to go back to — the file you uploaded is the tiles. Upload a new one instead.
Importing part of a layer
A large ArcGIS layer can be narrowed at import time rather than pulled whole: an attribute filter, a subset of fields, a bounding box, or a cap on the number of features. Those filters can also be revised afterwards and re-fetched in place, so a mis-filtered dataset is corrected without recreating it.
These are available through the API and to a connected agent — ask Claude to
"import only the features where STATUS = 'Active'" — and are not in
the web form. See Connect Claude to mapbench.
When an import fails
- “Not a feature layer”
- The URL points at a service root, a map image layer, or a raster. mapbench imports vector feature layers. Load the service root and pick a layer from the list instead of guessing at the URL.
- The service answered with an error
- mapbench distinguishes the two cases deliberately. If the message says your URL is wrong, fix the URL; if it says the service is unreachable or returned an error, the problem is at their end and retrying later is the right move. Re-probing the same service four different ways is not.
- “Response too large”
- The service's metadata response exceeded what mapbench will read into memory. This usually means a service root with an enormous layer list — request a specific layer URL instead.
- The import worked but the dataset is empty
- Check the layer in the publisher's own viewer. A layer that is filtered to nothing, or served from a broken back end, imports successfully with zero features — mapbench tiles what it is given.
- It refuses to fetch my internal URL
- Deliberate, and not configurable per user: mapbench refuses to fetch private, loopback and link-local addresses, because it would otherwise be a way to make the server read things on its own network. Publish the data somewhere reachable, or upload it as a file.
See also
- Your first map — the end-to-end pass.
- Formats, limits and quotas — the ceilings named above.
- Query and model data with SQL — what to do with the layers once they are in.