{"id":2251042,"date":"2024-02-26T14:00:24","date_gmt":"2024-02-26T22:00:24","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2251042"},"modified":"2024-04-12T01:06:48","modified_gmt":"2024-04-12T08:06:48","slug":"whats-new-in-arcgis-maps-sdk-for-javascript-4-29","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29","title":{"rendered":"What&#8217;s New in ArcGIS Maps SDK for JavaScript (4.29)"},"author":330302,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37101,738191],"tags":[769562,36161,23221,773282],"industry":[],"product":[761642,36831],"class_list":["post-2251042","blog","type-blog","status-publish","format-standard","hentry","category-announcements","category-developers","tag-arcgis-maps-sdk-for-javascript","tag-web-development","tag-web-mapping","tag-whats-new-february-2024","product-platform","product-js-api-arcgis"],"acf":{"authors":[{"ID":4271,"user_firstname":"Julie","user_lastname":"Powell","nickname":"Julie Powell","user_nicename":"julie-powell","display_name":"Julie Powell","user_email":"julie_powell@esri.com","user_url":"","user_registered":"2018-03-02 00:15:51","user_description":"Julie Powell is Principal Product Manager for Esri's web development technologies. She works to ensure developers can be successful in building state of the art, purposeful solutions using ArcGIS software. \r\nJulie brings 20 years of experience working with global leaders such as Hewlett-Packard and Esri, delivering a variety of software solutions for both the enterprise and consumer markets.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":330302,"user_firstname":"Yixuan 'Emily'","user_lastname":"Hu","nickname":"Emily Hu","user_nicename":"yhu","display_name":"Yixuan 'Emily' Hu","user_email":"yhu@esri.com","user_url":"","user_registered":"2023-01-25 19:36:28","user_description":"Yixuan 'Emily' Hu is a mapping and technology enthusiast working as the Product Manager for Esri's web development technologies. She was previously a software engineer for web mapping applications and GIS developer in commercial real estate, with an educational background in GIS and Urban Spatial Analytics. Emily is dedicated to leverage her experience in different parts of GIS industry and her global background to help customers build the most suitable applications.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/profile_square-465x465.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"The latest release of the JavaScript Maps SDK introduces charts components, editing constraints, 3D Tiles, better performance, and lots more.","flexible_content":[{"acf_fc_layout":"content","content":"<p>The first JavaScript Maps SDK release of the year (v4.29) is out and is packed full of powerful new capabilities and enhancements! It introduces charts components, access to attributes in vector tile layers, interactive editing constraints, 3D Tiles support, and many other frequently requested bells and whistles. Read on to learn about some of the highlights in the release!<\/p>\n<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#maps-sdk-components-beta\">Maps SDK components (beta)<\/a><\/h2>\n<p>At version 4.28, we introduced a brand-new\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/\"><strong>web component library<\/strong><\/a> that maximizes productivity of front-end web development. This release brings a new chart components library, enhanced component APIs, and improvements to the documentation and samples.<\/p>\n<p><strong>The new Charts components package<\/strong> offers a series of charting components that can be added to your applications to provide another dimension to maps \u2013 for example, emphasize trends or illustrate comparisons in your data.\u00a0Each chart type provided in charts components can help to learn more about your data in following ways:<\/p>\n<ul>\n<li>Bar Chart &#8211; Summarize and compare categorical data<\/li>\n<li>Line Chart &#8211; Allows you to visualize change over a continuous range &#8211; time or distance<\/li>\n<li>Pie Chart &#8211; Group data into slices to visualize part-to-whole relationships<\/li>\n<li>Histogram &#8211; summarize the distribution of a continuous numeric variable by measuring the frequency at which certain values appear in dataset<\/li>\n<li>Scatterplot &#8211; visualize the relationship between two numerical variables<\/li>\n<li>Boxplot &#8211; visualize and compare the distribution and central tendency of numeric values through their quartiles.<\/li>\n<\/ul>\n<p>They can be <a href=\"https:\/\/doc.arcgis.com\/en\/arcgis-online\/create-maps\/configure-charts-mv.htm\">configured in Map Viewer<\/a> and saved to your webmap or layer, then simply loaded in the chart component in your app or defined directly in code using the Chart model class.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><img decoding=\"async\" style=\"border: 1px solid #D3D3D3;\" title=\"College Scorecard\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/charts.png\" alt=\"Display charts in your app using the new charts components.\" \/><\/p>\n"},{"acf_fc_layout":"content","content":"<p>In the above example, a chart was first configured in Map Viewer, and saved to the feature layer in ArcGIS Online. In order to display the chart in the app, the chart component is added via HTML:<\/p>\n<pre><code style=\"padding: 0.5em; color: #333; background: #f8f8f8;\"><span style=\"color: #000080; font-weight: normal;\">&lt;<span style=\"color: #000080; font-weight: normal;\">arcgis-charts-scatter-plot<\/span> <span style=\"color: #008080;\">id<\/span>=<span style=\"color: #d14;\">\"scatter-plot\"<\/span>&gt;<\/span>\r\n  <span style=\"color: #000080; font-weight: normal;\">&lt;<span style=\"color: #000080; font-weight: normal;\">arcgis-charts-action-bar<\/span> <span style=\"color: #008080;\">slot<\/span>=<span style=\"color: #d14;\">\"action-bar\"<\/span>&gt;<\/span><span style=\"color: #000080; font-weight: normal;\">&lt;\/<span style=\"color: #000080; font-weight: normal;\">arcgis-charts-action-bar<\/span>&gt;<\/span>\r\n<span style=\"color: #000080; font-weight: normal;\">&lt;\/<span style=\"color: #000080; font-weight: normal;\">arcgis-charts-scatter-plot<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">The code snippet below<\/span>\u00a0gets the configuration from the feature layer, and wires together the layer and config with the chart.<\/p>\n<pre><code style=\"padding: 0.5em; color: #333; background: #f8f8f8;\"><span style=\"color: #998; font-style: italic;\">\/\/first get the feature layer that has charts configured with it, then...<\/span>\r\n<span style=\"color: #333; font-weight: bold;\">const<\/span> config = layer.charts[<span style=\"color: #008080;\">0<\/span>];\r\n<span style=\"color: #333; font-weight: bold;\">const<\/span> scatterPlot = <span style=\"color: #0086b3;\">document<\/span>.getElementById(<span style=\"color: #d14;\">\"scatter-plot\"<\/span>);\r\n\r\nscatterPlot.config = config;\r\nscatterPlot.layer = layer;\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p><strong>New documentation:\u00a0<\/strong>We have added new guide topics describing <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components-programming-patterns\/\">programming patterns<\/a>\u00a0for working with web components and\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components-get-started\/\">how to get started with your preferred frontend setup<\/a>. More details about components have also been added to the component API reference of each component package.<\/p>\n<p><strong>Component API updates: <\/strong>In an effort to evolve the component API design, updates were made to the map components API. Some of the major changes include:<\/p>\n<ul>\n<li>The\u00a0<code>&lt;arcgis-map\/&gt;<\/code>\u00a0and\u00a0<code>&lt;arcgis-scene\/&gt;<\/code>\u00a0components&#8217;\u00a0<code>viewReady<\/code>\u00a0event has been renamed to\u00a0<code>arcgisViewReadyChange<\/code>.<\/li>\n<li><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">All <code>view<\/code> and <code>ready<\/code> events now start with\u00a0<\/span>\u00a0<code>arcgis<\/code>.<\/li>\n<li><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">Properties from the View have been promoted to<\/span> <code>&lt;arcgis-map\/&gt;<\/code>\u00a0and\u00a0<code>&lt;arcgis-scene\/&gt;<\/code> with the goal of simplifying access to all properties, methods and events.<\/li>\n<\/ul>\n<p>Visit the\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/storybook\/?path=\/docs\/map-components_welcome--docs\">component reference<\/a>\u00a0for each component to check out the new properties, events, and methods.<\/p>\n<p>The JavaScript Maps SDK\u2019s component library will continue to expand over time with more pre-built ArcGIS experiences (encapsulated into web components) that can be easily brought into your own app.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#vectortilelayer-hittest\">Access attributes from Vector Tile Layers<\/a><\/h2>\n<p>Directly access attributes that are published with vector tile layers in 2D map views. When the map is clicked, the hitTest method finds the intersecting features within the vector tile layer and provides access to the features&#8217; attributes. <span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">In the example below, attributes<\/span> from the vector tile layer are displayed in a tooltip.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253962,"id":2253962,"title":"vectortilelayer-hittest","filename":"vectortilelayer-hittest.gif","filesize":487122,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/vectortilelayer-hittest","alt":"","author":"330302","description":"","caption":"","name":"vectortilelayer-hittest","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:36:45","modified":"2024-02-24 04:37:50","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":800,"height":400,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","medium-width":464,"medium-height":232,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","large-width":800,"large-height":400,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","1536x1536-width":800,"1536x1536-height":400,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","2048x2048-width":800,"2048x2048-height":400,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","card_image-width":800,"card_image-height":400,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/vectortilelayer-hittest.gif","wide_image-width":800,"wide_image-height":400}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-vectortilelayer-hittest\/"},{"acf_fc_layout":"content","content":"<p>Note: While this approach is useful for basic scenarios, carefully consider whether feature layers are a better fit for your requirements. For example, as more attributes are published with vector tile layers, performance degrades and can become a slower alternative than feature layers which are highly optimized for working with attributes. Feature layers also provide continuous feature geometries while vector tile layers are limited to feature attributes.<\/p>\n<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#mapview-hittest-respects-drawing-order\">Get features based on drawing order<\/a><\/h2>\n<p>When\u00a0viewing pop-ups, features from multiple layers are now displayed in the order they are displayed in the map. This also applies when using the hittest method on a map view. Previously, features were displayed based on the order they were returned from the server.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253952,"id":2253952,"title":"hittest-order","filename":"hittest-order.png","filesize":118776,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/hittest-order","alt":"","author":"330302","description":"","caption":"","name":"hittest-order","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:36:40","modified":"2024-02-24 04:37:50","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":936,"height":372,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","medium-width":464,"medium-height":184,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","medium_large-width":768,"medium_large-height":305,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","large-width":936,"large-height":372,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","1536x1536-width":936,"1536x1536-height":372,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","2048x2048-width":936,"2048x2048-height":372,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order-826x328.png","card_image-width":826,"card_image-height":328,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/hittest-order.png","wide_image-width":936,"wide_image-height":372}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#editing-updates\">Editing &amp; sketching improvements<\/a><\/h2>\n<p><strong>Interactive drawing with constraints: <\/strong>New editing constraints allow for more control and efficiency while drawing in 2D and 3D. By enabling tooltips and pressing <em>Tab<\/em>, the segment length, angles, and elevation constraints can be set directly in the tooltip. This capability is available in both the Editor and Sketch widgets, along with SketchViewModel.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2258482,"id":2258482,"title":"editing-constraints-2d-3d","filename":"editing-constraints-2d-3d.gif","filesize":1896497,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/editing-constraints-2d-3d","alt":"","author":"4271","description":"","caption":"","name":"editing-constraints-2d-3d","status":"inherit","uploaded_to":2251042,"date":"2024-02-27 13:31:35","modified":"2024-02-27 13:31:35","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":800,"height":450,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/editing-constraints-2d-3d.gif","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/sketch-3d\/"},{"acf_fc_layout":"content","content":"<p><strong>Directional pad (D-Pad): <\/strong>With the new directional pad widget, you can move the 2D map in eight directions using directional controls, making it easier to pan the map when map navigation is disabled while editing.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253882,"id":2253882,"title":"dpadwidget","filename":"dpadwidget.gif","filesize":278121,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/dpadwidget","alt":"","author":"330302","description":"","caption":"","name":"dpadwidget","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:29:48","modified":"2024-02-24 04:36:39","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":434,"height":316,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","medium-width":358,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","medium_large-width":434,"medium_large-height":316,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","large-width":434,"large-height":316,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","1536x1536-width":434,"1536x1536-height":316,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","2048x2048-width":434,"2048x2048-height":316,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","card_image-width":434,"card_image-height":316,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/dpadwidget.gif","wide_image-width":434,"wide_image-height":316}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-DirectionalPad.html"},{"acf_fc_layout":"content","content":"<p><strong>Improved date and time editing: <\/strong>Editing date-only, time-only, and timestamp-offset field types are supported in feature table widget. The feature table experience was also updated to use the Calcite Date Picker, Time Picker, and Input Time Zone.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#version-management-beta\">Version management<\/a><\/h2>\n<p>The new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/storybook\/?path=\/docs\/map-components_component-reference-version-management--docs\">version management<\/a> component (beta) supports <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/versioning-types.htm#ESRI_SECTION1_6FA2CFB5F9484FF096740D653C674B5D\">branch versioning<\/a> workflows in custom web applications, making collaboration on feature datasets easier. Users can access version lists, create versions, switch between versions, and update version settings with the version management component.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253922,"id":2253922,"title":"versionManagement","filename":"versionManagement.png","filesize":9027,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/versionmanagement","alt":"","author":"330302","description":"","caption":"","name":"versionmanagement","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:30:31","modified":"2024-02-24 04:36:39","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":534,"height":402,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","medium-width":347,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","medium_large-width":534,"medium_large-height":402,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","large-width":534,"large-height":402,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","1536x1536-width":534,"1536x1536-height":402,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","2048x2048-width":534,"2048x2048-height":402,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","card_image-width":534,"card_image-height":402,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/versionManagement.png","wide_image-width":534,"wide_image-height":402}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/storybook\/?path=\/docs\/map-components_component-reference-version-management--docs"},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#3d-updates\">3D updates<\/a><\/h2>\n<p><strong>3D Tiles support<\/strong>:\u00a0The new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-IntegratedMesh3DTilesLayer.html\">IntegratedMesh3DTilesLayer<\/a> loads integrated mesh data based on a hierarchical data structure defined by the <a href=\"https:\/\/www.ogc.org\/standard\/3DTiles\/\">3D Tiles<\/a> specification. 3D Tiles are an OGC standard used to visualize large amounts of 3D content, similar to Indexed Scene Layer (I3S) specification for scene layers. Like the existing integrated mesh, 3D Tiles can represent built and natural environments through realistic textures and elevation information can be used in combination with other geospatial content.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><strong>Custom visualizations and effects in 3D: <\/strong>Custom render nodes allow WebGL level access to the render pipeline of the Scene View to create custom visualizations and effects. These tasks can range from rendering objects, such as animating the moving parts of a windmill, to applying postprocessing effects, like a camera depth of field.<\/p>\n<p>Render nodes are an evolution of the external renderer which allows even more flexibility. Render nodes can inject custom WebGL code in various stages of the render pipeline to alter their outputs. See the following samples to get a sense for the power of custom render nodes: <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/custom-render-node-color\/\">Color modification<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/custom-render-node-dof\/\">Depth of field<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/custom-render-node-xfade\/\">Crossfade slide transition<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/custom-render-node-windmills\/\">Animated Windmills<\/a><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253872,"id":2253872,"title":"customrendernode-dof","filename":"customrendernode-dof.gif","filesize":793773,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/customrendernode-dof","alt":"","author":"330302","description":"","caption":"","name":"customrendernode-dof","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:29:40","modified":"2024-02-24 04:36:39","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":800,"height":444,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","medium-width":464,"medium-height":258,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","medium_large-width":768,"medium_large-height":426,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","large-width":800,"large-height":444,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","1536x1536-width":800,"1536x1536-height":444,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","2048x2048-width":800,"2048x2048-height":444,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","card_image-width":800,"card_image-height":444,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/customrendernode-dof.gif","wide_image-width":800,"wide_image-height":444}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/custom-render-node-dof\/"},{"acf_fc_layout":"content","content":"<p><strong>New 3D basemap styles<\/strong>: New 3D Basemap styles were added and existing 3D basemaps are no longer in beta. See the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/widgets-basemapgallery\/\">Basemap Gallery sample<\/a> to explore the new styles.<\/p>\n"},{"acf_fc_layout":"content","content":"<p id=\"tiled-display-support\" class=\"group relative s:flex s:flex-nowrap\"><strong>Tiled display support<\/strong>: Developers can now surpass the limitations of a single browser to support large, tiled displays with high resolutions and fluid rendering performance. This is achieved using the enhancement to scene view which enables the rendering of a 2D sub-region of the camera.<\/p>\n<p>The\u00a0<a href=\"https:\/\/github.com\/Esri\/sagis\">Scalable GIS Renderer<\/a> project on GitHub illustrates how this can be used for viewing 3D ArcGIS online web scenes on display walls.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2254062,"id":2254062,"title":"tiled-display-support","filename":"tiled-display-support.png","filesize":125609,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/tiled-display-support","alt":"","author":"4271","description":"","caption":"","name":"tiled-display-support","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 15:11:59","modified":"2024-02-24 15:11:59","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":800,"height":450,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/tiled-display-support.png","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#oriented-imagery\">Oriented imagery: 360-degree images and editing support<\/a><\/h2>\n<p><strong>360-degree images<\/strong>: Users can display and interact with 360-degree imagery with the Oriented Imagery Viewer widget, providing a panoramic view of the selected location.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253912,"id":2253912,"title":"orientedimagery-360","filename":"orientedimagery-360.gif","filesize":1570904,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/orientedimagery-360","alt":"","author":"330302","description":"","caption":"","name":"orientedimagery-360","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:30:18","modified":"2024-02-24 04:36:39","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":800,"height":400,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","medium-width":464,"medium-height":232,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","large-width":800,"large-height":400,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","1536x1536-width":800,"1536x1536-height":400,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","2048x2048-width":800,"2048x2048-height":400,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","card_image-width":800,"card_image-height":400,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/orientedimagery-360.gif","wide_image-width":800,"wide_image-height":400}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Edit oriented imagery layers<\/strong>: Users can add, modify and delete images in an oriented imagery layer using the Editor widget.<\/p>\n<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#performance-updates\">Improved performance<\/a><\/h2>\n<p><strong>Faster feature layers: <\/strong>We improved the performance and load time of feature layers that are styled with multi-layer CIM symbols in 2D map views.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2254072,"id":2254072,"title":"performance-cim","filename":"performance-cim.gif","filesize":715684,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/performance-cim","alt":"","author":"4271","description":"","caption":"","name":"performance-cim","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 15:23:54","modified":"2024-02-24 15:23:54","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":800,"height":398,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","medium-width":464,"medium-height":231,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","medium_large-width":768,"medium_large-height":382,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","large-width":800,"large-height":398,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","1536x1536-width":800,"1536x1536-height":398,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","2048x2048-width":800,"2048x2048-height":398,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","card_image-width":800,"card_image-height":398,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/performance-cim.gif","wide_image-width":800,"wide_image-height":398}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Smart mapping: <\/strong>Generating heat map is 100x faster than version 4.28 when using smart mapping.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2253932,"id":2253932,"title":"heatmap-perf","filename":"heatmap-perf-1.gif","filesize":350111,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/heatmap-perf-2","alt":"","author":"330302","description":"","caption":"","name":"heatmap-perf-2","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 04:36:33","modified":"2024-02-24 04:37:50","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":800,"height":398,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","medium-width":464,"medium-height":231,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","medium_large-width":768,"medium_large-height":382,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","large-width":800,"large-height":398,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","1536x1536-width":800,"1536x1536-height":398,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","2048x2048-width":800,"2048x2048-height":398,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","card_image-width":800,"card_image-height":398,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/heatmap-perf-1.gif","wide_image-width":800,"wide_image-height":398}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#basemapstyle---places-and-worldview-support\">Interactive POIs and world view in basemaps<\/a><\/h2>\n<p>You can add interactive POIs from the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-rest-places.html\">places service<\/a> in the light and dark navigation basemap styles. Additionally, the new world view property allows you to display country boundaries and labels <span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">from the perspective of a specific country.<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2254092,"id":2254092,"title":"basemap-with-places","filename":"basemap-with-places.png","filesize":44334,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/basemap-with-places","alt":"","author":"4271","description":"","caption":"","name":"basemap-with-places","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 15:38:30","modified":"2024-02-24 15:38:30","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":800,"height":400,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","medium-width":464,"medium-height":232,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","large-width":800,"large-height":400,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","1536x1536-width":800,"1536x1536-height":400,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","2048x2048-width":800,"2048x2048-height":400,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","card_image-width":800,"card_image-height":400,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/basemap-with-places.png","wide_image-width":800,"wide_image-height":400}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#widget-updates\">A few widget highlights<\/a><\/h2>\n<p>Note: All widget updates also apply to their corresponding <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#map-components\">components<\/a>.<\/p>\n<p><strong>Layer search<\/strong>: Easily find the layer you are looking for using the new filtering capability in the Layer List, Basemap Layer List, and Table List widgets. You can control whether the filter box is displayed using the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-TableList.html#VisibleElements\">visibleElements<\/a> property.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2254142,"id":2254142,"title":"layerlist","filename":"layerlist-1.png","filesize":26953,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/layerlist-2","alt":"","author":"4271","description":"","caption":"","name":"layerlist-2","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 16:26:14","modified":"2024-02-24 16:26:14","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":919,"height":430,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","medium-width":464,"medium-height":217,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","medium_large-width":768,"medium_large-height":359,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","large-width":919,"large-height":430,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","1536x1536-width":919,"1536x1536-height":430,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","2048x2048-width":919,"2048x2048-height":430,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1-826x386.png","card_image-width":826,"card_image-height":386,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/layerlist-1.png","wide_image-width":919,"wide_image-height":430}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Simplify the popup<\/strong>: With the newly added visible elements properties in the popup, you can control what parts of the popup experience you want to include in your app. For example, you can create an extremely simple popup that only has the basic popup content by hiding all elements, like this:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2254162,"id":2254162,"title":"simple-popup","filename":"simple-popup.png","filesize":52029,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/simple-popup","alt":"","author":"4271","description":"","caption":"","name":"simple-popup","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 17:29:16","modified":"2024-02-24 17:29:16","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":944,"height":341,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","medium-width":464,"medium-height":168,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","medium_large-width":768,"medium_large-height":277,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","large-width":944,"large-height":341,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","1536x1536-width":944,"1536x1536-height":341,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","2048x2048-width":944,"2048x2048-height":341,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup-826x298.png","card_image-width":826,"card_image-height":298,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/simple-popup.png","wide_image-width":944,"wide_image-height":341}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Deeper use of Calcite in widgets:\u00a0<\/strong>While all widgets were designed based on Calcite design specifications and use Calcite icons, many are not using Calcite <em>components<\/em> internally. We are working to update all widgets to use Calcite components for several reasons, including but not limited to:<\/p>\n<ul>\n<li>Improved user experience (for example, the new filter experience in Layer List, and the Date Picker in Feature Table)<\/li>\n<li>Better accessibility<\/li>\n<li>More consistency between widgets<\/li>\n<\/ul>\n<p>In this release, the following widgets were updated with Calcite components: BasemapLayerList, BasemapToggle, Fullscreen, Home, LayerList, Locate, NavigationToggle, ScaleBar, TableList, Track, and Zoom.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Are you working with frameworks?<\/h2>\n<p>Today, many developers are using frameworks for their front-end development. To assist with development with frameworks and the JavaScript Maps SDK, we are gradually adding more resources on the SDK site. Many of these resources are focused on using the new web components (beta) which are particularly useful for building apps with the JS Maps SDK and frameworks. Here are some examples of resources that help you with your web app development within frameworks:<\/p>\n<ul>\n<li>A new guide topic about the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components-programming-patterns\/#programming-patterns-in-frameworks\">programming patterns when building with frameworks<\/a>.<\/li>\n<li><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components-get-started-react\/\">Getting started guide for React &amp; components<\/a><\/li>\n<li><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components-get-started-angular\/\">Getting started guide for Angular &amp; components<\/a><\/li>\n<li><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/tutorials\/create-a-web-app-using-components\/\">A new tutorial that uses Vite<\/a><\/li>\n<li>A subset of samples (11) show how to use ES modules (ESM) &#8211; using <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/es-modules\/\">@arcgis\/core<\/a>\u00a0and\u00a0<a href=\"https:\/\/vitejs.dev\/\">Vite.js<\/a>. These samples can be run live in the browser using the <a href=\"https:\/\/developer.stackblitz.com\/\">StackBlitz<\/a>\u00a0online development environment without the need to download and install locally. To try it out, search for samples with the\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/?tagged=ESM\">ESM tag<\/a>, and click the &#8216;Open ESM sample (StackBlitz)&#8217; button.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"content","content":"<h2>Learn more<\/h2>\n<p><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">This release contains many features and enhancements not mentioned in this blog post.<\/span> Check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/\">release notes<\/a> and new samples for <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#coveragejson-support-for-imagerytilelayer\">CoverageJSON support for imagery tile layer,<\/a> <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#raster-functions\">new client-side raster functions<\/a>, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#utility-network\">utility network updates<\/a>, and more.<\/p>\n<h2>Join us at Esri Developer Summit<\/h2>\n<p>The <a href=\"https:\/\/www.esri.com\/en-us\/about\/events\/devsummit\/overview\">Esri Developer Summit<\/a> is a gathering for geospatial developers to learn about the latest web mapping development trends, capabilities, and best practices! We\u2019ve been working hard on delivering inspiring new demos and technical presentations. This is a great opportunity to connect with the JavaScript Maps SDK product team and network with fellow developers. Attend the technical presentations to expand your knowledge, get your questions answered at the Web Development showcase, and enjoy a variety of fun activities at Palm Springs. Check out our <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/web-developers-guide-to-the-2024-esri-developer-summit\/\">web developer&#8217;s guide<\/a> to 2024 Esri Developer Summit for session recommendations and more!<\/p>\n<p>We look forward to seeing you there! <span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">If you are unable to attend please check out videos our presentations that will be published shortly thereafter.<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2254422,"id":2254422,"title":"Join us at the 2024 Esri Developer Summit March 12-15 in Palm Springs, California","filename":"ds-small-banner.png","filesize":1249066,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\/ds-small-banner","alt":"Join us at the 2024 Esri Developer Summit March 12-15 in Palm Springs, California","author":"330302","description":"","caption":"","name":"ds-small-banner","status":"inherit","uploaded_to":2251042,"date":"2024-02-24 21:46:16","modified":"2024-03-03 17:12:50","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":3740,"height":394,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner.png","medium-width":464,"medium-height":49,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner.png","medium_large-width":768,"medium_large-height":81,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner.png","large-width":1920,"large-height":202,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner-1536x162.png","1536x1536-width":1536,"1536x1536-height":162,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner-2048x216.png","2048x2048-width":2048,"2048x2048-height":216,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner-826x87.png","card_image-width":826,"card_image-height":87,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/ds-small-banner-1920x202.png","wide_image-width":1920,"wide_image-height":202}},"image_position":"center","orientation":"horizontal","hyperlink":""}],"related_articles":[{"ID":2114102,"post_author":"320932","post_date":"2023-11-13 09:00:25","post_date_gmt":"2023-11-13 17:00:25","post_content":"","post_title":"Build GIS Web Apps with JavaScript Maps SDK components","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"build-gis-web-apps-with-javascript-maps-sdk-components","to_ping":"","pinged":"","post_modified":"2026-02-26 14:39:54","post_modified_gmt":"2026-02-26 22:39:54","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2114102","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2235252,"post_author":"7641","post_date":"2024-02-28 21:53:18","post_date_gmt":"2024-02-29 05:53:18","post_content":"","post_title":"What's New in ArcGIS Online (February 2024)","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"whats-new-arcgis-online-february-2024","to_ping":"","pinged":"","post_modified":"2024-10-14 12:57:18","post_modified_gmt":"2024-10-14 19:57:18","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2235252","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2223552,"post_author":"309572","post_date":"2024-03-04 11:38:04","post_date_gmt":"2024-03-04 19:38:04","post_content":"","post_title":"What's New in Calcite Design System (March 2024)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"calcite-design-system-february-2024-update","to_ping":"","pinged":"","post_modified":"2024-03-04 12:05:04","post_modified_gmt":"2024-03-04 20:05:04","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2223552","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/chart-card-bold-small.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/chart-banner-simple.png"},"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>What&#039;s New in ArcGIS Maps SDK for JavaScript (4.29)<\/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\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What&#039;s New in ArcGIS Maps SDK for JavaScript (4.29)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\" \/>\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=\"2024-04-12T08:06:48+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\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\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\"},\"author\":{\"name\":\"Yixuan 'Emily' Hu\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/10b3d4e673fe41b52701d08f4cf10922\"},\"headline\":\"What&#8217;s New in ArcGIS Maps SDK for JavaScript (4.29)\",\"datePublished\":\"2024-02-26T22:00:24+00:00\",\"dateModified\":\"2024-04-12T08:06:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\"},\"wordCount\":9,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS Maps SDK for JavaScript\",\"Web Development\",\"Web Mapping\",\"whats new february 2024\"],\"articleSection\":[\"Announcements\",\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\",\"name\":\"What's New in ArcGIS Maps SDK for JavaScript (4.29)\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2024-02-26T22:00:24+00:00\",\"dateModified\":\"2024-04-12T08:06:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What&#8217;s New in ArcGIS Maps SDK for JavaScript (4.29)\"}]},{\"@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\/10b3d4e673fe41b52701d08f4cf10922\",\"name\":\"Yixuan 'Emily' Hu\",\"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\/2025\/09\/profile_square-465x465.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/profile_square-465x465.jpeg\",\"caption\":\"Yixuan 'Emily' Hu\"},\"description\":\"Yixuan 'Emily' Hu is a mapping and technology enthusiast working as the Product Manager for Esri's web development technologies. She was previously a software engineer for web mapping applications and GIS developer in commercial real estate, with an educational background in GIS and Urban Spatial Analytics. Emily is dedicated to leverage her experience in different parts of GIS industry and her global background to help customers build the most suitable applications.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/yixuan-emily-hu-69671713b\/\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/yhu\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What's New in ArcGIS Maps SDK for JavaScript (4.29)","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\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29","og_locale":"en_US","og_type":"article","og_title":"What's New in ArcGIS Maps SDK for JavaScript (4.29)","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T08:06:48+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29"},"author":{"name":"Yixuan 'Emily' Hu","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/10b3d4e673fe41b52701d08f4cf10922"},"headline":"What&#8217;s New in ArcGIS Maps SDK for JavaScript (4.29)","datePublished":"2024-02-26T22:00:24+00:00","dateModified":"2024-04-12T08:06:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29"},"wordCount":9,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS Maps SDK for JavaScript","Web Development","Web Mapping","whats new february 2024"],"articleSection":["Announcements","Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29","name":"What's New in ArcGIS Maps SDK for JavaScript (4.29)","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2024-02-26T22:00:24+00:00","dateModified":"2024-04-12T08:06:48+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"What&#8217;s New in ArcGIS Maps SDK for JavaScript (4.29)"}]},{"@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\/10b3d4e673fe41b52701d08f4cf10922","name":"Yixuan 'Emily' Hu","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\/2025\/09\/profile_square-465x465.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/profile_square-465x465.jpeg","caption":"Yixuan 'Emily' Hu"},"description":"Yixuan 'Emily' Hu is a mapping and technology enthusiast working as the Product Manager for Esri's web development technologies. She was previously a software engineer for web mapping applications and GIS developer in commercial real estate, with an educational background in GIS and Urban Spatial Analytics. Emily is dedicated to leverage her experience in different parts of GIS industry and her global background to help customers build the most suitable applications.","sameAs":["https:\/\/www.linkedin.com\/in\/yixuan-emily-hu-69671713b\/"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/yhu"}]}},"text_date":"February 26, 2024","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-29","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/chart-banner-simple.png","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":769562,"name":"ArcGIS Maps SDK for JavaScript","slug":"arcgis-maps-sdk-for-javascript","term_group":0,"term_taxonomy_id":769562,"taxonomy":"post_tag","description":"","parent":0,"count":27,"filter":"raw"},{"term_id":36161,"name":"Web Development","slug":"web-development","term_group":0,"term_taxonomy_id":36161,"taxonomy":"post_tag","description":"","parent":0,"count":19,"filter":"raw"},{"term_id":23221,"name":"Web Mapping","slug":"web-mapping","term_group":0,"term_taxonomy_id":23221,"taxonomy":"post_tag","description":"","parent":0,"count":28,"filter":"raw"},{"term_id":773282,"name":"whats new february 2024","slug":"whats-new-february-2024","term_group":0,"term_taxonomy_id":773282,"taxonomy":"post_tag","description":"","parent":0,"count":26,"filter":"raw"}],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1957,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":420,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":213,"filter":"raw"},{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":361,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=js-api-arcgis","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2251042","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\/330302"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2251042"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2251042\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2251042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2251042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2251042"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2251042"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2251042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}