What are web maps?
A web map is a JSON object that contains the settings for a map. It it typically stored in ArcGIS Platform where it can be accessed by a number of different applications. Web maps are defined by the Web Map Specification and contain configuration settings for the map extent, basemap, layers, layer styles, pop-ups and more.
An example web map on ArcGIS Online is Parks and Open Space, Trails, and Trailheads in Santa Monica.
Why use web maps?
Web maps can be created in ArcGIS Online and ArcGIS Pro, and displayed in many other applications such as Navigator, Field Maps, Storymaps, Esri’s configurable apps, and apps built with the ArcGIS APIs and SDKs. When an application loads a web map, it automatically loads previously saved configuration settings, making it easy to develop applications and share 2D maps across the ArcGIS platform.
For example, a web map created and stylized to use pop-ups in ArcGIS Online can be consumed by a REST API request, and then displayed on a web page with the ArcGIS API for JavaScript or imported into ArcGIS Pro.
The Web Map Specification
The Esri Web Map Specification is a JSON specification that defines the structure and contents of a web map for sharing, creating, editing, visualizing, and consuming web maps across the entire ArcGIS Platform.
As JSON files, web maps can be hosted on an ArcGIS Server and consumed with the REST API. Technically, web maps are Content Items stored in ArcGIS Platform, ArcGIS Online, or ArcGIS Enterprise.
Every web map has a unique item ID, and may be made public or restricted to certain groups and users.
For example, the Santa Monica web map is public and has the unique ID: 6712da5c872c44deaf24499e6f6c2d2b
.
You can view this web map in JSON format by making a REST API Content Item operation request with the following URL:
https://www.arcgis.com/sharing/rest/content/items/6712da5c872c44deaf24499e6f6c2d2b/data
The truncated JSON response for this REST call is below.
{
"operationalLayers": [
{
"id": "Boundary_1356",
"layerType": "ArcGISFeatureLayer",
"url": "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Boundary/FeatureServer/0",
"visibility": true,
"opacity": 1,
"title": "Boundary",
"itemId": "30cf3b4c11c5408d87f255ba4e9aa611",
"disablePopup": true
},
{
"id": "Parks_and_Open_Space_2992",
"layerType": "ArcGISFeatureLayer",
"url": "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Parks_and_Open_Space/FeatureServer/0",
"visibility": true,
"opacity": 0.51,
"title": "Parks and Open Space",
"itemId": "f2ea5d874dad427294641d2d45097c0e",
"layerDefinition": {
"drawingInfo": {
"renderer": {
"visualVariables": [
{
"type": "sizeInfo",
"target": "outline",
"expression": "view.scale",
"valueExpression": "$view.scale",
"stops": [
{
"size": 1.5,
"value": 9501
},
/* ... */
]
}
],
"type": "uniqueValue",
"field1": "TYPE",
"uniqueValueInfos": [
{
"value": "Local Park",
"symbol": {
"color": [
158,
85,
156,
255
],
"outline": {
"color": [
153,
153,
153,
128
],
"width": 0.75,
"type": "esriSLS",
"style": "esriSLSSolid"
},
"type": "esriSFS",
"style": "esriSFSSolid"
},
"label": "Local Park"
},
/* ... */
]
}
},
"minScale": 4622325,
"maxScale": 0
},
"popupInfo": {
"title": "Parks_and_Open_Space",
"fieldInfos": [
{
"fieldName": "FID",
"label": "FID",
"isEditable": false,
"tooltip": "",
"visible": true,
"format": {
"places": 0,
"digitSeparator": true
},
"stringFieldOption": "textbox"
},
/* ... */
],
"description": null,
"showAttachments": true,
"mediaInfos": []
}
},
{
"id": "Trails_7558",
"layerType": "ArcGISFeatureLayer",
"url": "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Trails/FeatureServer/0",
"visibility": true,
"opacity": 1,
"title": "Trails",
"layerDefinition": {
"drawingInfo": {
"renderer": {
"type": "uniqueValue",
"field1": "USE_BIKE",
"uniqueValueInfos": [
{
"value": "Yes",
"symbol": {
"color": [
26,
26,
26,
255
],
"width": 0.9,
"type": "esriSLS",
"style": "esriSLSDot"
},
"label": "Bikes"
},
{
"value": "No",
"symbol": {
"color": [
230,
0,
0,
255
],
"width": 0.9,
"type": "esriSLS",
"style": "esriSLSDot"
},
"label": "No Bikes"
}
]
}
}
},
"popupInfo": {
"title": "Trails_0",
"fieldInfos": [
{
"fieldName": "OBJECTID",
"label": "OBJECTID",
"isEditable": true,
"tooltip": "",
"visible": false,
"format": {
"places": 0,
"digitSeparator": true
},
"stringFieldOption": "textbox"
},
/* ... */
],
"description": null,
"showAttachments": true,
"mediaInfos": []
}
},
{
"id": "Trailheads_8053",
"layerType": "ArcGISFeatureLayer",
"url": "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Trailheads/FeatureServer/0",
"visibility": true,
"opacity": 1,
"title": "Trailheads",
"layerDefinition": {
"drawingInfo": {
"renderer": {
"type": "simple",
"symbol": {
"angle": 0,
"xoffset": 0,
"yoffset": 0,
"type": "esriPMS",
"url": "http://static.arcgis.com/images/Symbols/NPS/npsPictograph_0231b.png",
"imageData": "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",
"contentType": "image/png",
"width": 10.5,
"height": 10.5
}
}
}
},
"popupInfo": {
"title": "Trailheads",
"fieldInfos": [
{
"fieldName": "OBJECTID",
"label": "OBJECTID",
"isEditable": true,
"tooltip": "",
"visible": false,
"format": {
"places": 0,
"digitSeparator": true
},
"stringFieldOption": "textbox"
},
/* ... */
],
"description": null,
"showAttachments": true,
"mediaInfos": []
}
}
],
"baseMap": {
"baseMapLayers": [
{
"id": "VectorTile_1818",
"type": "VectorTileLayer",
"layerType": "VectorTileLayer",
"title": "World Topographic Map",
"styleUrl": "https://www.arcgis.com/sharing/rest/content/items/86d5ed4b6dc741de9dad5f0fbe09ae95/resources/styles/root.json",
"itemId": "86d5ed4b6dc741de9dad5f0fbe09ae95",
"visibility": true,
"opacity": 1
}
],
"title": "World Topographic Map"
},
"spatialReference": {
"wkid": 102100
},
"authoringApp": "WebMapViewer",
"authoringAppVersion": "7.3",
"version": "2.15",
"applicationProperties": {
"viewing": {
"routing": {
"enabled": true
},
"basemapGallery": {
"enabled": true
},
"measure": {
"enabled": true
}
}
}
}
Creating a web map
While you can create web maps with your favorite text editor, Esri provides many tools to quickly create web maps.
ArcGIS Online
The easiest way to author a web map is to use ArcGIS Online's Map Viewer application.
You can refer to the ArcGIS Online documentation or the create a web map ArcGIS tutorial to get started.
ArcGIS Pro
ArcGIS Pro supports authoring and sharing web maps. Refer to the author a web map topic in the ArcGIS Pro help.
ArcGIS API for JavaScript
See the Save a web map sample. Authoring web maps with the ArcGIS API for JavaScript is planned for a future release.
ArcGIS Runtime SDKs
The ArcGIS Runtime SDKs allow you to create and share web maps. Refer to the documentation of each individual SDK to get started.
Create and save a web map in Android, iOS, Java, .NET, and Qt.
Displaying a web map
All ArcGIS APIs and SDKs can display web maps. Because they all share a common reference with the Web Map Specification, the map will render the same on all devices.
ArcGIS API for JavaScript
Refer to the display a web map tutorial for a short walk-through on how to display a web map with the ArcGIS API for JavaScript.
ArcGIS Runtime SDKs
All ArcGIS Runtime SDKs have the capability to render a web map. Refer to the ArcGIS tutorials for a short walk-through on how to display a web map in your selected API.
Display a web map in Android, iOS, Java, .NET, or Qt.
ArcGIS Configurable apps
You can also display web maps using app templates and builders in ArcGIS Online.
To create an application, see the tutorial to create a map in ArcGIS Online.
Alternatively, browse through all available configurable apps.