Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time
<!DOCTYPE html>
<html lang="en">
<title>All built-in icon templates as symbols - Azure Maps Web SDK Samples</title>
<meta charset="utf-8" />
<link rel="shortcut icon" href="/favicon.ico"/>
<meta http-equiv="x-ua-compatible" content="IE=Edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="This sample shows all the built-in icon templates rendered on a symbol layer." />
<meta name="keywords" content="Microsoft maps, map, gis, API, SDK, image template, icon templates" />
<meta name="author" content="Microsoft Azure Maps" />
<!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
<link rel="stylesheet" href="" type="text/css" />
<script src=""></script>
<script type='text/javascript'>
var map;
function GetMap() {
//Point the Azure Maps domain to the US Azure Gov Cloud domain.
//Initialize a map instance.
map = new atlas.Map('myMap', {
zoom: 4,
center: [20, -10],
style: 'blank',
view: 'Auto',
//Add authentication details for connecting to Azure Maps.
authOptions: {
//Use Azure Active Directory authentication.
authType: 'anonymous',
clientId: 'c9f2f391-13f1-407b-a4a5-f0a241bacfbf', //Your Azure Active Directory client id for accessing your Azure Maps account.
getToken: function (resolve, reject, map) {
//URL to your authentication service that retrieves an Azure Active Directory Token.
var tokenServiceUrl = '';
fetch(tokenServiceUrl).then(r => r.text()).then(token => resolve(token));
//Alternatively, use an Azure Maps key. Get an Azure Maps key at NOTE: The primary key should be used as the key.
//authType: 'subscriptionKey',
//subscriptionKey: '<Your Azure Maps Key>'
//Wait until the map resources are ready.'ready', function () {
datasource = new atlas.source.DataSource();
//Get all icon templates available in the map control.
var keys = atlas.getAllImageTemplateNames();
//Create a grid of the HTML markers, each using a different icon template.
var cols = 6;
var rows = Math.ceil(keys.length / cols);
for (var row = 0; row < rows; row++) {
for (var col = 0; col < cols; col++) {
var idx = cols * row + col;
if (idx < keys.length) {
createIcon(keys[idx], row, col);
//Create a symbol layer and render each icon template as a symbol and it's id below it.
map.layers.add(new atlas.layer.SymbolLayer(datasource, null, {
iconOptions: {
image: ['get', 'iconId'],
allowOverlap: true,
ignorePlacement: true
textOptions: {
textField: ['get', 'iconId'],
offset: [0, 1.2],
allowOverlap: true,
ignorePlacement: true
function createIcon(id, row, col) {
map.imageSprite.createFromTemplate(id, id, 'teal', '#fff', 1).then(function () {
datasource.add(new[8 * col, -3.5 * row]), {
iconId: id
<body onload="GetMap()">
<div id="myMap" style="position:relative;width:100%;min-width:290px;height:600px;background-color:gray"></div>
<fieldset style="width:calc(100% - 30px);min-width:290px;margin-top:10px;">
<legend><h1 style="font-size:16px">All built-in icon templates as symbols</h1></legend>
This sample shows all the built-in icon templates rendered on a symbol layer.