{"id":1795272,"date":"2022-12-16T10:00:00","date_gmt":"2022-12-16T18:00:00","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1795272"},"modified":"2024-04-12T03:19:33","modified_gmt":"2024-04-12T10:19:33","slug":"year-in-review-arcgis-maps-sdk-for-javascript-2022","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022","title":{"rendered":"2022 Year in Review: ArcGIS Maps SDK for JavaScript"},"author":10062,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[764532,765942,768012,24921,23571],"industry":[],"product":[761642,36831],"class_list":["post-1795272","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-4-23","tag-4-24","tag-4-25","tag-javascript","tag-whats-new","product-platform","product-js-api-arcgis"],"acf":{"authors":[{"ID":10062,"user_firstname":"Anne","user_lastname":"Fitz","nickname":"Anne Fitz","user_nicename":"afitz","display_name":"Anne Fitz","user_email":"afitz@esri.com","user_url":"","user_registered":"2019-10-15 00:07:57","user_description":"Anne Fitz is a Senior Product Engineer at Esri, working on the ArcGIS Maps SDK for JavaScript and ArcGIS Arcade. Her expertise primarily focuses on dynamic vector symbology (CIM symbols), data visualization, animation, ArcGIS Arcade integration, and widgets.  Anne\u2019s primary goal is to help developers succeed in building geospatial applications, providing them with the tools and knowledge they need to bring their ideas to life. She has been with Esri for over five years.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.","flexible_content":[{"acf_fc_layout":"content","content":"<p>What a year! In 2022, the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/\">ArcGIS Maps SDK for JavaScript<\/a> (previously known as the ArcGIS API for JavaScript) underwent a <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/announcements\/introducing-the-arcgis-maps-sdks\/\">name change<\/a>, had three successful releases, and brought you lots of exciting new features, bug fixes, and enhancements!<\/p>\n<p>Here&#8217;s a quick look at the year by the numbers:<\/p>\n<ul>\n<li>30 new samples added<\/li>\n<li>130 new classes added<\/li>\n<li>58 support bugs fixed<\/li>\n<li>14 support enhancements implemented<\/li>\n<\/ul>\n<p>Now let&#8217;s take a look at the key highlights from this past year.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Editing<\/h2>\n<p>A significant amount of work was put into improving the editing experience this year \u2014 you&#8217;ll notice this work right away in the new and improved <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Editor.html\">Editor widget<\/a>. The Editor now supports selection and snapping for improved feature manipulation and placement.<\/p>\n<table>\n<tbody>\n<tr>\n<th style=\"text-align: center;\" colspan=\"2\"><strong>Editor widget<\/strong><\/th>\n<\/tr>\n<tr>\n<th style=\"text-align: center;\"><strong>Version 4.22<\/strong><\/th>\n<th style=\"text-align: center;\"><strong>Version 4.25<\/strong><\/th>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1796122\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-9.28.35-AM.png\" alt=\"\" width=\"299\" height=\"215\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1796232 size-full\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-9.44.34-AM.png\" alt=\"\" width=\"299\" height=\"414\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-FeatureForm.html\">FeatureForm<\/a>, we&#8217;ve added support for contingent attribute values, allowing you to calculate the value of a field based on the data value of a different field. Taking that one step further, we introduced the ability to access data from other layers through FeatureSets in version 4.25.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1796472,"id":1796472,"title":"async-form","filename":"async-form.gif","filesize":547361,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/async-form-2","alt":"","author":"10062","description":"","caption":"When filling out the FeatureForm for a tree feature, the diameter at breast height is automatically calculated once the tree's circumference is entered. When the location of the feature is updated in the map, the form finds the nearest address from the corresponding layer in the map.","name":"async-form-2","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 19:15:10","modified":"2022-12-14 19:24:09","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\/2022\/12\/async-form-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/async-form.gif","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/widgets-featureform-async\/"},{"acf_fc_layout":"content","content":"<h2>Visualization<\/h2>\n<p>We also spent a lot of time this year working on many exciting visualization capabilities &#8211; such as new ways to aggregate your data with binning and custom cluster styles, along with some new and improved renderers. Let&#8217;s take a closer look at these enhancements.<\/p>\n<h3>Aggregation<\/h3>\n<p>At version 4.24, we introduced <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-FeatureReductionBinning.html\"><strong>client-side binning<\/strong><\/a> as a new feature reduction method in 2D <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-views-MapView.html\">MapViews<\/a>. Binning visualizations aggregate point data client-side by geohash cells based on a provided level of detail. To learn more about this new feature, check out the following blog post: <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/binning-now-available-in-the-arcgis-api-for-javascript\/\">Binning now available in the ArcGIS API for JavaScript<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1784702,"id":1784702,"title":"banner-binning-2","filename":"banner-binning-2.jpg","filesize":362180,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/mapping\/how-to-summarize-aggregate-data-using-arcade-in-popups\/banner-binning-2","alt":"binning 2 banner","author":"6561","description":"","caption":"","name":"banner-binning-2","status":"inherit","uploaded_to":1778122,"date":"2022-11-30 20:43:54","modified":"2022-11-30 20:44:10","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":1920,"height":1080,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2.jpg","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2.jpg","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2.jpg","large-width":1920,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2-1536x864.jpg","1536x1536-width":1536,"1536x1536-height":864,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2.jpg","2048x2048-width":1920,"2048x2048-height":1080,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2-826x465.jpg","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-binning-2-1920x1080.jpg","wide_image-width":1920,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/binning-now-available-in-the-arcgis-api-for-javascript\/"},{"acf_fc_layout":"content","content":"<p>More recently at version 4.25, we introduced the ability to <strong>override the default style of point clusters<\/strong> with either a dedicated cluster <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-FeatureReductionCluster.html#symbol\">symbol<\/a> or <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-FeatureReductionCluster.html#renderer\">renderer<\/a>. Learn more about all the different ways you can style your clusters in <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/8-ways-to-style-point-clusters-on-the-web\/\">8 ways to style point clusters on the web<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1776682,"id":1776682,"title":"banner","filename":"banner-2.jpg","filesize":420284,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/8-ways-to-style-point-clusters-on-the-web\/banner-286","alt":"cluster style banner.","author":"6561","description":"","caption":"","name":"banner-286","status":"inherit","uploaded_to":1775722,"date":"2022-11-18 01:18:30","modified":"2022-11-18 01:18:45","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":1920,"height":1080,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2.jpg","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2.jpg","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2.jpg","large-width":1920,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2-1536x864.jpg","1536x1536-width":1536,"1536x1536-height":864,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2.jpg","2048x2048-width":1920,"2048x2048-height":1080,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2-826x465.jpg","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/banner-2-1920x1080.jpg","wide_image-width":1920,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/8-ways-to-style-point-clusters-on-the-web\/"},{"acf_fc_layout":"content","content":"<h3>Pie charts style<\/h3>\n<p>You can now use pie charts to visualize multiple attribute values of a feature in a point or polygon layer at once with the new <strong><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-renderers-PieChartRenderer.html\">PieChartRenderer<\/a><\/strong> in 2D. The value of each pie slice can be determined by a field value or Arcade expression.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1796512,"id":1796512,"title":"pie-chart","filename":"pie-chart.png","filesize":211802,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/pie-chart-2","alt":"","author":"10062","description":"","caption":"The PieChartRenderer is used to display educational attainment in each county.","name":"pie-chart-2","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 19:35:36","modified":"2022-12-14 19:36:35","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\/2022\/12\/pie-chart-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/pie-chart.png","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/visualization-pie-chart\/"},{"acf_fc_layout":"content","content":"<h3>Improved Heatmap support<\/h3>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-renderers-HeatmapRenderer.html\">HeatmapRenderer<\/a> now renders with WebGL, which means it can now take advantage of the following benefits:<\/p>\n<ol>\n<li>Improved performance with large datasets<\/li>\n<li>Improved responsiveness<\/li>\n<li>Support for Popups and programmatic hitTests<\/li>\n<li>Support for filtering and labeling with FeatureFilter and FeatureEffect in 2D MapViews<\/li>\n<\/ol>\n<p>Check out <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/heat-maps-now-render-faster-and-smoother-in-the-browser\/\">Heat maps now render faster and smoother in the browser<\/a> to learn more. In addition to all of this, Heatmaps are now supported in 3D! ?<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1796532,"id":1796532,"title":"3d-heatmap","filename":"3d-heatmap.png","filesize":692134,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/3d-heatmap-2","alt":"","author":"10062","description":"","caption":"Starting at version 4.23, heatmaps are supported in 3D SceneViews.","name":"3d-heatmap-2","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 19:38:39","modified":"2022-12-14 19:39:25","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\/2022\/12\/3d-heatmap-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-heatmap.png","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>FlowRenderer<\/h3>\n<p>At version 4.23, we introduced the <strong><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-renderers-FlowRenderer.html\">FlowRenderer<\/a>, <\/strong>which brings a new way of rendering multidimensional raster data with animated streamlines. Learn more about this exciting new way to visualize magnitude and direction in your imagery layers at <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/create-an-animated-flow-visualization-with-the-arcgis-api-for-javascript\/\">Create an animated flow visualization with the ArcGIS API for JavaScript<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1528012,"id":1528012,"title":"change-flow2","filename":"change-flow2.gif","filesize":6555110,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/create-an-animated-flow-visualization-with-the-arcgis-api-for-javascript\/change-flow2","alt":"","author":"10062","description":"","caption":"Transitioning between the VectorFieldRenderer and the FlowRenderer to display wind speeds during Hurricane Ida.","name":"change-flow2","status":"inherit","uploaded_to":1424422,"date":"2022-03-23 16:54:00","modified":"2022-03-23 16:55:31","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":1000,"height":500,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","medium-width":464,"medium-height":232,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","large-width":1000,"large-height":500,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","1536x1536-width":1000,"1536x1536-height":500,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","2048x2048-width":1000,"2048x2048-height":500,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2-826x413.gif","card_image-width":826,"card_image-height":413,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/12\/change-flow2.gif","wide_image-width":1000,"wide_image-height":500}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/create-an-animated-flow-visualization-with-the-arcgis-api-for-javascript\/"},{"acf_fc_layout":"content","content":"<h2>Media Layer<\/h2>\n<p>Another big highlight this year was the introduction of <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-MediaLayer.html\">MediaLayer<\/a>. MediaLayer allows you to add static <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-ImageElement.html\">image<\/a>\u00a0and\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-VideoElement.html\">video<\/a> elements to the map at a specified <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-ImageElement.html#georeference\">geographic location<\/a> in 2D and 3D. <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-ControlPointsGeoreference.html\">Control points<\/a> can be used to position, scale, rotate, or skew the image or video in the map.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1796542,"id":1796542,"title":"media-layer","filename":"media-layer.gif","filesize":4099754,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/media-layer-2","alt":"","author":"10062","description":"","caption":"Add geolocated videos and images to your 2D and 3D maps with MediaLayer. This example uses a NASA video tracking sea salt, dust, and smoke across the globe.","name":"media-layer-2","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 19:40:23","modified":"2022-12-14 19:42:58","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\/2022\/12\/media-layer-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/media-layer.gif","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-medialayer-video\/"},{"acf_fc_layout":"content","content":"<h2>Related records in Popups<\/h2>\n<p>We&#8217;ve also added the long-awaited capability to display related records in Popups using the new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-popup-content-RelationshipContent.html\">RelationshipContent<\/a>\u00a0content type\u00a0in\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-PopupTemplate.html\">PopupTemplate<\/a>. When configuring RelationshipContent, the related layer or table must be added to the map. Learn all about this new feature in this blog post, <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/browsing-related-records-with-the-arcgis-api-for-javascript\/\">Browsing Related Records in the ArcGIS API for JavaScript<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1796632,"id":1796632,"title":"Screen Shot 2022-12-14 at 11.47.52 AM","filename":"Screen-Shot-2022-12-14-at-11.47.52-AM.png","filesize":745712,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/screen-shot-2022-12-14-at-11-47-52-am","alt":"","author":"10062","description":"Browse related records in popups to explore countries with World Cup victories and stadiums.","caption":"Browse related records in popups to explore countries with World Cup victories and stadiums.","name":"screen-shot-2022-12-14-at-11-47-52-am","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 19:56:17","modified":"2022-12-14 19:58:26","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":1678,"height":970,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM.png","medium-width":452,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM.png","medium_large-width":768,"medium_large-height":444,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM.png","large-width":1678,"large-height":970,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM-1536x888.png","1536x1536-width":1536,"1536x1536-height":888,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM.png","2048x2048-width":1678,"2048x2048-height":970,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM-804x465.png","card_image-width":804,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-11.47.52-AM.png","wide_image-width":1678,"wide_image-height":970}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/browsing-related-records-with-the-arcgis-api-for-javascript\/"},{"acf_fc_layout":"content","content":"<h2>3D support<\/h2>\n<p>On the 3D side of things, we&#8217;ve made significant enhancements over the past year to improve your experience working with scenes.<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Weather.html\">Weather widget<\/a>\u00a0<\/strong>&#8211; Bring your scene to life with realistic weather effects like rain, snow, or fog! <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1796682\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-weather.gif\" alt=\"\" width=\"799\" height=\"450\" \/><\/li>\n<li><strong>Length dimensioning<\/strong> &#8211; Annotate objects in your scene with horizontal or vertical <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-analysis-LengthDimension.html\">dimensions<\/a>. Did you know that dimensions can be saved and shared in web scenes?<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1796692\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-dimensioning.gif\" alt=\"\" width=\"799\" height=\"450\" \/><\/li>\n<li><strong>Blend modes<\/strong> &#8211; Create new and aesthetically pleasing visualizations of the ground using\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-TileLayer.html#blendMode\">blend modes<\/a>\u00a0in 3D. You can use the same blend modes already available in 2D to combine multiple tiled layers in your scene.<\/li>\n<li><strong>Line style markers<\/strong> &#8211; Add <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-LineStyleMarker3D.html\">markers<\/a> to your line features to emphasize their starting and ending points, or arrows to indicate a direction.<\/li>\n<li><strong>Label styles<\/strong> &#8211; Improve the appearance of labels and text in your scenes by using the new styling options on\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-TextSymbol3DLayer.html\">TextSymbol3DLayer<\/a>.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1796712\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-line-markers.png\" alt=\"\" width=\"800\" height=\"450\" \/><\/li>\n<li><strong>Voxel layer enhancements<\/strong> &#8211; Drill deeper into your voxel data using variables and client-side render capabilities. Learn more about all that&#8217;s possible with <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-VoxelLayer.html\">VoxelLayers<\/a> in this <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/\">blog post<\/a>.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1796742\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/3d-voxel-layer.gif\" alt=\"\" width=\"800\" height=\"450\" \/><\/li>\n<\/ul>\n"},{"acf_fc_layout":"content","content":"<h2>Route layer<\/h2>\n<p>In early 2022, we introduced <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-RouteLayer.html\">RouteLayer<\/a>, a new standalone layer for analyzing, visualizing and saving routes. Later in the year, we fully integrated RouteLayer into the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Directions.html\">Directions widget<\/a>. Use Directions to open routes created by others or save new routes directly to ArcGIS Online. See <a title=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-the-new-routelayer\/\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-the-new-routelayer\/\">Introducing the new RouteLayer<\/a>\u00a0to learn more.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1796772,"id":1796772,"title":"routelayer","filename":"routelayer.png","filesize":530420,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/routelayer","alt":"","author":"10062","description":"","caption":"","name":"routelayer","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 20:50:27","modified":"2022-12-14 20:50:27","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":421,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","medium-width":464,"medium-height":244,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","medium_large-width":768,"medium_large-height":404,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","large-width":800,"large-height":421,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","1536x1536-width":800,"1536x1536-height":421,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","2048x2048-width":800,"2048x2048-height":421,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","card_image-width":800,"card_image-height":421,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/routelayer.png","wide_image-width":800,"wide_image-height":421}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-the-new-routelayer\/"},{"acf_fc_layout":"content","content":"<h2>reactiveUtils<\/h2>\n<p>We also introduced <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-core-reactiveUtils.html\">reactiveUtils<\/a> this year to provide new utilities and convenience functions for watching properties. It offers significant enhancements over <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-core-watchUtils.html\">watchUtils<\/a>, which is now deprecated. Enhancements include improved developer usability and type safety, (i.e. using <a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/release-notes\/typescript-3-7.html\">optional chaining<\/a>\u00a0of object properties), as well as the ability to work directly with\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-core-Collection.html\">Collections<\/a>\u00a0and multiple properties.<\/p>\n<pre><code style=\"padding: 0.5em; color: #333; background: #f8f8f8;\">\r\n<span style=\"color: #998; font-style: italic;\">\/\/ WatchUtils: watch for changes in the view's \"updating\" property, \r\n\/\/   ie. true\/false<\/span>\r\nwatchUtils.watch(view, <span style=\"color: #d14;\">\"updating\"<\/span>, (updating) =&gt; <span style=\"color: #0086b3;\">console<\/span>.log(updating));\r\n\r\n<span style=\"color: #998; font-style: italic;\">\/\/ ReactiveUtils: Does the same as above with slightly different syntax<\/span>\r\nreactiveUtils.watch(() =&gt; view.updating, (updating) =&gt; <span style=\"color: #0086b3;\">console<\/span>.log(updating));\r\n\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<h2>Other 2022 highlights<\/h2>\n<p>Besides adding all these new features to our API, here are some of the other great highlights from this year:<\/p>\n<ul>\n<li>We welcomed back <strong>in-person conferences<\/strong>! We loved seeing you all at the Developers Summit in Palm Springs and at the User Conference in San Diego. The <a href=\"https:\/\/www.esri.com\/en-us\/about\/events\/devsummit\/overview\">2023 Developer Summit<\/a> will be held <strong>March 7-10th<\/strong>, and we hope to see you again this year. Registration is open now!<\/li>\n<li>We started hosting <strong>release<\/strong> <strong>livestreams\u00a0<\/strong>to let you hear about the release directly from the product team. In case you missed them, each livestream recording can be found on the <a href=\"https:\/\/www.youtube.com\/@ArcGISDevelopers\/streams\">ArcGIS Developers YouTube channel<\/a>.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":1796342,"id":1796342,"title":"Screen Shot 2022-12-14 at 10.43.22 AM","filename":"Screen-Shot-2022-12-14-at-10.43.22-AM.png","filesize":341474,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\/screen-shot-2022-12-14-at-10-43-22-am","alt":"","author":"10062","description":"","caption":"","name":"screen-shot-2022-12-14-at-10-43-22-am","status":"inherit","uploaded_to":1795272,"date":"2022-12-14 18:45:14","modified":"2022-12-14 18:45: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":968,"height":253,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","medium-width":464,"medium-height":121,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","medium_large-width":768,"medium_large-height":201,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","large-width":968,"large-height":253,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","1536x1536-width":968,"1536x1536-height":253,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","2048x2048-width":968,"2048x2048-height":253,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM-826x216.png","card_image-width":826,"card_image-height":216,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-10.43.22-AM.png","wide_image-width":968,"wide_image-height":253}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.youtube.com\/@ArcGISDevelopers\/streams"},{"acf_fc_layout":"content","content":"<h2>Happy holidays!<\/h2>\n<p>Thanks for spending the year with us. This blog just provides an overview of the features added this past year. For more detailed information about each release this year, visit the release notes for\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.25\/\">4.25<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.24\/\">4.24<\/a>, and\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.23\/\">4.23<\/a>.<\/p>\n<p>From all of us working on the ArcGIS Maps SDK for JavaScript, we hope you have a wonderful holiday season and a happy New Year! \u2728<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1796792\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/mappy-holidays-2.png\" alt=\"\" width=\"1200\" height=\"628\" srcset=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/mappy-holidays-2.png 1200w, https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/mappy-holidays-2-826x432.png 826w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n"}],"related_articles":[{"ID":1760672,"post_author":"4271","post_date":"2022-11-09 21:14:01","post_date_gmt":"2022-11-10 05:14:01","post_content":"","post_title":"What's new in ArcGIS API for JavaScript (v4.25)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-arcgis-api-for-javascript-v4-25","to_ping":"","pinged":"","post_modified":"2024-04-12 03:26:19","post_modified_gmt":"2024-04-12 10:26:19","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1760672","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1615042,"post_author":"4271","post_date":"2022-06-23 13:03:29","post_date_gmt":"2022-06-23 20:03:29","post_content":"","post_title":"What's new in ArcGIS API for JavaScript (version 4.24)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-arcgis-api-for-javascript-version-4-24","to_ping":"","pinged":"","post_modified":"2022-11-21 01:46:11","post_modified_gmt":"2022-11-21 09:46:11","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1615042","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1519642,"post_author":"4271","post_date":"2022-03-23 10:10:51","post_date_gmt":"2022-03-23 17:10:51","post_content":"","post_title":"What's new in ArcGIS API for JavaScript (4.23)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-arcgis-api-for-javascript-4-23","to_ping":"","pinged":"","post_modified":"2022-11-21 01:48:30","post_modified_gmt":"2022-11-21 09:48:30","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1519642","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-1.31.23-PM.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-1.24.33-PM.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>2022 Year in Review: ArcGIS Maps SDK for JavaScript<\/title>\n<meta name=\"description\" content=\"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.\" \/>\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\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2022 Year in Review: ArcGIS Maps SDK for JavaScript\" \/>\n<meta property=\"og:description\" content=\"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\" \/>\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-12T10:19:33+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\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\"},\"author\":{\"name\":\"Anne Fitz\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bee793ed8139187e84c18559765490fa\"},\"headline\":\"2022 Year in Review: ArcGIS Maps SDK for JavaScript\",\"datePublished\":\"2022-12-16T18:00:00+00:00\",\"dateModified\":\"2024-04-12T10:19:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"4.23\",\"4.24\",\"4.25\",\"JavaScript\",\"what's new\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\",\"name\":\"2022 Year in Review: ArcGIS Maps SDK for JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2022-12-16T18:00:00+00:00\",\"dateModified\":\"2024-04-12T10:19:33+00:00\",\"description\":\"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2022 Year in Review: ArcGIS Maps SDK for JavaScript\"}]},{\"@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\/bee793ed8139187e84c18559765490fa\",\"name\":\"Anne Fitz\",\"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\/2023\/03\/2B6A1033-465x465.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg\",\"caption\":\"Anne Fitz\"},\"description\":\"Anne Fitz is a Senior Product Engineer at Esri, working on the ArcGIS Maps SDK for JavaScript and ArcGIS Arcade. Her expertise primarily focuses on dynamic vector symbology (CIM symbols), data visualization, animation, ArcGIS Arcade integration, and widgets. Anne\u2019s primary goal is to help developers succeed in building geospatial applications, providing them with the tools and knowledge they need to bring their ideas to life. She has been with Esri for over five years.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/anne-fitz\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/afitz\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"2022 Year in Review: ArcGIS Maps SDK for JavaScript","description":"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.","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\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022","og_locale":"en_US","og_type":"article","og_title":"2022 Year in Review: ArcGIS Maps SDK for JavaScript","og_description":"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T10:19:33+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\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022"},"author":{"name":"Anne Fitz","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bee793ed8139187e84c18559765490fa"},"headline":"2022 Year in Review: ArcGIS Maps SDK for JavaScript","datePublished":"2022-12-16T18:00:00+00:00","dateModified":"2024-04-12T10:19:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["4.23","4.24","4.25","JavaScript","what's new"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022","name":"2022 Year in Review: ArcGIS Maps SDK for JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2022-12-16T18:00:00+00:00","dateModified":"2024-04-12T10:19:33+00:00","description":"Take a look back on all the new features added to the ArcGIS Maps SDK for JavaScript in 2022.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/year-in-review-arcgis-maps-sdk-for-javascript-2022#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"2022 Year in Review: ArcGIS Maps SDK for JavaScript"}]},{"@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\/bee793ed8139187e84c18559765490fa","name":"Anne Fitz","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\/2023\/03\/2B6A1033-465x465.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg","caption":"Anne Fitz"},"description":"Anne Fitz is a Senior Product Engineer at Esri, working on the ArcGIS Maps SDK for JavaScript and ArcGIS Arcade. Her expertise primarily focuses on dynamic vector symbology (CIM symbols), data visualization, animation, ArcGIS Arcade integration, and widgets. Anne\u2019s primary goal is to help developers succeed in building geospatial applications, providing them with the tools and knowledge they need to bring their ideas to life. She has been with Esri for over five years.","sameAs":["https:\/\/www.linkedin.com\/in\/anne-fitz"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/afitz"}]}},"text_date":"December 16, 2022","author_name":"Anne Fitz","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/afitz","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/12\/Screen-Shot-2022-12-14-at-1.24.33-PM.png","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":764532,"name":"4.23","slug":"4-23","term_group":0,"term_taxonomy_id":764532,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":765942,"name":"4.24","slug":"4-24","term_group":0,"term_taxonomy_id":765942,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":768012,"name":"4.25","slug":"4-25","term_group":0,"term_taxonomy_id":768012,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":24921,"name":"JavaScript","slug":"javascript","term_group":0,"term_taxonomy_id":24921,"taxonomy":"post_tag","description":"","parent":0,"count":151,"filter":"raw"},{"term_id":23571,"name":"what's new","slug":"whats-new","term_group":0,"term_taxonomy_id":23571,"taxonomy":"post_tag","description":"","parent":0,"count":585,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":426,"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":215,"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":363,"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\/1795272","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\/10062"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1795272"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1795272\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1795272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1795272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1795272"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1795272"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1795272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}