<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>Visualize data on Mars | Sample | ArcGIS Maps SDK for JavaScript</title>
<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.0/"></script>
<arcgis-zoom slot="top-left"></arcgis-zoom>
<arcgis-navigation-toggle slot="top-left"></arcgis-navigation-toggle>
<arcgis-compass slot="top-left"> </arcgis-compass>
<arcgis-layer-list slot="top-right"></arcgis-layer-list>
const [ElevationLayer, TileLayer, FeatureLayer] = await $arcgis.import([
"@arcgis/core/layers/ElevationLayer.js",
"@arcgis/core/layers/TileLayer.js",
"@arcgis/core/layers/FeatureLayer.js",
const marsElevation = new ElevationLayer({
url: "https://astro.arcgis.com/arcgis/rest/services/OnMars/MDEM200M/ImageServer",
"NASA, ESA, HRSC, Goddard Space Flight Center, USGS Astrogeology Science Center, Esri",
const marsImagery = new TileLayer({
url: "https://astro.arcgis.com/arcgis/rest/services/OnMars/MDIM/MapServer",
copyright: "USGS Astrogeology Science Center, NASA, JPL, Esri",
const cratersLayer = new FeatureLayer({
url: "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/Mars_Nomenclature_Mountains/FeatureServer",
definitionExpression: "type = 'Crater, craters'",
material: { color: [255, 255, 255, 0.1] },
labelPlacement: "above-center",
labelExpressionInfo: { expression: "$feature.NAME" },
color: [255, 255, 255, 0.7],
color: [255, 255, 255, 0.9],
const shadedReliefLayer = new TileLayer({
url: "https://astro.arcgis.com/arcgis/rest/services/OnMars/MColorDEM/MapServer",
copyright: "USGS Astrogeology Science Center, NASA, JPL, ESA, DLR, Esri",
/*****************************************************************
* Get a reference to the Scene component and set it up
*****************************************************************/
const viewElement = document.querySelector("arcgis-scene");
viewElement.spatialReference = {
wkid: 104971, // Mars spatial reference
spatialReference: 104971, // Mars spatial reference
await viewElement.viewOnReady();
// add ground and other layers
viewElement.map.layers.addMany([marsImagery, cratersLayer, shadedReliefLayer]);