{"id":2955599,"date":"2026-02-27T15:00:16","date_gmt":"2026-02-27T23:00:16","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2955599"},"modified":"2026-03-27T11:24:35","modified_gmt":"2026-03-27T18:24:35","slug":"pixel-perfect-pop-ups-arcade-support-for-imagery-layers","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers","title":{"rendered":"Pixel perfect pop-ups: Arcade support for imagery layers"},"author":319692,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[777102],"tags":[762082,759992,776582,28061,780938],"industry":[],"product":[36551],"class_list":["post-2955599","blog","type-blog","status-publish","format-standard","hentry","category-arcade","tag-dynamic-imagery","tag-hosted-imagery","tag-imagery-layer","tag-pop-ups","tag-whats-new-february-2026","product-arcgis-online"],"acf":{"authors":[{"ID":319692,"user_firstname":"Taylor","user_lastname":"McNeil","nickname":"Taylor McNeil","user_nicename":"tmcneil","display_name":"Taylor McNeil","user_email":"tmcneil@esri.com","user_url":"","user_registered":"2022-10-06 12:43:53","user_description":"Taylor is a Product Engineer on the ArcGIS Online team based in Nova Scotia, Canada. She has received a BSc in Biology and a MSc in Applied Geomatics. When she's not at work, she can be found taking care of her houseplants, reading copious amounts of fiction, and exploring local thrift stores.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/BlogProfilePicCrop-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Use pixel and image attributes to create dynamic content in imagery layer pop-ups.","flexible_content":[{"acf_fc_layout":"content","content":"<p>Take your imagery layer pop-ups to the next level with the latest update of <a href=\"https:\/\/developers.arcgis.com\/arcade\/guide\/release-notes\/#version-135\" target=\"_blank\" rel=\"noopener\">ArcGIS Arcade (v1.35)<\/a> and ArcGIS Online. With the addition of two new profiles &#8211; <a href=\"https:\/\/developers.arcgis.com\/arcade\/profiles\/popup-imagery\/\" target=\"_blank\" rel=\"noopener\"><strong>Imagery popup<\/strong><\/a>\u00a0and\u00a0<strong><a href=\"https:\/\/developers.arcgis.com\/arcade\/profiles\/popup-element-imagery\/\" target=\"_blank\" rel=\"noopener\">Imagery popup element<\/a>\u00a0<\/strong>&#8211; you are now able to use pixel values and image attributes to create and drive pop-up content for hosted imagery.<\/p>\n"},{"acf_fc_layout":"content","content":"<p>Just like the experience for hosted feature layers, when you add an imagery layer (tiled or dynamic) to Map Viewer you will now see the option to author Arcade content elements and attribute expressions in the pop-up configuration panel. <span data-teams=\"true\">These new profiles include the following profile variables to work specifically with imagery layers: <code>$pixel<\/code> and <code>$imageCollectionItem<\/code>.<\/span><\/p>\n<h3>Introducing the profile variables<\/h3>\n<p>The <strong><code>$pixel<\/code><\/strong> profile variable is available for all image services, although the number of attributes it contains will vary depending on the image service and how it was configured. This profile variable represents the selected pixel and other pixel-dependent information for the imagery layer in view.<\/p>\n<p>The <strong><code>$imageCollectionItem<\/code><\/strong> profile variable is only populated for dynamic imagery layers that are backed by an image collection. This profile variable contains the various image attributes from the image containing the associated pixel. If the imagery layer is not backed by an image collection, <code>$imageCollectionItem<\/code> will be null.<\/p>\n"},{"acf_fc_layout":"content","content":"<p>Now, let\u2019s look at how you can leverage these profiles to bring your imagery layer pop-ups to the next level through the lens of some examples.<\/p>\n"},{"acf_fc_layout":"content","content":"<h3>Example 1: Temperature conversion<\/h3>\n<p>The <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=100a26c4d15445ffadab0d04e536b9c1\" target=\"_blank\" rel=\"noopener\">Sea Surface Temperature (SST)<\/a> layer contains data which represents sea temperature in Celsius. Using a single Arcade element in our pop-up, we can convert the pixel value representing Celsius to Fahrenheit and display these values alongside the formatted image collection date. Because we are using a content element, we are also able to style the text via HTML in the return statement.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code><span style=\"color: #6a737d\">\/\/ get date of image collection and format<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> d = $pixel[<span style=\"color: #032f62\">\"Raster.Dim.StdTime\"<\/span>];\r\nd = <span style=\"color: #e36209\">Text<\/span>(d, <span style=\"color: #032f62\">\"ddd MMM DD, Y\"<\/span>); \r\n\r\n<span style=\"color: #6a737d\">\/\/ convert from celsius to fahrenheit<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> celsius = <span style=\"color: #e36209\">Round<\/span>($pixel[<span style=\"color: #032f62\">\"Raster.ServicePixelValue.Raw\"<\/span>][<span style=\"color: #005cc5\">0<\/span>], <span style=\"color: #005cc5\">2<\/span>);\r\n<span style=\"color: #d73a49\">var<\/span> f = <span style=\"color: #e36209\">Round<\/span>(celsius * <span style=\"color: #005cc5\">9<\/span> \/ <span style=\"color: #005cc5\">5<\/span> + <span style=\"color: #005cc5\">32<\/span>, <span style=\"color: #005cc5\">2<\/span>); \r\n\r\n<span style=\"color: #6a737d\">\/\/ return content element with HTML in pop-up<\/span>\r\n<span style=\"color: #d73a49\">return<\/span> {\r\n  <span style=\"color: #005cc5\">type<\/span>: <span style=\"color: #032f62\">\"text\"<\/span>,\r\n  <span style=\"color: #005cc5\">text<\/span>:\r\n    <span style=\"color: #032f62\">`&lt;p style=\"text-align:center; font-size: 18px\"&gt;Average temperature on <span style=\"color: #24292e\">${d}<\/span>: &lt;br&gt;&lt;br&gt;&lt;b&gt; <span style=\"color: #24292e\">${celsius}<\/span> \u00b0C | <span style=\"color: #24292e\">${f}<\/span> \u00b0F&lt;\/b&gt;&lt;\/p&gt;`<\/span>\r\n};\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":2958692,"id":2958692,"title":"SeaSurfaceTemp_ArcadePopup","filename":"SeaSurfaceTemp_ArcadePopup.gif","filesize":1713784,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\/seasurfacetemp_arcadepopup-3","alt":"Popup showing the sea surface temperature in Celsius and Fahrenheit over time.","author":"319692","description":"","caption":"Sea surface temperature (Celsius and Fahrenheit) shown over time in a map pop-up.","name":"seasurfacetemp_arcadepopup-3","status":"inherit","uploaded_to":2955599,"date":"2026-02-26 20:43:20","modified":"2026-02-27 13:32:52","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":782,"height":452,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","medium-width":452,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","medium_large-width":768,"medium_large-height":444,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","large-width":782,"large-height":452,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","1536x1536-width":782,"1536x1536-height":452,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","2048x2048-width":782,"2048x2048-height":452,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","card_image-width":782,"card_image-height":452,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/SeaSurfaceTemp_ArcadePopup.gif","wide_image-width":782,"wide_image-height":452}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Example 2: Classifying pixel values using When<\/h3>\n<p>The <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=e1d83802495d4e4eb29405555608d1a0\" target=\"_blank\" rel=\"noopener\">North American Land Data Assimilation System (NLDAS)<\/a> tiled imagery layer contains data that represents the forecasted wind direction (in degrees) in 2011 across the contiguous United States. While it is informative to have the wind direction in a numeric value like degrees, map consumers may also find it helpful to have information surfaced instead as the well-known directions we are familiar with on a compass (e.g., North, South, etc.). This can be accomplished with a single Arcade attribute expression leveraging the <a href=\"https:\/\/developers.arcgis.com\/arcade\/function-reference\/logical_functions\/#when\" target=\"_blank\" rel=\"noopener\">When<\/a> function.<\/p>\n<p>In the example below, the direction in degrees is classified into text values that represent the directional points on a compass. The expression is then inserted into a media element in the pop-up alongside the actual value in degrees and an informative image.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code><span style=\"color: #6a737d\">\/\/ Round pixel direction attribute to 1 decimal<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> d = <span style=\"color: #e36209\">Round<\/span>($pixel[<span style=\"color: #032f62\">\"Raster.Direction\"<\/span>], <span style=\"color: #005cc5\">1<\/span>);\r\n\r\n<span style=\"color: #6a737d\">\/\/ Classify the direction<\/span>\r\n<span style=\"color: #e36209\">When<\/span>(\r\n  d &gt;= <span style=\"color: #005cc5\">0<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">22.5<\/span>,\r\n  <span style=\"color: #032f62\">\"North\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">22.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">45<\/span>,\r\n  <span style=\"color: #032f62\">\"North-Northeast\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">45<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">67.5<\/span>,\r\n  <span style=\"color: #032f62\">\"Northeast\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">67.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">90<\/span>,\r\n  <span style=\"color: #032f62\">\"East-Northeast\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">90<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">112.5<\/span>,\r\n  <span style=\"color: #032f62\">\"East\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">112.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">135<\/span>,\r\n  <span style=\"color: #032f62\">\"East-Southeast\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">135<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">157.5<\/span>,\r\n  <span style=\"color: #032f62\">\"Southeast\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">157.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">180<\/span>,\r\n  <span style=\"color: #032f62\">\"South-Southeast\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">180<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">202.5<\/span>,\r\n  <span style=\"color: #032f62\">\"South\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">202.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">225<\/span>,\r\n  <span style=\"color: #032f62\">\"South-Southwest\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">225<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">247.5<\/span>,\r\n  <span style=\"color: #032f62\">\"Southwest\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">247.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">270<\/span>,\r\n  <span style=\"color: #032f62\">\"West-Southwest\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">270<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">292.5<\/span>,\r\n  <span style=\"color: #032f62\">\"West\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">292.5<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">315<\/span>,\r\n  <span style=\"color: #032f62\">\"West-Northwest\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">315<\/span> &amp;&amp; d &lt; <span style=\"color: #005cc5\">337.5<\/span>,\r\n  <span style=\"color: #032f62\">\"Northwest\"<\/span>,\r\n  d &gt;= <span style=\"color: #005cc5\">337.5<\/span> &amp;&amp; d &lt;= <span style=\"color: #005cc5\">360<\/span>,\r\n  <span style=\"color: #032f62\">\"North\"<\/span>,\r\n  <span style=\"color: #032f62\">\"Direction unknown\"<\/span>\r\n);<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":2958637,"id":2958637,"title":"WindDirection_ArcadePopup","filename":"2026-02-26_15-08-37.gif","filesize":1774710,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\/2026-02-26_15-08-37","alt":"Popup updates to display forecasted wind direction in well known directions and degrees.","author":"319692","description":"","caption":"Forecasted wind direction shown in degrees and as text indicating a compass direction in a map pop-up.","name":"2026-02-26_15-08-37","status":"inherit","uploaded_to":2955599,"date":"2026-02-26 19:09:02","modified":"2026-02-27 13:38:42","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1220,"height":654,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","medium-width":464,"medium-height":249,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","medium_large-width":768,"medium_large-height":412,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","large-width":1220,"large-height":654,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","1536x1536-width":1220,"1536x1536-height":654,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","2048x2048-width":1220,"2048x2048-height":654,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37-826x443.gif","card_image-width":826,"card_image-height":443,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/2026-02-26_15-08-37.gif","wide_image-width":1220,"wide_image-height":654}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Example 3: Matching pop-up text color to the renderer<\/h3>\n<p>The <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=1453082255024699af55c960bc3dc1fe\" target=\"_blank\" rel=\"noopener\">Global Land Cover 1992-2020<\/a> layer exposes the corresponding RGB values used to render the cells via the <code>$pixel<\/code> variable. Because of this we can leverage these attributes directly to dynamically color our pop-up text to match the layer&#8217;s renderer &#8211; all without any hardcoding of colors!<\/p>\n<p>In this example, the expression that returns the calculated color is applied using the data-driven font color option in the rich text editor. If you aren&#8217;t familiar with this workflow, check out the data-driven font color section in <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/mapping\/improving-the-rich-text-editing-experience-in-pop-ups\" target=\"_blank\" rel=\"noopener\">this blog<\/a>. The background color for the text is also driven by an Arcade expression (not shown) which looks at the text color generated from the RGB values and determines if a white or black background is appropriate to maintain sufficient contrast.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code><span style=\"color: #6a737d\">\/\/ Grab the RGB values from the pixel<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> r = $pixel[<span style=\"color: #032f62\">\"Raster.Red\"<\/span>];\r\n<span style=\"color: #d73a49\">var<\/span> g = $pixel[<span style=\"color: #032f62\">\"Raster.Green\"<\/span>];\r\n<span style=\"color: #d73a49\">var<\/span> b = $pixel[<span style=\"color: #032f62\">\"Raster.Blue\"<\/span>];\r\n\r\n<span style=\"color: #6a737d\">\/\/ if RGB values are present from pixel<\/span>\r\n<span style=\"color: #d73a49\">if<\/span> (!<span style=\"color: #e36209\">IsEmpty<\/span>(r) &amp;&amp; !<span style=\"color: #e36209\">IsEmpty<\/span>(g) &amp;&amp; !<span style=\"color: #e36209\">IsEmpty<\/span>(b)) {\r\n  <span style=\"color: #6a737d\">\/\/ return that color<\/span>\r\n  <span style=\"color: #d73a49\">return<\/span> <span style=\"color: #032f62\">`rgb(<span style=\"color: #24292e\">${r}<\/span>, <span style=\"color: #24292e\">${g}<\/span>, <span style=\"color: #24292e\">${b}<\/span>)`<\/span>;\r\n} <span style=\"color: #d73a49\">else<\/span> {\r\n  <span style=\"color: #6a737d\">\/\/ otherwise, return the color black<\/span>\r\n  <span style=\"color: #d73a49\">return<\/span> <span style=\"color: #032f62\">`rgb(0, 0, 0);`<\/span>;\r\n}<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":2958641,"id":2958641,"title":"GlobalLandCoverPopup_Arcade","filename":"GlobalLandCoverPopup_Arcade.gif","filesize":1470980,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\/globallandcoverpopup_arcade","alt":"Popup that displays the prominent type of global land cover","author":"319692","description":"","caption":"A pop-up indicating the predominant land cover type dynamically updates its font color to match the renderer using an Arcade expression.","name":"globallandcoverpopup_arcade","status":"inherit","uploaded_to":2955599,"date":"2026-02-26 19:17:12","modified":"2026-02-27 13:40:33","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":906,"height":762,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","medium-width":310,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","medium_large-width":768,"medium_large-height":646,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","large-width":906,"large-height":762,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","1536x1536-width":906,"1536x1536-height":762,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","2048x2048-width":906,"2048x2048-height":762,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade-553x465.gif","card_image-width":553,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/GlobalLandCoverPopup_Arcade.gif","wide_image-width":906,"wide_image-height":762}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Example 4: Displaying dynamic HTML in the pop-up<\/h3>\n<p>The <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=ed1ecf0e640d40b1b62c42447168eb49\" target=\"_blank\" rel=\"noopener\">Coral Bleaching Alert<\/a> layer uses pixel values to represent the max level of stress experienced over the past week. Currently, the pop-up surfaces the level of alert as a simple text string in the pop-up. By using an Arcade content element, we can really take this pop-up to the next level. In the example below, we dynamically color both the pop-up text and background color to match the renderer while also accounting for the user selecting an area with null or <code>NoData<\/code> values.<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code><span style=\"color: #6a737d\">\/\/ get pixel value that represents bleaching level<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> level = $pixel[<span style=\"color: #032f62\">\"Raster.ServicePixelValue.Raw\"<\/span>][<span style=\"color: #005cc5\">0<\/span>];\r\n\r\n<span style=\"color: #6a737d\">\/\/ classify based on pixel value<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> r = <span style=\"color: #e36209\">Decode<\/span>(\r\n  level,\r\n  <span style=\"color: #032f62\">\"0\"<\/span>,\r\n  <span style=\"color: #032f62\">\"No stress\"<\/span>,\r\n  <span style=\"color: #032f62\">\"1\"<\/span>,\r\n  <span style=\"color: #032f62\">\"Bleaching Watch\"<\/span>,\r\n  <span style=\"color: #032f62\">\"2\"<\/span>,\r\n  <span style=\"color: #032f62\">\"Bleaching Warning\"<\/span>,\r\n  <span style=\"color: #032f62\">\"3\"<\/span>,\r\n  <span style=\"color: #032f62\">\"Bleaching Alert Level 1\"<\/span>,\r\n  <span style=\"color: #032f62\">\"4\"<\/span>,\r\n  <span style=\"color: #032f62\">\"Bleaching Alert Level 2\"<\/span>,\r\n  <span style=\"color: #032f62\">\"N\/A\"<\/span>\r\n);\r\n\r\n<span style=\"color: #6a737d\">\/\/ use level to determine hex code for color<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> r_color = <span style=\"color: #e36209\">When<\/span>(\r\n  level == <span style=\"color: #032f62\">\"0\"<\/span>,\r\n  <span style=\"color: #032f62\">\"#d3ffbe\"<\/span>,\r\n  level == <span style=\"color: #032f62\">\"1\"<\/span>,\r\n  <span style=\"color: #032f62\">\"#ffffbe\"<\/span>,\r\n  level == <span style=\"color: #032f62\">\"2\"<\/span>,\r\n  <span style=\"color: #032f62\">\"#ffd37f\"<\/span>,\r\n  level == <span style=\"color: #032f62\">\"3\"<\/span>,\r\n  <span style=\"color: #032f62\">\"#ff7f7f\"<\/span>,\r\n  level == <span style=\"color: #032f62\">\"4\"<\/span>,\r\n  <span style=\"color: #032f62\">\"#de0a26\"<\/span>,\r\n  <span style=\"color: #032f62\">\"#ffffff\"<\/span>\r\n);\r\n\r\n<span style=\"color: #6a737d\">\/\/ set background depending on text color for sufficient contrast<\/span>\r\n<span style=\"color: #d73a49\">if<\/span> (\r\n  r_color == <span style=\"color: #032f62\">\"#d3ffbe\"<\/span> ||\r\n  r_color == <span style=\"color: #032f62\">\"#ffffbe\"<\/span> ||\r\n  r_color == <span style=\"color: #032f62\">\"#ffd37f\"<\/span> ||\r\n  r_color == <span style=\"color: #032f62\">\"#ffffff\"<\/span>\r\n) {\r\n  <span style=\"color: #d73a49\">var<\/span> b_color = <span style=\"color: #032f62\">\"#808080\"<\/span>;\r\n} <span style=\"color: #d73a49\">else<\/span> {\r\n  b_color = <span style=\"color: #032f62\">\"#E8E8E8\"<\/span>;\r\n}\r\n\r\n<span style=\"color: #d73a49\">var<\/span> html =\r\n  <span style=\"color: #032f62\">`&lt;br&gt;&lt;p style=\"text-align:center;\"&gt;&lt;span style=\"color:<span style=\"color: #24292e\">${r_color}<\/span>; background-color:<span style=\"color: #24292e\">${b_color}<\/span>; font-size:28px; font-family:Lucida Console; padding: 10px; border: 1px solid black;\"&gt;&lt;b&gt;<span style=\"color: #24292e\">${r}<\/span>&lt;\/b&gt;&lt;\/span&gt;&lt;\/p&gt;&lt;br&gt;`<\/span>;\r\n\r\n<span style=\"color: #d73a49\">return<\/span> { <span style=\"color: #005cc5\">type<\/span>: <span style=\"color: #032f62\">\"text\"<\/span>, <span style=\"color: #005cc5\">text<\/span>: <span style=\"color: #032f62\">`<span style=\"color: #24292e\">${html}<\/span>`<\/span> };<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":2958685,"id":2958685,"title":"CoralBleaching_ArcadePopup_GIF","filename":"CoralBleaching_ArcadePopup_GIF.gif","filesize":1242896,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\/coralbleaching_arcadepopup_gif","alt":"Pop-up showing different levels of coral bleaching alert.","author":"319692","description":"","caption":"Coral bleaching alert level shown in a map pop-up. ","name":"coralbleaching_arcadepopup_gif","status":"inherit","uploaded_to":2955599,"date":"2026-02-26 20:15:25","modified":"2026-02-27 13:41:06","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":974,"height":428,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","medium-width":464,"medium-height":204,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","medium_large-width":768,"medium_large-height":337,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","large-width":974,"large-height":428,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","1536x1536-width":974,"1536x1536-height":428,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","2048x2048-width":974,"2048x2048-height":428,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF-826x363.gif","card_image-width":826,"card_image-height":363,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/CoralBleaching_ArcadePopup_GIF.gif","wide_image-width":974,"wide_image-height":428}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Example 5: Formatting text and accounting for null values<\/h3>\n<p>The <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=bd6b545b95654d91a0b7faf7b5e010f5\" target=\"_blank\" rel=\"noopener\">Landsat Level-2<\/a> layer displays global imagery over a range of time. By default, the pop-up will display a standard list of fields. However, in some images certain attributes may be null. Rather than displaying an empty value in the list of fields, we can use attribute expressions to create a pop-up that shows key information about the image cloud cover and collection date while simultaneously handling the case when the attributes are null.<\/p>\n<p>In the example below, logical statements are used to check whether the attributes (cloud cover &amp; collection date) are null. If they are, we return the generic string of &#8216;Unknown&#8217;. If the cloud cover attribute for the image is not null, the When function is used to classify the numeric value to a more understandable string. Likewise, if the collection date for the image is not null it is formatted using the <a href=\"https:\/\/developers.arcgis.com\/arcade\/function-reference\/text_functions\/#text\" target=\"_blank\" rel=\"noopener\">Text<\/a> function (expression not shown).<\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code><span style=\"color: #6a737d\">\/\/ Get variable representing image cloud cover<\/span>\r\n<span style=\"color: #d73a49\">var<\/span> cc = $imageCollectionItem.cloudcover;\r\n\r\n<span style=\"color: #6a737d\">\/\/ check if cc attribute is null or not<\/span>\r\n<span style=\"color: #d73a49\">if<\/span> (<span style=\"color: #e36209\">IsEmpty<\/span>(cc)) {\r\n  <span style=\"color: #d73a49\">return<\/span> <span style=\"color: #032f62\">\"Unknown\"<\/span>;\r\n} <span style=\"color: #d73a49\">else<\/span> {\r\n  <span style=\"color: #6a737d\">\/\/ if cc attribute is not null<\/span>\r\n  <span style=\"color: #6a737d\">\/\/ classify image cloud cover into three categories: Clear, Partly cloudy, Cloudy<\/span>\r\n  <span style=\"color: #e36209\">When<\/span>(\r\n    cc &lt;= <span style=\"color: #005cc5\">0.3<\/span>,\r\n    <span style=\"color: #032f62\">\"Clear\"<\/span>,\r\n    cc &gt; <span style=\"color: #005cc5\">0.3<\/span> &amp;&amp; cc &lt;= <span style=\"color: #005cc5\">0.7<\/span>,\r\n    <span style=\"color: #032f62\">\"Partly cloudy\"<\/span>,\r\n    cc &gt; <span style=\"color: #005cc5\">0.7<\/span>,\r\n    <span style=\"color: #032f62\">\"Cloudy\"<\/span>,\r\n    <span style=\"color: #032f62\">\"N\/A\"<\/span>\r\n  );\r\n}<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":2958832,"id":2958832,"title":"ComparePopupArcadeImageCollectionitem","filename":"ComparePopupArcadeImageCollectionitem.jpg","filesize":235329,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\/comparepopuparcadeimagecollectionitem","alt":"Comparison of two pop-ups side by side, one with no data and one with data.","author":"319692","description":"","caption":"Arcade is used to format pop-up text while also handling null values on image layer attribute fields.","name":"comparepopuparcadeimagecollectionitem","status":"inherit","uploaded_to":2955599,"date":"2026-02-27 16:24:18","modified":"2026-02-27 16:25:27","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1983,"height":490,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem.jpg","medium-width":464,"medium-height":115,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem.jpg","medium_large-width":768,"medium_large-height":190,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem.jpg","large-width":1920,"large-height":474,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem-1536x380.jpg","1536x1536-width":1536,"1536x1536-height":380,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem.jpg","2048x2048-width":1983,"2048x2048-height":490,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem-826x204.jpg","card_image-width":826,"card_image-height":204,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ComparePopupArcadeImageCollectionitem-1920x474.jpg","wide_image-width":1920,"wide_image-height":474}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>I hope that this blog has given you some ideas on how you can start leveraging Arcade in your imagery layer pop-ups. In the above examples, I outlined how the <code>$pixel<\/code> and <code>$imageCollectionItem<\/code> profile variables and their attributes can be leveraged in both attribute expressions and standalone content elements to format your rich text and perform on the fly calculations, but this is really only a glimpse of what is possible.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p><em>Note: The ArcGIS Arcade assistant (beta) is also supported for these new profiles. Give it a try and provide feedback for us so we can continue to improve!<\/em><\/p>\n","image_reference":false,"layout":"standard","image_reference_figure":"","snippet":"","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h3>What&#8217;s Next?<\/h3>\n<p>This is only the beginning of Arcade support for imagery layers. Keep an eye out for future releases of Arcade as we work towards:<\/p>\n<ul>\n<li>The ability to access imagery layer attributes from other hosted feature and imagery layers<\/li>\n<li>More functions for working with the <a href=\"https:\/\/developers.arcgis.com\/arcade\/guide\/types\/#pixel\" target=\"_blank\" rel=\"noopener\">Pixel data type<\/a><\/li>\n<\/ul>\n<p>And of course, if there&#8217;s something you want to see in Arcade, let us know via the <a href=\"https:\/\/community.esri.com\/t5\/arcgis-arcade\/gh-p\/arcgis-arcade\" target=\"_blank\" rel=\"noopener\">ArcGIS Arcade group<\/a> on Esri Community!<\/p>\n"}],"related_articles":"","show_article_image":false,"card_image":false,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/BlogBanner_Wide_JPG.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pixel perfect pop-ups: Arcade support for imagery layers<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pixel perfect pop-ups: Arcade support for imagery layers\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-27T18:24:35+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\"},\"author\":{\"name\":\"Taylor McNeil\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/63839a1126b72563ed17ee37fc4a3257\"},\"headline\":\"Pixel perfect pop-ups: Arcade support for imagery layers\",\"datePublished\":\"2026-02-27T23:00:16+00:00\",\"dateModified\":\"2026-03-27T18:24:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\"},\"wordCount\":8,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"dynamic imagery\",\"hosted imagery\",\"imagery layer\",\"pop-ups\",\"what's new february 2026\"],\"articleSection\":[\"Arcade\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\",\"name\":\"Pixel perfect pop-ups: Arcade support for imagery layers\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2026-02-27T23:00:16+00:00\",\"dateModified\":\"2026-03-27T18:24:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pixel perfect pop-ups: Arcade support for imagery layers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/63839a1126b72563ed17ee37fc4a3257\",\"name\":\"Taylor McNeil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/BlogProfilePicCrop-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/BlogProfilePicCrop-213x200.jpg\",\"caption\":\"Taylor McNeil\"},\"description\":\"Taylor is a Product Engineer on the ArcGIS Online team based in Nova Scotia, Canada. She has received a BSc in Biology and a MSc in Applied Geomatics. When she's not at work, she can be found taking care of her houseplants, reading copious amounts of fiction, and exploring local thrift stores.\",\"jobTitle\":\"product engineer\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/tmcneil\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pixel perfect pop-ups: Arcade support for imagery layers","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers","og_locale":"en_US","og_type":"article","og_title":"Pixel perfect pop-ups: Arcade support for imagery layers","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2026-03-27T18:24:35+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers"},"author":{"name":"Taylor McNeil","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/63839a1126b72563ed17ee37fc4a3257"},"headline":"Pixel perfect pop-ups: Arcade support for imagery layers","datePublished":"2026-02-27T23:00:16+00:00","dateModified":"2026-03-27T18:24:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers"},"wordCount":8,"commentCount":1,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["dynamic imagery","hosted imagery","imagery layer","pop-ups","what's new february 2026"],"articleSection":["Arcade"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers","name":"Pixel perfect pop-ups: Arcade support for imagery layers","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2026-02-27T23:00:16+00:00","dateModified":"2026-03-27T18:24:35+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/arcade\/pixel-perfect-pop-ups-arcade-support-for-imagery-layers#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Pixel perfect pop-ups: Arcade support for imagery layers"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/63839a1126b72563ed17ee37fc4a3257","name":"Taylor McNeil","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/BlogProfilePicCrop-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/BlogProfilePicCrop-213x200.jpg","caption":"Taylor McNeil"},"description":"Taylor is a Product Engineer on the ArcGIS Online team based in Nova Scotia, Canada. She has received a BSc in Biology and a MSc in Applied Geomatics. When she's not at work, she can be found taking care of her houseplants, reading copious amounts of fiction, and exploring local thrift stores.","jobTitle":"product engineer","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/tmcneil"}]}},"text_date":"February 27, 2026","author_name":"Taylor McNeil","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/tmcneil","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/BlogBanner_Wide_JPG.jpg","primary_product":"ArcGIS Online","tag_data":[{"term_id":762082,"name":"dynamic imagery","slug":"dynamic-imagery","term_group":0,"term_taxonomy_id":762082,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw"},{"term_id":759992,"name":"hosted imagery","slug":"hosted-imagery","term_group":0,"term_taxonomy_id":759992,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"},{"term_id":776582,"name":"imagery layer","slug":"imagery-layer","term_group":0,"term_taxonomy_id":776582,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":28061,"name":"pop-ups","slug":"pop-ups","term_group":0,"term_taxonomy_id":28061,"taxonomy":"post_tag","description":"","parent":0,"count":39,"filter":"raw"},{"term_id":780938,"name":"what's new february 2026","slug":"whats-new-february-2026","term_group":0,"term_taxonomy_id":780938,"taxonomy":"post_tag","description":"","parent":0,"count":38,"filter":"raw"}],"category_data":[{"term_id":777102,"name":"Arcade","slug":"arcade","term_group":0,"term_taxonomy_id":777102,"taxonomy":"category","description":"","parent":0,"count":98,"filter":"raw"}],"product_data":[{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2427,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-online","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2955599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/319692"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2955599"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2955599\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2955599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2955599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2955599"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2955599"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2955599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}