{"id":2099732,"date":"2023-10-23T08:00:44","date_gmt":"2023-10-23T15:00:44","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2099732"},"modified":"2024-04-12T01:11:45","modified_gmt":"2024-04-12T08:11:45","slug":"whats-new-in-arcgis-maps-sdk-for-javascript-4-28","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-28","title":{"rendered":"What&#8217;s New in ArcGIS Maps SDK for JavaScript (4.28)"},"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":[],"industry":[],"product":[761642,36831,36601],"class_list":["post-2099732","blog","type-blog","status-publish","format-standard","hentry","category-announcements","category-developers","product-platform","product-js-api-arcgis","product-developers"],"acf":{"authors":[{"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'\/>"},{"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'\/>"}],"short_description":"Version 4.28 is packed with new capabilities like Maps SDK Components, oriented imagery, improved date and time experience, and a lot more!","flexible_content":[{"acf_fc_layout":"content","content":"<p>The October release of ArcGIS Maps SDK for JavaScript has arrived! We are thrilled to introduce Maps SDK Components as the new and simplified way to develop web mapping applications. This release also brings brand new capabilities such as oriented imagery, as well as frequently requested enhancements such as broader support for time-enabled data, and much more. Join us as we delve into the highlights of the release!<\/p>\n"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#maps-sdk-components-beta\">Maps SDK Components (beta)<\/a><\/h1>\n<p>We are introducing a brand-new <strong>web component library<\/strong> for building web mapping applications with minimal code. The component library currently consists of the three packages listed below, but will expand over time with more pre-built ArcGIS experiences (encapsulated into web components) that can be easily brought into your own app.<\/p>\n<h3><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#map-components\">Map components<\/a><\/h3>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/storybook\/?path=\/docs\/map-components_welcome--docs\">Map components<\/a> contain the map, scene, and <em>all <\/em>of\u00a0the JavaScript Maps SDK widgets wrapped as web components. While these components don\u2019t offer new capabilities, they are a great alternative option for quickly building mapping apps and are particularly useful when integrating with frameworks.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108002,"id":2108002,"title":"component-wo-code","filename":"component-wo-code-1.png","filesize":1114623,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/component-wo-code-2","alt":"","author":"330302","description":"","caption":"With 3 lines of HTML you can create the above interactive app that loads a web map and has a legend.","name":"component-wo-code-2","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 14:56:53","modified":"2023-10-20 15:21:51","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":1925,"height":693,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1.png","medium-width":464,"medium-height":167,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1.png","medium_large-width":768,"medium_large-height":276,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1.png","large-width":1920,"large-height":691,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1-1536x553.png","1536x1536-width":1536,"1536x1536-height":553,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1.png","2048x2048-width":1925,"2048x2048-height":693,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1-826x297.png","card_image-width":826,"card_image-height":297,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/component-wo-code-1-1920x691.png","wide_image-width":1920,"wide_image-height":691}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/tutorials\/display-a-map-component\/"},{"acf_fc_layout":"content","content":"<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-map<\/span> <span style=\"color: #008080;\">item-id<\/span>=<span style=\"color: #d14;\">\"05e015c5f0314db9a487a9b46cb37eca\"<\/span>&gt;<\/span>\r\n    <span style=\"color: #000080; font-weight: normal;\">&lt;<span style=\"color: #000080; font-weight: normal;\">arcgis-legend<\/span> <span style=\"color: #008080;\">position<\/span>=<span style=\"color: #d14;\">\"bottom-right\"<\/span> \/&gt;<\/span>\r\n<span style=\"color: #000080; font-weight: normal;\">&lt;\/<span style=\"color: #000080; font-weight: normal;\">arcgis-map<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<h3><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#coding-components\">Coding components<\/a><\/h3>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/storybook\/?path=\/docs\/coding-components_welcome--docs\">Coding components<\/a> are planned to contain a wide range of tools, resources, code editors, and utilities that support coding. Currently, we offer the Arcade editor component that allows the end user to create Arcade expressions that drive aspects of your map or app within your solution. They will have the same experience editing their Arcade expressions as they do in Map Viewer and the Arcade playground.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108162,"id":2108162,"title":"arcade-editor","filename":"arcade-editor-1.png","filesize":92933,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/arcade-editor-3","alt":"","author":"330302","description":"","caption":"","name":"arcade-editor-3","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 15:25:20","modified":"2023-10-20 15:25:20","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":2042,"height":934,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1.png","medium-width":464,"medium-height":212,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1.png","medium_large-width":768,"medium_large-height":351,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1.png","large-width":1920,"large-height":878,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1-1536x703.png","1536x1536-width":1536,"1536x1536-height":703,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1.png","2048x2048-width":2042,"2048x2048-height":934,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1-826x378.png","card_image-width":826,"card_image-height":378,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/arcade-editor-1-1920x878.png","wide_image-width":1920,"wide_image-height":878}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/arcade\/playground\/"},{"acf_fc_layout":"content","content":"<h3><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#common-components\">Common components<\/a><\/h3>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components\/storybook\/?path=\/docs\/common-components_welcome--docs\">Common components<\/a> are a collection of shareable components for other high-level components, currently containing API Key and Identity for authentication. They can be used alongside with other JavaScript Maps SDK component packages to provide additional functionalities.<\/p>\n<p><em>To learn how to use the components, check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/components-get-started\/\">Getting Started<\/a> guide and the new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/tutorials\/#components--beta-\">tutorials<\/a>. Share your thoughts with us in <a href=\"https:\/\/community.esri.com\/t5\/arcgis-javascript-maps-sdk-blog\/participate-in-the-javascript-maps-sdk-components\/ba-p\/1340533\">Esri Community<\/a>.<\/em><\/p>\n"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#oriented-imagery\">Oriented Imagery<\/a><\/h1>\n<p>Oriented imagery allows you to integrate non-traditional imagery, like street-level images taken with a mobile camera, or close-range drone inspection images, into your GIS. It connects pixels in an image to locations in a map or scene, and vice versa. This allows you to select a location on the map, and find the best image in a collection that depicts that spot. Oriented imagery is particularly valuable for monitoring situational awareness, inspecting assets, organizing non-traditional images, and managing physical infrastructure.<\/p>\n<p>JavaScript Maps SDK\u2019s new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-OrientedImageryLayer.html\">Oriented Imagery Layer<\/a> enables you to interact with your collection of oriented images. The layer consists of point features displaying the camera locations and a geometry showing the area on the map that the camera covers. Using the accompanying <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-OrientedImageryViewer.html\">Oriented Imagery Viewer<\/a> widget, you can click on a map to view the best image in your collection that depicts that location, then examine assets from multiple directions and enhance the images for better visual analysis.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2109892,"id":2109892,"title":"oriented-imagery-m","filename":"oriented-imagery-m.gif","filesize":3683682,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/oriented-imagery-m","alt":"","author":"330302","description":"","caption":"Exploring street-level images in Munich using oriented imagery","name":"oriented-imagery-m","status":"inherit","uploaded_to":2099732,"date":"2023-10-23 15:36:03","modified":"2023-10-23 15:37: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":1200,"height":510,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","medium-width":464,"medium-height":197,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","medium_large-width":768,"medium_large-height":326,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","large-width":1200,"large-height":510,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","1536x1536-width":1200,"1536x1536-height":510,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","2048x2048-width":1200,"2048x2048-height":510,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m-826x351.gif","card_image-width":826,"card_image-height":351,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/oriented-imagery-m.gif","wide_image-width":1200,"wide_image-height":510}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#feature-to-feature-relationship-editing\">Feature-to-feature Relationship Editing<\/a><\/h1>\n<p>The Editor widget now can edit feature-to-feature relationship data. Prior to this release, editing was solely supported on data related via feature to table. Like feature-to-table relationship editing, the relationship element enables you to configure the relationship within the form template and will be automatically recognized by the editor widget.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108412,"id":2108412,"title":"ff-related-features","filename":"ff-related-features.gif","filesize":485911,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/ff-related-features","alt":"","author":"330302","description":"","caption":"","name":"ff-related-features","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 17:54:04","modified":"2023-10-20 17:54:04","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\/2023\/10\/ff-related-features-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","medium-width":464,"medium-height":232,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","large-width":800,"large-height":400,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","1536x1536-width":800,"1536x1536-height":400,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","2048x2048-width":800,"2048x2048-height":400,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","card_image-width":800,"card_image-height":400,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ff-related-features.gif","wide_image-width":800,"wide_image-height":400}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Editor.html"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#improved-experience-for-date-and-time\">Improved Experience for Date and Time<\/a><\/h1>\n<p>This release introduces new ways to work with time data, including new field types to better represent dates with different levels of information, and time zone support for 2D MapView and widgets.<\/p>\n<h3><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#new-date-field-types-beta\">New field types (beta)<\/a><\/h3>\n<p>Three new date-focused field types were added this release \u2014 <code>date-only<\/code>, <code>time-only<\/code>, and <code>timestamp-offset<\/code> \u2014 to represent different levels of information when working with date and time values.<\/p>\n<p>With the new <code>timestamp-offset<\/code> fields, we can compare data across time zones, as detailed in this <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/timestamp-offsets-exposed\/\">blog<\/a> about how to leverage this new field when working with temporal data.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2129192,"id":2129192,"title":"tso-field-sample","filename":"tso-field-sample.gif","filesize":928834,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/timestamp-offsets-exposed\/tso-field-sample","alt":"","author":"5981","description":"","caption":"Visualizing all 2021 fatal car accidents across time zones in the United States","name":"tso-field-sample","status":"inherit","uploaded_to":2125692,"date":"2023-10-30 18:48:00","modified":"2023-11-07 17:41:30","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":640,"height":402,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","medium-width":416,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","medium_large-width":640,"medium_large-height":402,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","large-width":640,"large-height":402,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","1536x1536-width":640,"1536x1536-height":402,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","2048x2048-width":640,"2048x2048-height":402,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","card_image-width":640,"card_image-height":402,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/tso-field-sample.gif","wide_image-width":640,"wide_image-height":402}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/timestamp-offset-field\/"},{"acf_fc_layout":"content","content":"<p>See the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#new-date-field-types-beta\">release notes<\/a> for more information about each field type and when to use them.<\/p>\n<h3><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#time-zone-support-in-mapview\">Time zone<\/a><\/h3>\n<p>Time zone support in the 2D MapView enables you to have control over how dates and times are represented to users within the view. In previous versions, the date and time values were always displayed in the time zone of the device. Setting the time zone can be useful for displaying events like weather alerts or emergency incidents that are best conveyed in the local time zone of the incident for coordination and response purposes. Widgets that display dates will respect the time zone as well.<\/p>\n"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#enhanced-polygon-label-placement\">Enhanced Polygon Label Placement<\/a><\/h1>\n<p>We have enhanced label placement for polygon features in 2D MapViews. The polygon labels are better positioned inside the features, particularly for irregular shapes such as the state of Florida.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108452,"id":2108452,"title":"label-fl","filename":"label-fl.png","filesize":224264,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/label-fl","alt":"","author":"330302","description":"","caption":"","name":"label-fl","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 18:00:28","modified":"2023-10-20 18:00:28","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":2102,"height":850,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl.png","medium-width":464,"medium-height":188,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl.png","medium_large-width":768,"medium_large-height":311,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl.png","large-width":1920,"large-height":776,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl-1536x621.png","1536x1536-width":1536,"1536x1536-height":621,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl-2048x828.png","2048x2048-width":2048,"2048x2048-height":828,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl-826x334.png","card_image-width":826,"card_image-height":334,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/label-fl-1920x776.png","wide_image-width":1920,"wide_image-height":776}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/#new-basemap-styles\">New Basemap Styles API<\/a><\/h1>\n<p>This release brings support for a new basemap styles API with localized place labels from the <a href=\"https:\/\/developers.arcgis.com\/rest\/basemap-styles\/\">basemap styles service (v2)<\/a>. These basemaps can be created from a string in the form of {provider}\/{style}, where provider is &#8220;arcgis&#8221; or &#8220;osm&#8221;. In addition to style, you can also specify a language for the labels. If no language is specified, the app&#8217;s current locale will be used to determine the language of the place labels.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2109282,"id":2109282,"title":"basemap-styles-short","filename":"basemap-styles-short.gif","filesize":8587186,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/basemap-styles-short","alt":"","author":"330302","description":"","caption":"","name":"basemap-styles-short","status":"inherit","uploaded_to":2099732,"date":"2023-10-23 02:34:46","modified":"2023-10-23 02:38:25","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":937,"height":502,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","medium-width":464,"medium-height":249,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","medium_large-width":768,"medium_large-height":411,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","large-width":937,"large-height":502,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","1536x1536-width":937,"1536x1536-height":502,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","2048x2048-width":937,"2048x2048-height":502,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short-826x443.gif","card_image-width":826,"card_image-height":443,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/basemap-styles-short.gif","wide_image-width":937,"wide_image-height":502}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/tutorials\/change-the-basemap-language\/"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#color-theming-for-interactive-tools\">Color Theming for Interactive Tools<\/a><\/h1>\n<p>You can now customize the color of interactive tools in both 2D and 3D to align with the design and branding of your site. Tools such as sketching, snapping, measuring, dimensioning, slicing, line of sight, and the elevation profile can all be customized with your preferred color. This customization enhances the application\u2019s style, improves user-friendliness, and adds a more integrated feel to the overall user experience.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108472,"id":2108472,"title":"color-theming","filename":"color-theming.gif","filesize":1893191,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/color-theming","alt":"","author":"330302","description":"","caption":"","name":"color-theming","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 18:03:08","modified":"2023-10-20 18:03:08","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\/2023\/10\/color-theming-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/color-theming.gif","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/view-theme\/"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#3d-updates\">3D Updates<\/a><\/h1>\n<p>With the support of <strong>zip file uploads<\/strong>, it is now possible to add models that have additional texture files to editable scene layers.<\/p>\n<p><strong>Improved memory estimations<\/strong>, which allows us to render more features on higher-end devices. On lower-end devices, we may now render fewer features to improve performance and stability.<\/p>\n<p>Our <strong>3D basemaps<\/strong> can now be loaded by referencing a string id. The list of available basemap styles which can be loaded by string id can be found here.<\/p>\n<h3><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#show-background-color-while-terrain-loads\">Show background color while terrain loads<\/a><\/h3>\n<p>When loading a\u00a0VectorTileLayer\u00a0with a background color set, this color will now be displayed instead of the grid which offers a smoother transition when navigating between different parts of a map that haven&#8217;t loaded yet. Using the\u00a0ArcGIS Vector Tile Style Editor, you can also add a background color to your own vector tile layers to benefit from this change.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108502,"id":2108502,"title":"background-color-portland","filename":"background-color-portland.gif","filesize":5269316,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/background-color-portland","alt":"","author":"330302","description":"","caption":"","name":"background-color-portland","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 18:04:56","modified":"2023-10-20 18:04:56","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\/2023\/10\/background-color-portland-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","large-width":800,"large-height":450,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","1536x1536-width":800,"1536x1536-height":450,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","2048x2048-width":800,"2048x2048-height":450,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","card_image-width":800,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/background-color-portland.gif","wide_image-width":800,"wide_image-height":450}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#medialayer-animated-gifpng-support\">Animated GIF\/PNG in Media Layer<\/a><\/h1>\n<p>GIF and APNG images are now supported in media layer, allowing you to include animated images in your web mapping apps. You can specify animation options such as duration and repeat type for these animated images. Adding animated images to your web mapping apps has never been easier.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2108512,"id":2108512,"title":"animated-media-layer","filename":"animated-media-layer.gif","filesize":2309238,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\/animated-media-layer","alt":"","author":"330302","description":"","caption":"","name":"animated-media-layer","status":"inherit","uploaded_to":2099732,"date":"2023-10-20 18:06:44","modified":"2023-10-20 18:06:44","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\/2023\/10\/animated-media-layer-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","medium-width":464,"medium-height":232,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","medium_large-width":768,"medium_large-height":384,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","large-width":800,"large-height":400,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","1536x1536-width":800,"1536x1536-height":400,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","2048x2048-width":800,"2048x2048-height":400,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","card_image-width":800,"card_image-height":400,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/animated-media-layer.gif","wide_image-width":800,"wide_image-height":400}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-medialayer-animated-gif\/"},{"acf_fc_layout":"content","content":"<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#vectortilelayer-initial-extent\">Vector Tile Layer Initial Extent<\/a><\/h1>\n<p>When using vector tile layer, the view can be automatically zoomed to areas that contains information by setting the view to the new initialExtent property in vector tile layer. This is particularly useful when you are referencing a tile set with very limited coverage.<\/p>\n<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#2d-performance-in-non-gpu-environments\">2D Performance in Non-GPU Environments<\/a><\/h1>\n<p>GPU is a basic requirement to achieve a positive experience with any modern mapping application, including apps built with the JavaScript Maps SDK. Organizations should review <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/system-requirements\/#minimum-hardware-requirements\">system requirements<\/a> (which includes having a GPU) when allocating hardware to ensure applications can be run with acceptable performance.<\/p>\n<p>We recognize that some customers are limited to using under-allocated systems that don\u2019t have access to a GPU. In order to assist customers in this situation, the SDK was updated to automatically attempt to improve map interaction in no-GPU environments.<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Learn More<\/h1>\n<p>In addition to updates above, version 4.28 offers a range of exciting enhancements, including <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#saving-layers-as-a-portal-item\">saving more layer types as portal items<\/a>, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#custom-chart-colors\">custom chart colors<\/a>, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#raster-function-utility-methods\">raster function utility methods<\/a>, and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/#new-color-ramps\">new color ramps<\/a>! Check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/4.28\/\">release notes<\/a>, play around with the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/\">new samples<\/a> to learn more about 4.28, and discuss the release with us on <a href=\"https:\/\/community.esri.com\/t5\/arcgis-javascript-maps-sdk-blog\/arcgis-maps-sdk-for-javascript-4-28\/ba-p\/1340324\">Esri Community<\/a>!<\/p>\n<p>Join us on <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/join-us-for-the-javascript-maps-sdk-v4-28-livestream\/\"><strong>Thursday, November 2<sup>nd<\/sup> at 9am PT<\/strong><\/a> for the <a href=\"https:\/\/www.youtube.com\/watch?v=sdFfsHNVjP0\">YouTube Livestream<\/a>, where you can hear directly from the engineers who worked on the release, see more captivating demos, and have any questions you may have clarified!<\/p>\n<p>Are you coming to <a href=\"https:\/\/www.esri.com\/en-us\/about\/events\/devsummit-europe\/overview\">Esri European Developer Summit<\/a> on November 14\u201316 , 2023 in Berlin? We have planned a variety of technical presentations on key topics and ample opportunities to connect with the team at the showcase.<\/p>\n"}],"related_articles":[{"ID":2109992,"post_author":"10062","post_date":"2023-10-23 10:46:40","post_date_gmt":"2023-10-23 17:46:40","post_content":"","post_title":"Watch the JavaScript Maps SDK v4.28 Livestream - available now!","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"join-us-for-the-javascript-maps-sdk-v4-28-livestream","to_ping":"","pinged":"","post_modified":"2024-04-12 01:11:15","post_modified_gmt":"2024-04-12 08:11:15","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2109992","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"1","filter":"raw"},{"ID":2085872,"post_author":"7641","post_date":"2023-10-25 22:00:35","post_date_gmt":"2023-10-26 05:00:35","post_content":"","post_title":"What's New in ArcGIS Online (October 2023)","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"whats-new-arcgis-online-october-2023","to_ping":"","pinged":"","post_modified":"2023-10-26 11:19:29","post_modified_gmt":"2023-10-26 18:19:29","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2085872","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2084092,"post_author":"309572","post_date":"2023-10-09 14:01:17","post_date_gmt":"2023-10-09 21:01:17","post_content":"","post_title":"Calcite Design System October 2023 Update","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"calcite-design-system-october-2023-update","to_ping":"","pinged":"","post_modified":"2024-10-24 15:04:20","post_modified_gmt":"2024-10-24 22:04:20","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2084092","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/card-component-v2.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/banner3.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.28)<\/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-28\" \/>\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.28)\" \/>\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-28\" \/>\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:11:45+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-28#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\"},\"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.28)\",\"datePublished\":\"2023-10-23T15:00:44+00:00\",\"dateModified\":\"2024-04-12T08:11:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\"},\"wordCount\":9,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"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-28#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28\",\"name\":\"What's New in ArcGIS Maps SDK for JavaScript (4.28)\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2023-10-23T15:00:44+00:00\",\"dateModified\":\"2024-04-12T08:11:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28#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-28\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28#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.28)\"}]},{\"@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.28)","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-28","og_locale":"en_US","og_type":"article","og_title":"What's New in ArcGIS Maps SDK for JavaScript (4.28)","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T08:11:45+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-28#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28"},"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.28)","datePublished":"2023-10-23T15:00:44+00:00","dateModified":"2024-04-12T08:11:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28"},"wordCount":9,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"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-28#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28","name":"What's New in ArcGIS Maps SDK for JavaScript (4.28)","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2023-10-23T15:00:44+00:00","dateModified":"2024-04-12T08:11:45+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28#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-28"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-maps-sdk-for-javascript-4-28#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.28)"}]},{"@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":"October 23, 2023","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-28","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/banner3.png","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1964,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":423,"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":214,"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"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":763,"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\/2099732","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=2099732"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2099732\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2099732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2099732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2099732"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2099732"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2099732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}