From 17aac28e7e9257734cc4eb8e807b970c5feec76f Mon Sep 17 00:00:00 2001 From: Manushi Majumdar Date: Fri, 23 Jan 2026 02:55:38 -0500 Subject: [PATCH 1/3] intro to storymaps guide 1/4 --- .../introduction-to-storymaps.ipynb | 893 ++++++++++++++++++ 1 file changed, 893 insertions(+) create mode 100644 guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb diff --git a/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb b/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb new file mode 100644 index 0000000000..01a0cdc33c --- /dev/null +++ b/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb @@ -0,0 +1,893 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a68c828f-8938-482f-a81d-4d944f5c15a3", + "metadata": {}, + "source": [ + "## Introduction to StoryMaps" + ] + }, + { + "cell_type": "markdown", + "id": "6772bf0f-2a6b-438a-8757-472398dd3dc6", + "metadata": {}, + "source": [ + "ArcGIS StoryMaps is a web-based content-creation and communication tool that allows you to share maps, apps, and multimedia in the context of a narrative. You can use ArcGIS StoryMaps to author stories, which are like articles or blogs. Stories offer a scrolling narrative experience with immersive sections and can integrate maps and data from your organization. It is an application supported in both ArcGIS Enterprise and ArcGIS Online. " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "cf9da6fa-a5c8-4e10-b09e-7cf2ec45c3c1", + "metadata": {}, + "outputs": [], + "source": [ + "from arcgis.gis import GIS\n", + "from arcgis.apps import storymap\n", + "from arcgis.apps.storymap import StoryMap, Themes, Cover\n", + "from arcgis.apps.storymap.story_content import Text, TextStyles, Image, Image360, Gallery, Separator, Audio, Video, Map, Button, Sidecar, SidecarSlide, Swipe\n", + "from arcgis.map import Map\n", + "from arcgis.layers import Service" + ] + }, + { + "cell_type": "markdown", + "id": "b8c20413-f7c2-4500-b69e-987a572c2405", + "metadata": {}, + "source": [ + "We start by connecting to our ArcGIS Online organization and creating a new story." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6661719a-fe2a-4dae-b510-6ca45f80c89d", + "metadata": {}, + "outputs": [], + "source": [ + "gis = GIS(profile='your_online_profile')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a6aaba6a-6ec7-4b72-8d5b-0af2d5dee139", + "metadata": {}, + "outputs": [], + "source": [ + "my_story = StoryMap()" + ] + }, + { + "cell_type": "markdown", + "id": "c60d999a-9e5f-44f0-94f8-8e9c7a76a461", + "metadata": {}, + "source": [ + "### Adding content to your StoryMap\n", + "\n", + "ArcGIS StoryMaps provides a single authoring experience that allows you the flexibility to create content with a variety of media in several formats. The following content element types are supported within the ArcGIS API for Python. \n", + "\n", + "* [Image](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#image)\n", + "* [Image360](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#image360)\n", + "* [Video](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#video)\n", + "* [Audio](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#audio)\n", + "* [Embed](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#embed)\n", + "* [App](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#app)\n", + "* [Map](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#map)\n", + "* [Text](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#text)\n", + "* [Button](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#button)\n", + "* [Gallery](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#gallery)\n", + "* [Swipe](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#swipe)\n", + "* [Sidecar](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#sidecar)\n", + "* [Timeline](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#timeline)\n", + "* [MapTour](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#maptour)\n", + "* [Places](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#places)\n", + "* [Code](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#code)\n", + "* [Briefing](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#briefing)\n", + "* [Table](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#table)\n", + "* [ExpressMap](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#expressmap)\n", + "* [Infographic](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#infographic)\n", + "* [Navigation](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#navigation)\n", + "* [Cover](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#cover)\n", + "* [Separator](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#separator)\n", + "\n", + "As we see in the list above, content can be of various class types and you have the option to specify a `caption`, `alt_text`, `display` style, and the `position` at which it will be in your story while adding the particular content element to your story. Not passing in any content means a separator will be added.\n", + "\n", + "Let us understand this process of adding content to our story through examples of some popular content element types. " + ] + }, + { + "cell_type": "markdown", + "id": "80979bef-3f39-4e93-8449-d7368e4ef1fb", + "metadata": {}, + "source": [ + "### 1. Adding text to describe the theme of the StoryMap\n", + "\n", + "We will start by adding `Text` to our story, specifically a Heading for the story using the `style` parameter." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c509c7d5-bc5e-4bb7-892c-e9686db62044", + "metadata": {}, + "outputs": [], + "source": [ + "title = Text(\n", + " text=\"Nature themed story\",\n", + " style=TextStyles.HEADING,\n", + ")\n", + "heading = my_story.add(title)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d7600e4d-09db-4c3d-9e00-e7e0372e485b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " Nature Themed Story\n", + " \n", + "

StoryMap by MMajumdar_geosaurus\n", + "
Last Modified: January 23, 2026\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.save(title=\"Nature Themed Story\")" + ] + }, + { + "cell_type": "markdown", + "id": "f5ae8a3e-0e28-4824-a8b3-ac150719bd63", + "metadata": {}, + "source": [ + "This method will save your StoryMap to your active GIS. \n", + "\n", + "> Note: The story will be saved with unpublished changes unless `publish` parameter is specified to True." + ] + }, + { + "cell_type": "markdown", + "id": "419daac8-57b7-4e72-8622-f3d57c4a7be9", + "metadata": {}, + "source": [ + "### 2. Image and Image 360 \n", + "\n", + "We will proceed by adding `Image` and `Image360` content elements to our story. \n", + "\n", + "`Image` is a traditional static image, whereas `Image360` is a 360-degree interactive panoramic image." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1bc9629d-7315-463e-8b8b-89b88700547d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "img = Image(\"https://www.nps.gov/npgallery/GetAsset/69680c29-caa3-42da-93d9-32925e9ed409/proxy/hires\")\n", + "my_story.add(img, caption = \"Trees with a deer\", alt_text = \"Sequoia trees in the distance\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "23e44b6a-3b7a-42de-8b3c-940f1bccdfed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "img360 = Image360(\"D:/Github Projects/geosaurus/tests/resources/storymap/storymap_image_river.jpg\")\n", + "my_story.add(img360, position = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "dab819fd-21ff-41db-a34c-c065a6b0ac0a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " Nature Themed Story\n", + " \n", + "

StoryMap by MMajumdar_geosaurus\n", + "
Last Modified: January 23, 2026\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.save()" + ] + }, + { + "cell_type": "markdown", + "id": "864eda0c-2cb2-4b4e-a028-551c0c3e625f", + "metadata": {}, + "source": [ + "We save the story and verify the `Image360` and `Image` added to the story." + ] + }, + { + "cell_type": "markdown", + "id": "06343031-3ffd-42d9-adb4-cc0d6e7f8f48", + "metadata": {}, + "source": [ + "![img_img360](https://github.com/user-attachments/assets/8256ec81-e092-4a60-a7bf-2a837739ed14)" + ] + }, + { + "cell_type": "markdown", + "id": "10a97c58-ef75-472d-b2d2-eeeb1ba71a09", + "metadata": {}, + "source": [ + "### 3. Adding a gallery of images\n", + "\n", + "We can expand this concept to add a `Gallery` of Images. You can added up to 12 images to a `Gallery` in a StoryMap. " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "c05704e0-d601-4664-b47d-e925a09924cc", + "metadata": {}, + "outputs": [], + "source": [ + "gallery = Gallery()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "db82f45f-d521-4d7d-8f45-b24473e4471d", + "metadata": {}, + "outputs": [], + "source": [ + "image1 = Image(\"https://www.nps.gov/npgallery/GetAsset/57fb2a13-2920-408c-b143-182eef9c4dec/proxy/hires\")\n", + "image2 = Image(\"https://www.nps.gov/npgallery/GetAsset/9336aae7-821b-4a1a-85d0-24419249e3ec/proxy/hires\")" + ] + }, + { + "cell_type": "markdown", + "id": "856b28b0-bdd3-4e9c-a78c-d9abe10eff28", + "metadata": {}, + "source": [ + "We add these two images to the gallery, and add the gallery to the story." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "9414e769-9595-44ca-8ca5-d95a2185c426", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Image(image='https://www.nps.gov/npgallery/GetAsset/57fb2a13-2920-408c-b143-182eef9c4dec/proxy/hires'),\n", + " Image(image='https://www.nps.gov/npgallery/GetAsset/9336aae7-821b-4a1a-85d0-24419249e3ec/proxy/hires')]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gallery.add_images([image1, image2])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "e002a00d-f79f-47bd-84c1-dfa3c81c6b19", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.add(gallery)" + ] + }, + { + "cell_type": "markdown", + "id": "e55378a3-d162-40e8-8f34-fd9241264594", + "metadata": {}, + "source": [ + "You can also add an image to the gallery after the gallery has been added to your StoryMap." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "f71b72a0-25eb-4ffe-934c-7d3e38fdd635", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Image(image='https://www.nps.gov/npgallery/GetAsset/57fb2a13-2920-408c-b143-182eef9c4dec/proxy/hires'),\n", + " Image(image='https://www.nps.gov/npgallery/GetAsset/9336aae7-821b-4a1a-85d0-24419249e3ec/proxy/hires'),\n", + " Image(image='https://www.nps.gov/npgallery/GetAsset/b37968ce-603d-4468-a9bf-150fc1380a72/proxy/hires')]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "image3 = Image('https://www.nps.gov/npgallery/GetAsset/b37968ce-603d-4468-a9bf-150fc1380a72/proxy/hires')\n", + "gallery.add_images([image3])" + ] + }, + { + "cell_type": "markdown", + "id": "b6c4dd87-bcf7-41da-8e9f-7e8ff0059ec1", + "metadata": {}, + "source": [ + "We will save this story and verify that the gallery is added to our story." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "6761e194-490e-4a9f-8d7e-0962beeaca08", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " Nature Themed Story\n", + " \n", + "

StoryMap by MMajumdar_geosaurus\n", + "
Last Modified: January 23, 2026\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.save()" + ] + }, + { + "cell_type": "markdown", + "id": "a1c34dd9-0017-4c2e-baaf-130ee90a9cc8", + "metadata": {}, + "source": [ + "![gallery_img](https://github.com/user-attachments/assets/a2336f42-2af5-4d66-a195-b0985c31a231)" + ] + }, + { + "cell_type": "markdown", + "id": "584366d2-eab2-4677-917a-ebeaab190245", + "metadata": {}, + "source": [ + "### 4. Adding a separator\n", + "\n", + "A `Separator` is used to add a subtle break in between different sections of your story. The exact look of the separator will vary based on the theme you have chosen.\n", + "\n", + "We will add a `Separator` now to differentiate between the images and the multimedia content elements to follow. " + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "380ee8b2-450f-4d89-8cce-a1f5a9cc4985", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "separator = Separator()\n", + "my_story.add(separator)" + ] + }, + { + "cell_type": "markdown", + "id": "a94d1a12-8136-4488-810d-7de731d8d590", + "metadata": {}, + "source": [ + "### 5. Add audio and video\n", + "\n", + "Media helps bring a story to life. Images, videos, and other media are important because they break up a long narrative and keep your readers engaged." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "d9ee49c9-7df0-4642-b7a4-f66999d3ac7a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "audio = Audio(\"D:/Github Projects/geosaurus/tests/resources/storymap/rocks.mp3\")\n", + "my_story.add(audio)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "284f3548-7adc-4929-994e-ed14cb89fbff", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "video = Video(\"https://www.youtube.com/embed/8wY14zHDmEs\")\n", + "my_story.add(video)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "35a3898d-08e0-495f-95d7-3efa8b74caed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " Nature Themed Story\n", + " \n", + "

StoryMap by MMajumdar_geosaurus\n", + "
Last Modified: January 23, 2026\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.save()" + ] + }, + { + "cell_type": "markdown", + "id": "892b8cc5-8c14-4780-8632-26f07476febd", + "metadata": {}, + "source": [ + "Our story now includes the audio and the video too." + ] + }, + { + "cell_type": "markdown", + "id": "e93a7df6-7ad8-4586-a0ad-7c321432c782", + "metadata": {}, + "source": [ + "![audio_video](https://github.com/user-attachments/assets/d512ceea-6b84-4a6e-aee8-8ac77b170f35)" + ] + }, + { + "cell_type": "markdown", + "id": "95218931-5a4c-43c7-aa71-fb9ebbc5fe5a", + "metadata": {}, + "source": [ + "### 6. Add a sidecar with a map and button\n", + "\n", + "What sets ArcGIS StoryMaps apart from other web-based authoring tools is the ability to integrate maps with other multimedia elements (words, images, videos, audio, and embedded content). Maps guide readers from place to place, they show change over time, and reveal patterns and relationships. Maps add dimensions to stories that are difficult or impossible to achieve with other media. \n", + "\n", + "We will add a `Map` to a `Sidecar` along with a `Button` in this section.\n", + "\n", + "A `Sidecar` is composed of slides. Slides are composed of two sub structures: a narrative panel and a media panel. The media node can be a(n): `Image`, `Image360`, `Video`, `Embed`, `Map`, or `Swipe`. The narrative panel can contain multiple types of content including `Image`, `Image360`, `Video`, `Embed`, `Button`, `Text`, `Map`, and more." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "a9e96374-bf6a-4f27-8ba4-31f284475f11", + "metadata": {}, + "outputs": [], + "source": [ + "map1 = Map()\n", + "map1.content.add(Service(\"https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/2\"))\n", + "map1_item = map1.save(\n", + " item_properties={\n", + " \"title\": \"Nature WebMap\",\n", + " \"tags\": [\"python\", \"nature\", \"storymaps\"],\n", + " \"snippet\": \"A Map for the Nature StoryMap\",\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "0262a0ff-fdd5-4ba9-9d48-a1816fa82a6b", + "metadata": {}, + "outputs": [], + "source": [ + "media_panel = storymap.Map(map1_item)" + ] + }, + { + "cell_type": "markdown", + "id": "61bee568-4a80-45e9-907e-03c99f9f0388", + "metadata": {}, + "source": [ + "We can also set extent or scale for a Map in a StoryMap as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "efc67079-e4f2-44ad-a482-aa532f50889c", + "metadata": {}, + "outputs": [], + "source": [ + "media_panel.set_viewpoint(extent = {'xmin': -13237372.638884207,\n", + " 'ymin': 3923105.9219285306,\n", + " 'xmax': -13038426.89338742,\n", + " 'ymax': 4065046.3578961184,\n", + " 'spatialReference': {'latestWkid': 3857, 'wkid': 102100}})" + ] + }, + { + "cell_type": "markdown", + "id": "f6e573df-57dc-4806-a0bd-18e32cfbd6df", + "metadata": {}, + "source": [ + "We will now define the `Button` or navigation panel for the `Sidecar`." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "80200d0a-a87e-4820-b181-1db667b259c0", + "metadata": {}, + "outputs": [], + "source": [ + "navigation_panel = Button(\n", + " link=\"https://www.nps.gov/subjects/forests/leaf-peeping.htm\",\n", + " text=\"Autumn Colors\",\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "25fb4168-582d-47a3-9712-8ece5bb45d44", + "metadata": {}, + "outputs": [], + "source": [ + "slide = SidecarSlide(content=navigation_panel, \n", + " media=media_panel)\n", + "sidecar = Sidecar(style=\"floating-panel\")\n", + "sidecar.slides = [slide]" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "38f19bf8-5e4b-47f5-b3a6-ade598c7ff6e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.add(sidecar)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "4b0cfcbb-f850-4614-ad75-0e2068c62c5f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " Nature Themed Story\n", + " \n", + "

StoryMap by MMajumdar_geosaurus\n", + "
Last Modified: January 23, 2026\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.save()" + ] + }, + { + "cell_type": "markdown", + "id": "64bfd169-f1e4-4ad9-a305-6d2e7259d7c3", + "metadata": {}, + "source": [ + "![sidecar](https://github.com/user-attachments/assets/7b3aae46-91c6-4471-902c-1c68d84700b0)" + ] + }, + { + "cell_type": "markdown", + "id": "ea266c4e-af2a-4dbb-889e-26e0a6a8df1e", + "metadata": {}, + "source": [ + "### 7. Add Swipe with images\n", + "\n", + "The final content element we add is a `Swipe`, that can be thought of as an interactive comparison tool to compare two images, maps or scenes in the same frame." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "b786bfa3-32ae-4b46-8dc1-86fe26764213", + "metadata": {}, + "outputs": [], + "source": [ + "image1 = Image(\"https://www.nps.gov/npgallery/GetAsset/36106ED0-1DD8-B71C-07ED73544EA246C7/proxy/hires\")\n", + "image2 = Image(\"https://www.nps.gov/npgallery/GetAsset/36106ED0-1DD8-B71C-07ED73544EA246C7/proxy/hires\")\n", + "\n", + "swipe = Swipe([image1, image2])" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "0b8c67e4-4fd4-4f4d-98b0-a4983642a38b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.add(swipe)" + ] + }, + { + "cell_type": "markdown", + "id": "5df2f1ed-32df-4382-88e6-c842d3c14072", + "metadata": {}, + "source": [ + "![swipe_images](https://github.com/user-attachments/assets/185d94f9-fce9-4828-a28a-d8c7097ad16e)" + ] + }, + { + "cell_type": "markdown", + "id": "cee88cbb-0e6b-4afd-9dbf-88a25fbc9774", + "metadata": {}, + "source": [ + "### Publish this StoryMap\n", + "\n", + "To conclude this guide, we will now publish this story by setting `publish=True` in the `save()` function." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "2ffd95cd-e076-4606-8d45-8b73f8f1078b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " Nature Themed Story\n", + " \n", + "

StoryMap by MMajumdar_geosaurus\n", + "
Last Modified: January 23, 2026\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_story.save(publish=True)" + ] + }, + { + "cell_type": "markdown", + "id": "b7dc6c99-bc32-42bc-bdd5-57a605fda794", + "metadata": {}, + "source": [ + "We have a separate guide that covers [Cloning and Editing of StoryMaps](../cloning-editing-storymaps)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 41df0ea6a3cc23f8a6009c2087d4432d4edd3a50 Mon Sep 17 00:00:00 2001 From: Manushi Majumdar Date: Fri, 23 Jan 2026 16:42:13 -0500 Subject: [PATCH 2/3] updates to the map --- .../introduction-to-storymaps.ipynb | 126 +++++++++--------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb b/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb index 01a0cdc33c..e9fd3f3203 100644 --- a/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb +++ b/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 85, "id": "cf9da6fa-a5c8-4e10-b09e-7cf2ec45c3c1", "metadata": {}, "outputs": [], @@ -41,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 86, "id": "6661719a-fe2a-4dae-b510-6ca45f80c89d", "metadata": {}, "outputs": [], @@ -51,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 87, "id": "a6aaba6a-6ec7-4b72-8d5b-0af2d5dee139", "metadata": {}, "outputs": [], @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 88, "id": "c509c7d5-bc5e-4bb7-892c-e9686db62044", "metadata": {}, "outputs": [], @@ -123,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 89, "id": "d7600e4d-09db-4c3d-9e00-e7e0372e485b", "metadata": {}, "outputs": [ @@ -132,13 +132,13 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Nature Themed Story\n", + " Nature Themed Story\n", " \n", "

StoryMap by MMajumdar_geosaurus\n", "
Last Modified: January 23, 2026\n", @@ -151,7 +151,7 @@ "" ] }, - "execution_count": 7, + "execution_count": 89, "metadata": {}, "output_type": "execute_result" } @@ -184,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 90, "id": "1bc9629d-7315-463e-8b8b-89b88700547d", "metadata": {}, "outputs": [ @@ -194,7 +194,7 @@ "True" ] }, - "execution_count": 9, + "execution_count": 90, "metadata": {}, "output_type": "execute_result" } @@ -206,7 +206,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 91, "id": "23e44b6a-3b7a-42de-8b3c-940f1bccdfed", "metadata": {}, "outputs": [ @@ -216,7 +216,7 @@ "True" ] }, - "execution_count": 10, + "execution_count": 91, "metadata": {}, "output_type": "execute_result" } @@ -228,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 92, "id": "dab819fd-21ff-41db-a34c-c065a6b0ac0a", "metadata": {}, "outputs": [ @@ -237,13 +237,13 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Nature Themed Story\n", + " Nature Themed Story\n", " \n", "

StoryMap by MMajumdar_geosaurus\n", "
Last Modified: January 23, 2026\n", @@ -256,7 +256,7 @@ "" ] }, - "execution_count": 11, + "execution_count": 92, "metadata": {}, "output_type": "execute_result" } @@ -293,7 +293,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 93, "id": "c05704e0-d601-4664-b47d-e925a09924cc", "metadata": {}, "outputs": [], @@ -303,7 +303,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 94, "id": "db82f45f-d521-4d7d-8f45-b24473e4471d", "metadata": {}, "outputs": [], @@ -322,7 +322,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 95, "id": "9414e769-9595-44ca-8ca5-d95a2185c426", "metadata": {}, "outputs": [ @@ -333,7 +333,7 @@ " Image(image='https://www.nps.gov/npgallery/GetAsset/9336aae7-821b-4a1a-85d0-24419249e3ec/proxy/hires')]" ] }, - "execution_count": 35, + "execution_count": 95, "metadata": {}, "output_type": "execute_result" } @@ -344,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 96, "id": "e002a00d-f79f-47bd-84c1-dfa3c81c6b19", "metadata": {}, "outputs": [ @@ -354,7 +354,7 @@ "True" ] }, - "execution_count": 36, + "execution_count": 96, "metadata": {}, "output_type": "execute_result" } @@ -373,7 +373,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 97, "id": "f71b72a0-25eb-4ffe-934c-7d3e38fdd635", "metadata": {}, "outputs": [ @@ -385,7 +385,7 @@ " Image(image='https://www.nps.gov/npgallery/GetAsset/b37968ce-603d-4468-a9bf-150fc1380a72/proxy/hires')]" ] }, - "execution_count": 37, + "execution_count": 97, "metadata": {}, "output_type": "execute_result" } @@ -405,7 +405,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 98, "id": "6761e194-490e-4a9f-8d7e-0962beeaca08", "metadata": {}, "outputs": [ @@ -414,13 +414,13 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Nature Themed Story\n", + " Nature Themed Story\n", " \n", "

StoryMap by MMajumdar_geosaurus\n", "
Last Modified: January 23, 2026\n", @@ -433,7 +433,7 @@ "" ] }, - "execution_count": 38, + "execution_count": 98, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 99, "id": "380ee8b2-450f-4d89-8cce-a1f5a9cc4985", "metadata": {}, "outputs": [ @@ -474,7 +474,7 @@ "True" ] }, - "execution_count": 39, + "execution_count": 99, "metadata": {}, "output_type": "execute_result" } @@ -496,7 +496,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 100, "id": "d9ee49c9-7df0-4642-b7a4-f66999d3ac7a", "metadata": {}, "outputs": [ @@ -506,7 +506,7 @@ "True" ] }, - "execution_count": 41, + "execution_count": 100, "metadata": {}, "output_type": "execute_result" } @@ -518,7 +518,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 101, "id": "284f3548-7adc-4929-994e-ed14cb89fbff", "metadata": {}, "outputs": [ @@ -528,7 +528,7 @@ "True" ] }, - "execution_count": 42, + "execution_count": 101, "metadata": {}, "output_type": "execute_result" } @@ -540,7 +540,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 102, "id": "35a3898d-08e0-495f-95d7-3efa8b74caed", "metadata": {}, "outputs": [ @@ -549,13 +549,13 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Nature Themed Story\n", + " Nature Themed Story\n", " \n", "

StoryMap by MMajumdar_geosaurus\n", "
Last Modified: January 23, 2026\n", @@ -568,7 +568,7 @@ "" ] }, - "execution_count": 43, + "execution_count": 102, "metadata": {}, "output_type": "execute_result" } @@ -609,16 +609,16 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 103, "id": "a9e96374-bf6a-4f27-8ba4-31f284475f11", "metadata": {}, "outputs": [], "source": [ "map1 = Map()\n", - "map1.content.add(Service(\"https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/2\"))\n", + "map1.content.add(Service(\"https://services.arcgis.com/JJzESW51TqeY9uat/arcgis/rest/services/National_Parks_England/FeatureServer/0\"))\n", "map1_item = map1.save(\n", " item_properties={\n", - " \"title\": \"Nature WebMap\",\n", + " \"title\": \"National parks of UK WebMap\",\n", " \"tags\": [\"python\", \"nature\", \"storymaps\"],\n", " \"snippet\": \"A Map for the Nature StoryMap\",\n", " }\n", @@ -627,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 104, "id": "0262a0ff-fdd5-4ba9-9d48-a1816fa82a6b", "metadata": {}, "outputs": [], @@ -640,21 +640,21 @@ "id": "61bee568-4a80-45e9-907e-03c99f9f0388", "metadata": {}, "source": [ - "We can also set extent or scale for a Map in a StoryMap as follows:" + "We can also update extent or scale for a Map in a StoryMap as follows:" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 107, "id": "efc67079-e4f2-44ad-a482-aa532f50889c", "metadata": {}, "outputs": [], "source": [ - "media_panel.set_viewpoint(extent = {'xmin': -13237372.638884207,\n", - " 'ymin': 3923105.9219285306,\n", + "media_panel.set_viewpoint(extent = {'spatialReference': {'latestWkid': 3857, 'wkid': 102100},\n", " 'xmax': -13038426.89338742,\n", + " 'xmin': -13237372.638884207,\n", " 'ymax': 4065046.3578961184,\n", - " 'spatialReference': {'latestWkid': 3857, 'wkid': 102100}})" + " 'ymin': 3923105.9219285306})" ] }, { @@ -667,7 +667,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 108, "id": "80200d0a-a87e-4820-b181-1db667b259c0", "metadata": {}, "outputs": [], @@ -680,7 +680,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 109, "id": "25fb4168-582d-47a3-9712-8ece5bb45d44", "metadata": {}, "outputs": [], @@ -693,7 +693,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 110, "id": "38f19bf8-5e4b-47f5-b3a6-ade598c7ff6e", "metadata": {}, "outputs": [ @@ -703,7 +703,7 @@ "True" ] }, - "execution_count": 50, + "execution_count": 110, "metadata": {}, "output_type": "execute_result" } @@ -714,7 +714,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 111, "id": "4b0cfcbb-f850-4614-ad75-0e2068c62c5f", "metadata": {}, "outputs": [ @@ -723,13 +723,13 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Nature Themed Story\n", + " Nature Themed Story\n", " \n", "

StoryMap by MMajumdar_geosaurus\n", "
Last Modified: January 23, 2026\n", @@ -742,7 +742,7 @@ "" ] }, - "execution_count": 51, + "execution_count": 111, "metadata": {}, "output_type": "execute_result" } @@ -756,7 +756,7 @@ "id": "64bfd169-f1e4-4ad9-a305-6d2e7259d7c3", "metadata": {}, "source": [ - "![sidecar](https://github.com/user-attachments/assets/7b3aae46-91c6-4471-902c-1c68d84700b0)" + "![sidecar](https://github.com/user-attachments/assets/2be959ab-6dcf-4370-ad2d-aa5d63792e1b)" ] }, { @@ -771,7 +771,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 112, "id": "b786bfa3-32ae-4b46-8dc1-86fe26764213", "metadata": {}, "outputs": [], @@ -784,7 +784,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 113, "id": "0b8c67e4-4fd4-4f4d-98b0-a4983642a38b", "metadata": {}, "outputs": [ @@ -794,7 +794,7 @@ "True" ] }, - "execution_count": 53, + "execution_count": 113, "metadata": {}, "output_type": "execute_result" } @@ -823,7 +823,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 114, "id": "2ffd95cd-e076-4606-8d45-8b73f8f1078b", "metadata": {}, "outputs": [ @@ -832,13 +832,13 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Nature Themed Story\n", + " Nature Themed Story\n", " \n", "

StoryMap by MMajumdar_geosaurus\n", "
Last Modified: January 23, 2026\n", @@ -851,7 +851,7 @@ "" ] }, - "execution_count": 55, + "execution_count": 114, "metadata": {}, "output_type": "execute_result" } From 4011c5cb667bf0faa8a11aea7254125130e34bcb Mon Sep 17 00:00:00 2001 From: Manushi Majumdar Date: Wed, 28 Jan 2026 00:23:46 -0500 Subject: [PATCH 3/3] addressed requested changes --- .../introduction-to-storymaps.ipynb | 106 +++++++++++++----- 1 file changed, 78 insertions(+), 28 deletions(-) diff --git a/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb b/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb index e9fd3f3203..73426e94e5 100644 --- a/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb +++ b/guide/13-managing-arcgis-applications/introduction-to-storymaps.ipynb @@ -13,12 +13,12 @@ "id": "6772bf0f-2a6b-438a-8757-472398dd3dc6", "metadata": {}, "source": [ - "ArcGIS StoryMaps is a web-based content-creation and communication tool that allows you to share maps, apps, and multimedia in the context of a narrative. You can use ArcGIS StoryMaps to author stories, which are like articles or blogs. Stories offer a scrolling narrative experience with immersive sections and can integrate maps and data from your organization. It is an application supported in both ArcGIS Enterprise and ArcGIS Online. " + "ArcGIS StoryMaps is a web-based content-creation and communication tool that allows you to share maps, apps, and multimedia in the context of a narrative. You can use ArcGIS StoryMaps to author stories, which are similar to articles or blogs. Stories offer a scrolling narrative experience with immersive sections and can integrate maps and data from your organization. It is an application supported in both ArcGIS Enterprise and ArcGIS Online. " ] }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 1, "id": "cf9da6fa-a5c8-4e10-b09e-7cf2ec45c3c1", "metadata": {}, "outputs": [], @@ -41,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 2, "id": "6661719a-fe2a-4dae-b510-6ca45f80c89d", "metadata": {}, "outputs": [], @@ -92,9 +92,9 @@ "* [Cover](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#cover)\n", "* [Separator](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#separator)\n", "\n", - "As we see in the list above, content can be of various class types and you have the option to specify a `caption`, `alt_text`, `display` style, and the `position` at which it will be in your story while adding the particular content element to your story. Not passing in any content means a separator will be added.\n", + "As we see in the list above, content can be of various class types and you have the option to specify a `caption`, `alt_text`, `display` style, and the `position` at which it will be in your story while adding the particular content element to your story. \n", "\n", - "Let us understand this process of adding content to our story through examples of some popular content element types. " + "Below we will go through different examples of content being added to a story. " ] }, { @@ -104,7 +104,23 @@ "source": [ "### 1. Adding text to describe the theme of the StoryMap\n", "\n", - "We will start by adding `Text` to our story, specifically a Heading for the story using the `style` parameter." + "\n", + "You can add `Text` to your story by providing the text string of choice to the`text` parameter of this [Text class](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#text).\n", + "\n", + "You can also specify the `style` you would like to render your text in, using the following [`TextStyles` enumeration](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story_content.TextStyles) values supported in the ArcGIS API for Python.\n", + "\n", + "* BULLETLIST = 'bullet-list'\n", + "* NUMBERLIST = 'numbered-list'\n", + "* HEADING = 'h2'\n", + "* SUBHEADING = 'h3'\n", + "* HEADING1 = 'h2'\n", + "* HEADING2 = 'h3'\n", + "* HEADING3 = 'h4'\n", + "* PARAGRAPH = 'paragraph'\n", + "* QUOTE = 'quote'\n", + "\n", + "\n", + "We will start by adding a Heading for the story using the `style` parameter." ] }, { @@ -114,11 +130,12 @@ "metadata": {}, "outputs": [], "source": [ - "title = Text(\n", + "heading = Text(\n", " text=\"Nature themed story\",\n", " style=TextStyles.HEADING,\n", ")\n", - "heading = my_story.add(title)" + "\n", + "my_story.add(heading)" ] }, { @@ -204,6 +221,16 @@ "my_story.add(img, caption = \"Trees with a deer\", alt_text = \"Sequoia trees in the distance\")" ] }, + { + "cell_type": "markdown", + "id": "f5646e7a-15ac-43dd-b18e-4e9192f3d1b7", + "metadata": {}, + "source": [ + "The `Image` class takes either the file path or url to the image as input.\n", + "\n", + "Note: The `Image360` class shown below takes _only_ the url as input. " + ] + }, { "cell_type": "code", "execution_count": 91, @@ -288,17 +315,9 @@ "source": [ "### 3. Adding a gallery of images\n", "\n", - "We can expand this concept to add a `Gallery` of Images. You can added up to 12 images to a `Gallery` in a StoryMap. " - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "c05704e0-d601-4664-b47d-e925a09924cc", - "metadata": {}, - "outputs": [], - "source": [ - "gallery = Gallery()" + "We can expand this concept of adding an `Image` to add a `Gallery` of images.\n", + "\n", + "We learned how to create images with the `Image` class. We now create images, and then add them as inputs to the `Gallery` class. You can added up to 12 images to a `Gallery` in a StoryMap. " ] }, { @@ -598,18 +617,29 @@ "id": "95218931-5a4c-43c7-aa71-fb9ebbc5fe5a", "metadata": {}, "source": [ - "### 6. Add a sidecar with a map and button\n", + "### 6. Add a `Sidecar` with a `Map` and `Button`\n", + "\n", + "Sidecars are a set of slides that combine maps, pictures, videos, web content, and text to help you tell your story. As you go through the slides, the pictures and videos change to match what you are reading, and you can adjust maps in the slides to show different locations and layers.\n", + "\n", + "A `Sidecar` is composed of slides. Slides are composed of two sub structures: \n", + "* a narrative panel and\n", + "* a media panel.\n", + "\n", + "The media panel can be a(n): `Image`, `Image360`, `Video`, `Embed`, `Map`, or `Swipe`. \n", + "\n", + "The narrative panel can contain multiple types of content including `Image`, `Image360`, `Video`, `Embed`, `Button`, `Text`, `Map`, and more.\n", + "\n", "\n", "What sets ArcGIS StoryMaps apart from other web-based authoring tools is the ability to integrate maps with other multimedia elements (words, images, videos, audio, and embedded content). Maps guide readers from place to place, they show change over time, and reveal patterns and relationships. Maps add dimensions to stories that are difficult or impossible to achieve with other media. \n", "\n", "We will add a `Map` to a `Sidecar` along with a `Button` in this section.\n", "\n", - "A `Sidecar` is composed of slides. Slides are composed of two sub structures: a narrative panel and a media panel. The media node can be a(n): `Image`, `Image360`, `Video`, `Embed`, `Map`, or `Swipe`. The narrative panel can contain multiple types of content including `Image`, `Image360`, `Video`, `Embed`, `Button`, `Text`, `Map`, and more." + "For the example below, we will create a new `Web Map` using the Python API's mapping module. We will add a layer to this map and save it for use in the rest of our storymap." ] }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 3, "id": "a9e96374-bf6a-4f27-8ba4-31f284475f11", "metadata": {}, "outputs": [], @@ -625,9 +655,17 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "49ef61ef-5b1e-46f3-8a4b-3f7343261dd4", + "metadata": {}, + "source": [ + "We can now use the Storymap `Map` content class to add our newly created `Web Map` item to the storymap." + ] + }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 4, "id": "0262a0ff-fdd5-4ba9-9d48-a1816fa82a6b", "metadata": {}, "outputs": [], @@ -651,10 +689,10 @@ "outputs": [], "source": [ "media_panel.set_viewpoint(extent = {'spatialReference': {'latestWkid': 3857, 'wkid': 102100},\n", - " 'xmax': -13038426.89338742,\n", - " 'xmin': -13237372.638884207,\n", - " 'ymax': 4065046.3578961184,\n", - " 'ymin': 3923105.9219285306})" + " 'xmin': -2357466.358090248,\n", + " 'ymin': 5398560.851584372,\n", + " 'xmax': 983749.0223104877,\n", + " 'ymax': 8333742.73773436})" ] }, { @@ -678,6 +716,16 @@ " )" ] }, + { + "cell_type": "markdown", + "id": "15161ab6-eadb-40d3-97e1-7bbec5288a9a", + "metadata": {}, + "source": [ + "We have established above that a `Sidecar` is composed of slides, and each `SidecarSlide` is composed of two sub structures: a narrative panel and a media panel.\n", + "\n", + "Having defined our inputs above for the media_panel (Map) and navigation_panel (Map), let's now proceed to construct a `Sidecar` with one `SidecarSlide` using the classes from the ArcGIS API for Python." + ] + }, { "cell_type": "code", "execution_count": 109, @@ -818,7 +866,9 @@ "source": [ "### Publish this StoryMap\n", "\n", - "To conclude this guide, we will now publish this story by setting `publish=True` in the `save()` function." + "To conclude this guide, we will now publish this story by setting `publish=True` in the `save()` function.\n", + "\n", + "> Note: While we have demonstrated the process to programmatically [`save()`](https://developers.arcgis.com/python/latest/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story.StoryMap.save) the StoryMap throughout this guide, it is strongly encouraged to view and verify the StoryMap in the UI and publish it there, especially for the first time you publish a StoryMap. " ] }, {