Learn how to create and display a scene with a basemap layer and elevation.
A scene contains layers of geographic data that are displayed in 3D. Scenes allow you to display real-world visualizations of landscapes, objects, buildings, and other 3D objects.
In this tutorial, you will create and display a scene of the Santa Monica Mountains in California using the topographic basemap layer and the world elevation layer. The scene and code will be used as the starting point for other 3D tutorials.
Prerequisites
Steps
Create a new pen
- Go to CodePen to create a new pen for your mapping application.
Add basic HTML
Define a basic HTML page.
-
In CodePen > HTML, add HTML to create a basic page.
Use dark colors for code blocks <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no"> <title>ArcGIS Maps SDK for JavaScript Tutorials: Display a scene</title> </head> <body> </body> </html>
Add CSS
- In CodePen > HTML, add CSS to set the map to use the full width and height of the browser.
Use dark colors for code blocks <style> html, body { padding: 0; margin: 0; height: 100%; width: 100%; } </style>
Get an access token
You need an access token with the correct privileges to access the location services used in this tutorial.
- Go to the Create an API key tutorial and create an API key with the following privilege(s):
- Privileges
- Location services > Basemaps
- Privileges
- In CodePen, set
esri
to your access token.Config.api Key Use dark colors for code blocks <!-- The esriConfig variable must be defined before adding the other esri libraries --> <script> var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" }; </script>
To learn about other ways to get an access token, go to Types of authentication.
Add references
- In the
<head
tag, add references to the ArcGIS core library, its CSS stylesheet, and the @arcgis/map-components package.> Use dark colors for code blocks <!-- Load Calcite components from CDN --> <link rel="stylesheet" type="text/css" href="https://js.arcgis.com/calcite-components/2.13.2/calcite.css" /> <script type="module" src="https://js.arcgis.com/calcite-components/2.13.2/calcite.esm.js"></script> <!-- Load the ArcGIS Maps SDK for JavaScript from CDN --> <link rel="stylesheet" href="https://js.arcgis.com/4.31/esri/themes/light/main.css" /> <script src="https://js.arcgis.com/4.31/"></script> <!-- Load Map components from CDN--> <script type="module" src="https://js.arcgis.com/map-components/4.31/arcgis-map-components.esm.js" ></script>
Create a scene
Use the Scene
component to set the basemap layer, elevation surface, and camera attributes. Scenes use the information in the elevation layer to determine the ground
(surface) height that will be rendered on the map.
The camera's position, specified by camera-position
attribute is the point from which the visible extent of the scene is determined. The camera-tilt
attribute refers to the number of degrees from the surface that the camera is pointed.
- In the
<body
tag, add the> <arcgis-scene
component and specify the> basemap
,ground
,camera-position
andcamera-tilt
attributes.Use dark colors for code blocks <body> <arcgis-scene basemap="arcgis/topographic" ground="world-elevation" camera-position="-118.808, 33.961, 2000" camera-tilt="75"> </arcgis-scene> </body>
Add navigation toggle and zoom components
- Inside the
<arcgis-scene
component, add the> <arcgis-zoom
and> <arcgis-navigation-toggle
components and specify their position.>
<arcgis-scene basemap="arcgis/topographic" ground="world-elevation"
camera-position="-118.808, 33.961, 2000" camera-tilt="75">
<arcgis-zoom position="top-left"></arcgis-zoom>
<arcgis-navigation-toggle position="top-left"></arcgis-navigation-toggle>
</arcgis-scene>
Run the app
In CodePen, run your code to display the map.
The scene view should display the topographic basemap layer and elevation layer for an area of the Santa Monica Mountains in California.
What's next?
Learn how to use additional API features and ArcGIS services in these tutorials: