Skip to main content

VectorBasemapStyle

Access Esri's professionally designed vector basemap styles through the ArcGIS Basemaps API.

Interactive Demo

Switch between different Esri vector basemap styles with your API key

Quick Start

import { VectorBasemapStyle } from 'esri-gl';

// Simple way — static helper
VectorBasemapStyle.applyStyle(map, 'arcgis/streets', { apiKey: 'YOUR_API_KEY' });

// Advanced way — instance API
const basemap = new VectorBasemapStyle('arcgis/streets', { apiKey: 'YOUR_API_KEY' });
map.setStyle(basemap.styleUrl);

Static Method

VectorBasemapStyle.applyStyle(map, styleName, auth)
ParameterTypeDescription
mapMapMapLibre map instance
styleNameEsriBasemapStyleNameStyle identifier (see table below)
authVectorBasemapStyleAuthOptionsAuthentication options ({ apiKey } or { token })

Constructor

new VectorBasemapStyle(styleId, auth)
ParameterTypeDescription
styleIdEsriBasemapStyleNameStyle identifier
authVectorBasemapStyleAuthOptionsAuthentication options

Properties

PropertyTypeDescription
styleUrlstringFully constructed style URL for MapLibre
styleIdstringCurrent style identifier
authobjectCurrent auth configuration

Methods

MethodReturnsDescription
setStyle(styleId)voidUpdates the style identifier and regenerates styleUrl

Available Styles

Style IDDescription
arcgis/streetsStandard street map
arcgis/topographicTopographic map with terrain
arcgis/navigationHigh-contrast navigation style
arcgis/streets-reliefStreets with hillshade relief
arcgis/light-grayLight gray reference map
arcgis/dark-grayDark gray reference map
arcgis/oceansBathymetric ocean mapping
arcgis/imagerySatellite imagery basemap
arcgis/streets-nightDark-themed street map

Legacy colon-format identifiers (e.g., ArcGIS:Streets) are also accepted for backwards compatibility.

Examples

applyStyle with Options

// With language and worldview
VectorBasemapStyle.applyStyle(map, 'arcgis/navigation', {
apiKey: 'YOUR_API_KEY',
language: 'es',
worldview: 'FRA'
});

// Token authentication
VectorBasemapStyle.applyStyle(map, 'arcgis/dark-gray', { token: 'YOUR_TOKEN' });

Dynamic Style Switching

const styles = ['arcgis/streets', 'arcgis/imagery', 'arcgis/topographic', 'arcgis/dark-gray'];
let currentIndex = 0;

function switchStyle() {
VectorBasemapStyle.applyStyle(map, styles[currentIndex], { apiKey: 'YOUR_API_KEY' });
currentIndex = (currentIndex + 1) % styles.length;
}

Instance API

const basemap = new VectorBasemapStyle('arcgis/streets', { apiKey: 'YOUR_API_KEY' });
map.setStyle(basemap.styleUrl);

// Change style later
basemap.setStyle('arcgis/dark-gray');
map.setStyle(basemap.styleUrl);