Self-Hosted / Online Basemap
The outdoor area around your indoor property is filled by an online basemap. By default the SDK uses Carto's CDN; a provider-side change means apps on SDK versions before 26.8.1 may show a watermark on these tiles — upgrading to 26.8.1 resolves it with no app change. Since 26.7.1 you can also point the SDK at your own tiles instead — self-hosted OpenMapTiles vector tiles or a custom raster provider — or disable the online fallback entirely.
Availability
New in iOS SDK 26.7.1. Configuration is on MapstedMapCustomParameters (import MapstedMap). Set these values before you set up the map SDK — they are read during initialization.
Choosing a provider
onlineBasemapProvider selects the source. OnlineBasemapProvider has five cases:
| Case | Source | Requires |
|---|---|---|
.cartoCdn |
Carto's public CDN raster (default) | SDK 26.8.1+ for an unwatermarked map |
.osmDirect |
tile.openstreetmap.org raster |
Respect the OSM usage policy (low/medium volume) |
.openmaptilesSelfHosted |
Your self-hosted OpenMapTiles vector tiles | onlineBasemapVectorTileUrl + onlineBasemapStyleAsset |
.customRaster |
Your own raster tile CDN | onlineBasemapRasterTileUrl |
.none |
Disable the online fallback entirely | — |
Self-hosted OpenMapTiles (vector)
Point the SDK at your vector tile endpoint and bundle a Carto-compatible style asset (a .zip in your app bundle):
import com.mapsted.map.views.MapParams;
// Set these before you set up the map SDK; they are read during initialization.
MapParams.onlineBasemapProvider = MapParams.OnlineBasemapProvider.OPENMAPTILES_SELF_HOSTED;
MapParams.onlineBasemapVectorTileUrl = "https://your-host.example.com/tiles/{z}/{x}/{y}.pbf";
MapParams.onlineBasemapStyleAsset = "styles/your-style.json";
import MapstedMap
let params = MapstedMapCustomParameters.shared
params.onlineBasemapProvider = .openmaptilesSelfHosted
params.onlineBasemapVectorTileUrl = "https://tiles.example.com/data/v3/{z}/{x}/{y}.pbf"
params.onlineBasemapStyleAsset = "my-basemap-style.zip" // in your app bundle
Custom raster provider
If you serve raster tiles from your own CDN, use .customRaster with a {z}/{x}/{y} URL template:
import com.mapsted.map.views.MapParams;
MapParams.onlineBasemapProvider = MapParams.OnlineBasemapProvider.CUSTOM_RASTER;
MapParams.onlineBasemapRasterTileUrl = "https://your-host.example.com/tiles/{z}/{x}/{y}.png";
import MapstedMap
let params = MapstedMapCustomParameters.shared
params.onlineBasemapProvider = .customRaster
params.onlineBasemapRasterTileUrl = "https://tiles.example.com/{z}/{x}/{y}.png"
Disabling the online basemap
To render only the Mapsted property with no online fallback around it:
import com.mapsted.map.views.MapParams;
// Disable the online basemap entirely (indoor property layers still render).
MapParams.onlineBasemapProvider = MapParams.OnlineBasemapProvider.NONE;
import MapstedMap
MapstedMapCustomParameters.shared.onlineBasemapProvider = .none
Related: the property style asset
styleAssetFileName names the style .zip (in your app bundle) used to render the property and building layers — separate from the online basemap. It defaults to the SDK's bundled style:
import com.mapsted.map.views.MapParams;
// The property style asset used for the online basemap style.
MapParams.onlineBasemapStyleAsset = "styles/your-style.json";
import MapstedMap
MapstedMapCustomParameters.shared.styleAssetFileName = "mapsted47.zip"
Tips & Considerations
- Set every value before SDK setup.
MapstedMapCustomParameters.sharedis read during map initialization; changing it afterward has no effect on the current session. - Match the required properties to the provider.
.openmaptilesSelfHostedneeds bothonlineBasemapVectorTileUrlandonlineBasemapStyleAsset;.customRasterneedsonlineBasemapRasterTileUrl. A provider with its URL unset falls back to the sparse world basemap. .osmDirectis subject to the OpenStreetMap tile usage policy — use it only for low-to-medium volume, and prefer a self-hosted or custom provider in production.- The online basemap is the outdoor fill, distinct from your indoor property style (
styleAssetFileName) and from the base-map theme (see Base-Map Theme).