Learn how to display
Click on the polygon graphic to display a pop-up.
In this tutorial, you will learn how to display
Prerequisites
Steps
Create a new pen
- To get started, either complete the Display a map tutorial or
.
Get an access token
You need an
- Go to the Create an API key tutorial and create an
API key with the followingprivilege(s) :
- Privileges
- Location services > Basemaps
- Privileges
- In CodePen, set the
apiKeyproperty on the globalesriConfigvariable to your access token.var esriConfig = {apiKey: "YOUR_ACCESS_TOKEN",};
To learn about other ways to get an access token, go to Types of authentication.
Add modules
-
In a new
<script>at the bottom of the<body>, use$arcgis.import()to add theMap,GraphicandGraphicsLayermodules.The
ArcGIS Maps SDK for JavaScript is available via CDN and npm, but this tutorial is based on CDN. The$arcgis.importglobal function accepts a module path or array of module paths, and returns a promise that resolves with the requested modules. This function can only be used when working with the CDN; otherwise, use the standard import syntax. To learn more about the SDK’s different modules, visit the References page.29 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);</script>4 collapsed lines</body></html>
Add a graphics layer
A
-
Create and add a
GraphicsLayerfor displayinggraphics on a map.29 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });</script>4 collapsed lines</body></html>
Add a point graphic
A point Point and SimpleMarkerSymbol classes are used to create the point graphic.
If you would like to display graphics in a map with a
-
Create a
pointandsimpleMarkerSymbolthat will be used to create aGraphic.42 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};5 collapsed lines</script></body></html> -
Create a
Graphicand set thegeometryandsymbolproperties. TheGraphicclass will autocastpointandsimpleMarkerSymbolwhen it is constructed.Point graphics support a number ofsymbol types such asSimpleMarkerSymbol,PictureMarkerSymbolandTextSymbol. Learn more about symbols in the API documentation.42 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);6 collapsed lines</script></body></html> -
Verify that the point graphic positioned at Point Dume Beach.
Add a line graphic
A line Polyline and SimpleLineSymbol classes are used to create a line graphic.
-
Define the
polylineandsimpleLineSymbolthat will be used to create aGraphic.57 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);// Create a line geometryconst polyline = {type: "polyline",paths: [[-118.821527826096, 34.0139576938577], //Longitude, latitude[-118.814893761649, 34.0080602407843], //Longitude, latitude[-118.808878330345, 34.0016642996246], //Longitude, latitude],};const simpleLineSymbol = {type: "simple-line",color: [226, 119, 40], // Orangewidth: 2,};6 collapsed lines</script></body></html> -
Create a
Graphicand set thegeometryandsymbolproperties. TheGraphicclass will autocast thepolylineandsimpleLineSymbolwhen it is created.Polyline graphics support a number ofsymbol types such asSimpleLineSymbolandTextSymbol. Learn more about symbols in the API documentation.60 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);// Create a line geometryconst polyline = {type: "polyline",paths: [[-118.821527826096, 34.0139576938577], //Longitude, latitude[-118.814893761649, 34.0080602407843], //Longitude, latitude[-118.808878330345, 34.0016642996246], //Longitude, latitude],};const simpleLineSymbol = {type: "simple-line",color: [226, 119, 40], // Orangewidth: 2,};const polylineGraphic = new Graphic({ geometry: polyline, symbol: simpleLineSymbol });graphicsLayer.add(polylineGraphic);6 collapsed lines</script></body></html> -
Verify that the line graphic positioned along Westward Beach.
Add a polygon graphic
A polygon Polygon and SimpleFillSymbol classes are used to create and display a polygon graphic.
-
Define the
polygonandsimpleFillSymbolthat will be used to create aGraphic75 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);// Create a line geometryconst polyline = {type: "polyline",paths: [[-118.821527826096, 34.0139576938577], //Longitude, latitude[-118.814893761649, 34.0080602407843], //Longitude, latitude[-118.808878330345, 34.0016642996246], //Longitude, latitude],};const simpleLineSymbol = {type: "simple-line",color: [226, 119, 40], // Orangewidth: 2,};const polylineGraphic = new Graphic({ geometry: polyline, symbol: simpleLineSymbol });graphicsLayer.add(polylineGraphic);// Create a polygon geometryconst polygon = {type: "polygon",rings: [[-118.818984489994, 34.0137559967283], //Longitude, latitude[-118.806796597377, 34.0215816298725], //Longitude, latitude[-118.791432890735, 34.0163883241613], //Longitude, latitude[-118.79596686535, 34.008564864635], //Longitude, latitude[-118.808558110679, 34.0035027131376], //Longitude, latitude],};const simpleFillSymbol = {type: "simple-fill",color: [227, 139, 79, 0.8], // Orange, opacity 80%outline: { color: [255, 255, 255], width: 1 },};6 collapsed lines</script></body></html> -
Create a
Graphicand set thegeometryandsymbolproperties. TheGraphicclass will autocast thepolygonandsimpleFillSymbolwhen it is created.Polygon graphics support a number ofSymboltypes, such asSimpleFillSymbol,PictureFillSymbol,SimpleMarkerSymbol, andTextSymbol. It is also important to note that outer polygon ring coordinates should be added in clock-wise order, while inner ring coordinates (islands) should be added in counter-clockwise order.78 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);// Create a line geometryconst polyline = {type: "polyline",paths: [[-118.821527826096, 34.0139576938577], //Longitude, latitude[-118.814893761649, 34.0080602407843], //Longitude, latitude[-118.808878330345, 34.0016642996246], //Longitude, latitude],};const simpleLineSymbol = {type: "simple-line",color: [226, 119, 40], // Orangewidth: 2,};const polylineGraphic = new Graphic({ geometry: polyline, symbol: simpleLineSymbol });graphicsLayer.add(polylineGraphic);// Create a polygon geometryconst polygon = {type: "polygon",rings: [[-118.818984489994, 34.0137559967283], //Longitude, latitude[-118.806796597377, 34.0215816298725], //Longitude, latitude[-118.791432890735, 34.0163883241613], //Longitude, latitude[-118.79596686535, 34.008564864635], //Longitude, latitude[-118.808558110679, 34.0035027131376], //Longitude, latitude],};const simpleFillSymbol = {type: "simple-fill",color: [227, 139, 79, 0.8], // Orange, opacity 80%outline: { color: [255, 255, 255], width: 1 },};const polygonGraphic = new Graphic({geometry: polygon,symbol: simpleFillSymbol,});graphicsLayer.add(polygonGraphic);6 collapsed lines</script></body></html> -
Verify that the polygon graphic positioned on Mahou Riviera.
Create a pop-up
You can display a attribute and popupTemplate properties.
-
Define the
popupTemplateandattributesbefore defining thepolygonGraphic.90 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);// Create a line geometryconst polyline = {type: "polyline",paths: [[-118.821527826096, 34.0139576938577], //Longitude, latitude[-118.814893761649, 34.0080602407843], //Longitude, latitude[-118.808878330345, 34.0016642996246], //Longitude, latitude],};const simpleLineSymbol = {type: "simple-line",color: [226, 119, 40], // Orangewidth: 2,};const polylineGraphic = new Graphic({ geometry: polyline, symbol: simpleLineSymbol });graphicsLayer.add(polylineGraphic);// Create a polygon geometryconst polygon = {type: "polygon",rings: [[-118.818984489994, 34.0137559967283], //Longitude, latitude[-118.806796597377, 34.0215816298725], //Longitude, latitude[-118.791432890735, 34.0163883241613], //Longitude, latitude[-118.79596686535, 34.008564864635], //Longitude, latitude[-118.808558110679, 34.0035027131376], //Longitude, latitude],};const simpleFillSymbol = {type: "simple-fill",color: [227, 139, 79, 0.8], // Orange, opacity 80%outline: { color: [255, 255, 255], width: 1 },};const popupTemplate = { title: "{Name}", content: "{Description}" };const attributes = { Name: "Graphic", Description: "I am a polygon" };13 collapsed linesconst polygonGraphic = new Graphic({geometry: polygon,symbol: simpleFillSymbol,});graphicsLayer.add(polygonGraphic);</script></body></html> -
Update the
polygonGraphicto include thepopupTemplateandattributeproperties.99 collapsed lines<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>ArcGIS Maps SDK for JavaScript Tutorials: Add a point, line, and polygon</title><style>html,body {height: 100%;margin: 0;}</style><script>var esriConfig = { apiKey: "YOUR_ACCESS_TOKEN" };</script><!-- Load the ArcGIS Maps SDK for JavaScript from CDN --><script type="module" src="https://js.arcgis.com/5.0/"></script></head><body><arcgis-map center="-118.805, 34.020" zoom="13"><arcgis-zoom slot="top-left"></arcgis-zoom></arcgis-map><script type="module">const [Graphic, Map, GraphicsLayer] = await $arcgis.import(["@arcgis/core/Graphic.js","@arcgis/core/Map.js","@arcgis/core/layers/GraphicsLayer.js",]);const viewElement = document.querySelector("arcgis-map");const graphicsLayer = new GraphicsLayer();viewElement.map = new Map({ basemap: "arcgis/topographic", layers: [graphicsLayer] });const point = {//Create a pointtype: "point",longitude: -118.80657463861,latitude: 34.0005930608889,};const simpleMarkerSymbol = {type: "simple-marker",color: [226, 119, 40], // Orangeoutline: {color: [255, 255, 255], // Whitewidth: 1,},};const pointGraphic = new Graphic({ geometry: point, symbol: simpleMarkerSymbol });graphicsLayer.add(pointGraphic);// Create a line geometryconst polyline = {type: "polyline",paths: [[-118.821527826096, 34.0139576938577], //Longitude, latitude[-118.814893761649, 34.0080602407843], //Longitude, latitude[-118.808878330345, 34.0016642996246], //Longitude, latitude],};const simpleLineSymbol = {type: "simple-line",color: [226, 119, 40], // Orangewidth: 2,};const polylineGraphic = new Graphic({ geometry: polyline, symbol: simpleLineSymbol });graphicsLayer.add(polylineGraphic);// Create a polygon geometryconst polygon = {type: "polygon",rings: [[-118.818984489994, 34.0137559967283], //Longitude, latitude[-118.806796597377, 34.0215816298725], //Longitude, latitude[-118.791432890735, 34.0163883241613], //Longitude, latitude[-118.79596686535, 34.008564864635], //Longitude, latitude[-118.808558110679, 34.0035027131376], //Longitude, latitude],};const simpleFillSymbol = {type: "simple-fill",color: [227, 139, 79, 0.8], // Orange, opacity 80%outline: { color: [255, 255, 255], width: 1 },};const popupTemplate = { title: "{Name}", content: "{Description}" };const attributes = { Name: "Graphic", Description: "I am a polygon" };const polygonGraphic = new Graphic({geometry: polygon,symbol: simpleFillSymbol,attributes: attributes,popupTemplate: popupTemplate,});graphicsLayer.add(polygonGraphic);6 collapsed lines</script></body></html>
Run the app
In CodePen, run your code to display the map.
The map should display all three graphics. When you click on the polygon, it should show a pop-up.
What’s next?
Learn how to use additional SDK features and ArcGIS services in these tutorials: