{"id":73681,"date":"2016-09-22T16:16:27","date_gmt":"2016-09-22T16:16:27","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/arcgis-api-for-javascript-4-1-released\/"},"modified":"2018-05-31T19:58:52","modified_gmt":"2018-05-31T19:58:52","slug":"arcgis-api-for-javascript-4-1-released","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released","title":{"rendered":"ArcGIS API for JavaScript 4.1 Released"},"author":5111,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37101],"tags":[24921,27491,23571,31901],"industry":[],"product":[36831,36601],"class_list":["post-73681","blog","type-blog","status-publish","format-standard","hentry","category-announcements","tag-javascript","tag-jsapi4","tag-whats-new","tag-whats-new-september-2016","product-js-api-arcgis","product-developers"],"acf":{"short_description":"The second release in the 4.x series of the ArcGIS API for JavaScript is now available. Our next-generation JS API continues along its pa...","flexible_content":[{"acf_fc_layout":"content","content":"<p>The second release in the 4.x series of the <a href=\"https:\/\/developers.arcgis.com\/javascript\/\">ArcGIS API for JavaScript<\/a> is now available. Our next-generation JS API continues along its path to reach parity with 3.x, while also introducing new powerful capabilities such as 3D. The following are some of the new capabilities we are excited about in 4.1.<\/p>\n<h1>Dynamic Layer Support<\/h1>\n<p>Version 4.0 already supported <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/common-reasons-for-using-map-services.htm\">dynamic map services<\/a>, via the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-MapImageLayer.html\">MapImageLayer<\/a>. However, this release adds support for dynamic popups, labels, <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/about-dynamic-layers.htm\">rendering<\/a>, and creating <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/about-dynamic-layers.htm\">dynamic data layers<\/a> with data registered in <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/about-dynamic-layers.htm\">dynamic work spaces<\/a>. While 3.x supports <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/common-reasons-for-using-map-services.htm#ESRI_SECTION1_0D690C40240749AFBD3697436F629499\">dynamic layers<\/a>, 4.1 introduces a newer, cleaner way of programmatically designing and configuring sublayers with the new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-support-Sublayer.html\">Sublayer<\/a> class.<\/p>\n<pre><span style=\"color: #998; font-style: italic;\">\/\/ Creates a MapImageLayer instance containing only the sublayers defined below.<\/span>\r\n<span style=\"color: #333; font-weight: bold;\">var<\/span> layer = <span style=\"color: #333; font-weight: bold;\">new<\/span> MapImageLayer({\r\n  url: <span style=\"color: #d14;\">\"https:\/\/sampleserver6.arcgisonline.com\/arcgis\/rest\/services\/USA\/MapServer\"<\/span>,\r\n  sublayers: [{\r\n    <span style=\"color: #998; font-style: italic;\">\/\/ sets new renderer and label class on the sublayer<\/span>\r\n    id: <span style=\"color: #008080;\">0<\/span>,\r\n    renderer: <span style=\"color: #333; font-weight: bold;\">new<\/span> ClassBreaksRenderer( ... ),\r\n    labelingInfo: [ <span style=\"color: #333; font-weight: bold;\">new<\/span> LabelClass( ... ) ]\r\n  }]\r\n});\r\n<\/pre>\n<p><a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/common-reasons-for-using-map-services.htm\">Dynamic map services<\/a> process the map image for the requested extent on the server as opposed to the client (like <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/what-is-a-feature-service-.htm\">feature services<\/a>). An image is sent to the client rather than all the geometries, symbol definitions and attributes. Therefore MapImageLayer may be more performant than FeatureLayer when working with very large datasets where network latency and memory constraints with the browser are a concern.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-dynamicmaplayer\/index.html\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-68497\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/09\/dynamic-map-layer.gif\" alt=\"Dynamic rendering changes\" width=\"480\" height=\"232\" \/><\/a><\/p>\n<p><a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/about-dynamic-layers.htm\">Dynamic rendering<\/a> gives you the ability <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-dynamicmaplayer\/index.html\">to tell the server how features should be symbolized<\/a>, what layers should be visible, etc \u2013 enabling a richer experience and more flexible solution for developers. The server then produces the map image of the specified extent with the styling defined by the developer.<\/p>\n<p>While layer styling, popups and labels can be defined programmatically, users can simplify their code by configuring these properties in the <a href=\"https:\/\/www.arcgis.com\/home\/webmap\/viewer.html?useExisting=1\">ArcGIS Online map viewer<\/a>, and <a href=\"http:\/\/doc.arcgis.com\/en\/arcgis-online\/create-maps\/copy-save-layers.htm\">saving the layer to an item<\/a> or <a href=\"http:\/\/doc.arcgis.com\/en\/arcgis-online\/create-maps\/save-maps.htm\">web map<\/a>. When the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-portal\/index.html\">layer item or web map is loaded<\/a>, the customized configuration and styling is honored by the ArcGIS API for JavaScript.<\/p>\n<p>Working with <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/publish-services\/windows\/enabling-dynamic-layers-on-a-map-service-in-arcgis-for-desktop.htm\">dynamic work spaces<\/a> allow you to publish a single service, and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-mapimagelayer-sublayers\/index.html\">dynamically add or remove layers<\/a> that reference data in the registered workspace dynamically. This is a great workflow for organizations that need to access a lot of datasets, but want to conserve server resources (i.e. one service per dataset is NOT needed).<\/p>\n<h1>Integrated Mesh Layer<\/h1>\n<p>We <a href=\"https:\/\/blogs.esri.com\/esri\/arcgis\/2016\/06\/16\/whats-new-in-the-scene-viewer-june-2016\/\">released<\/a> a new layer type this summer in the Scene Viewer called the integrated mesh layer. Web developers can now bring this data into their web apps with the new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-IntegratedMeshLayer.html\">IntegratedMeshLayer<\/a> class. Integrated mesh layers consist of 3D objects generated from large sets of overlapping imagery. They can represent both built and natural 3D features with realistic textures, such as building walls, trees, valleys, and cliffs. It is particularly useful for automating the creation of accurate representations of infrastructure or for monitoring and mapping areas that can be difficult to access. <a href=\"https:\/\/www.esri.com\/products\/drone2map\">Drone2Map<\/a> can be used to create scene services and bring data to life in a web app for broad use within your organization.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-integratedmeshlayer\/index.html\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-68500\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/09\/integrated-mesh-layer.png\" alt=\"\" width=\"537\" height=\"400\" \/><\/a><\/p>\n<h1>Web Scene Writing<\/h1>\n<p>Developers can create new web scenes or update existing scenes programmatically and save them back to ArcGIS Online or Portal for ArcGIS. This work lays the foundation for web map writing in a future release. <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/webscene-save\/index.html\">Check out the sample<\/a> demonstrating this new feature.<\/p>\n<pre><span style=\"color: #333; font-weight: bold;\">var<\/span> webscene = <span style=\"color: #333; font-weight: bold;\">new<\/span> WebScene({\r\n  portalItem: {\r\n    id: <span style=\"color: #d14;\">\"90e3c30bdbbe4886a94f75c2cdd7edce\"<\/span>\r\n  }\r\n});\r\n\r\n<span style=\"color: #333; font-weight: bold;\">var<\/span> view = <span style=\"color: #333; font-weight: bold;\">new<\/span> SceneView({\r\n  map: webscene,\r\n  container: <span style=\"color: #d14;\">\"viewDiv\"<\/span>\r\n});\r\n\r\nview.then(<span style=\"color: #333; font-weight: bold;\">function<\/span>(){\r\n  <span style=\"color: #998; font-style: italic;\">\/\/ do something to the webscene<\/span>\r\n  <span style=\"color: #998; font-style: italic;\">\/\/ add layers, slides,<\/span>\r\n  <span style=\"color: #998; font-style: italic;\">\/\/ change renderers, camera, etc.<\/span>\r\n\r\n  <span style=\"color: #998; font-style: italic;\">\/\/ save the current view properties to the scene<\/span>\r\n  webscene.updateFrom(view);\r\n  webscene.save();\r\n});\r\n<\/pre>\n<h1>CSV Layer<\/h1>\n<p>You can load point data containing lat\/lon coordinates stored in a comma delimited file (.csv extension) directly into your web app using the new <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-csv\/index.html\">CSVLayer<\/a>. Simply upload the CSV to ArcGIS Online\/Portal for ArcGIS, style it, configure popups, and load it as a portal item in your web app, or host it on your web server and reference its URL in the layer&#8217;s constructor. CSVLayer support is at par with 3.x.<\/p>\n<h1>Print Task<\/h1>\n<p>Developers can use <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-tasks-PrintTask.html\">PrintTask<\/a> to print a map using any of the layouts and parameters supported by the print service. Support is equivalent in functionality to the 3.x PrintTask. At the moment, developers must create their own UI for printing; the print widget is targeted for 4.2.<\/p>\n<h1>Cross-dateline wrap around support<\/h1>\n<p>GraphicsLayer and FeatureLayer now support wraparound when using Web Mercator or WGS84. This means the user can continuously pan across the International Date Line without interruption or duplication of features.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-csv\/index.html\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-68536\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/09\/dateline-quakes.png\" alt=\"\" width=\"593\" height=\"441\" \/><\/a><\/p>\n<h1>Development strategy and release plan<\/h1>\n<p>Many developers have adopted version 4.x and enjoy the new streamlined API and powerful capabilities it provides. However, some are holding off migrating to 4.x until it supports the required functionality needed for their application(s). We continue to develop 3.x and 4.x concurrently until 4.x reaches parity with 3.x. If you need help deciding between which JS API version to use for your next web app, or would like to follow us along our development path, check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/choose-version\/index.html\">Choosing a version<\/a> topic in the guide.<\/p>\n<p>Our release plan for the JS API includes four releases each year, for both 3.x and 4.x. Our strategy is to release frequently and align as closely as possible with platform advancements. The JS API is being enhanced to enable new ArcGIS Online and Portal for ArcGIS capabilities. It also provides web developers with new ArcGIS platform capabilities. <a href=\"https:\/\/blogs.esri.com\/esri\/arcgis\/2016\/09\/13\/whats-new-arcgis-online-september-2016\/\">Last week\u2019s ArcGIS Online release<\/a> and the upcoming Portal for ArcGIS 10.5 release will be based on 3.18 and 4.1. You\u2019ll see new capabilities in 4.1 and 3.18 come to life in the map viewer (such as OGC custom parameters), the scene viewer (such as consuming map image layer items with overrides on renderers), Web AppBuilder, and in configurable apps.<\/p>\n<p>For a complete list of new features and more detailed information on this release, please refer to the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/release-notes\/index.html\">Release notes for 4.1<\/a>. We are excited to see the new applications you create using the functionality in this release. Now it\u2019s time to get back to work on version 4.2!<\/p>\n"}],"authors":[{"ID":5111,"user_firstname":"Lloyd","user_lastname":"Heberlie","nickname":"heberlie","user_nicename":"heberlie","display_name":"Lloyd Heberlie","user_email":"lheberlie@esri.com","user_url":"","user_registered":"2018-03-02 00:16:44","user_description":"Working daily to elevate user happiness about reading the ArcGIS Maps SDK for JavaScript documentation. Occasionally blogging about the ArcGIS Maps SDK for JavaScript, and technical presenter at the Esri Developer Summit and User's Conferences. A Product Engineer on the Esri ArcGIS Maps SDK for JavaScript team.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"},{"ID":4811,"user_firstname":"Bjorn","user_lastname":"Svensson","nickname":"bjorn","user_nicename":"bjorn","display_name":"Bj\u00f6rn Svensson","user_email":"bsvensson@esri.com","user_url":"https:\/\/developers.arcgis.com\/javascript\/","user_registered":"2018-03-02 00:16:26","user_description":"20+ years of experience with web mapping. Currently lead project engineer for the ArcGIS Maps SDK for JavaScript development team at Esri.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Bjorn_Svensson_beard_squarish_2000.png' 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'\/>"}],"related_articles":"","card_image":false,"wide_image":false},"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>ArcGIS API for JavaScript 4.1 Released<\/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\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ArcGIS API for JavaScript 4.1 Released\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\" \/>\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=\"2018-05-31T19:58:52+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\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\"},\"author\":{\"name\":\"Lloyd Heberlie\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/03caa527c3892a4e919fcf6abab2aace\"},\"headline\":\"ArcGIS API for JavaScript 4.1 Released\",\"datePublished\":\"2016-09-22T16:16:27+00:00\",\"dateModified\":\"2018-05-31T19:58:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\"},\"wordCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"JavaScript\",\"jsapi4\",\"what's new\",\"whats new September 2016\"],\"articleSection\":[\"Announcements\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\",\"name\":\"ArcGIS API for JavaScript 4.1 Released\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2016-09-22T16:16:27+00:00\",\"dateModified\":\"2018-05-31T19:58:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ArcGIS API for JavaScript 4.1 Released\"}]},{\"@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\/03caa527c3892a4e919fcf6abab2aace\",\"name\":\"Lloyd Heberlie\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g\",\"caption\":\"Lloyd Heberlie\"},\"description\":\"Working daily to elevate user happiness about reading the ArcGIS Maps SDK for JavaScript documentation. Occasionally blogging about the ArcGIS Maps SDK for JavaScript, and technical presenter at the Esri Developer Summit and User's Conferences. A Product Engineer on the Esri ArcGIS Maps SDK for JavaScript team.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/lloydheberlie\",\"https:\/\/x.com\/lheberlie\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/heberlie\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ArcGIS API for JavaScript 4.1 Released","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\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released","og_locale":"en_US","og_type":"article","og_title":"ArcGIS API for JavaScript 4.1 Released","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-05-31T19:58:52+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\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released"},"author":{"name":"Lloyd Heberlie","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/03caa527c3892a4e919fcf6abab2aace"},"headline":"ArcGIS API for JavaScript 4.1 Released","datePublished":"2016-09-22T16:16:27+00:00","dateModified":"2018-05-31T19:58:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released"},"wordCount":5,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["JavaScript","jsapi4","what's new","whats new September 2016"],"articleSection":["Announcements"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released","name":"ArcGIS API for JavaScript 4.1 Released","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2016-09-22T16:16:27+00:00","dateModified":"2018-05-31T19:58:52+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"ArcGIS API for JavaScript 4.1 Released"}]},{"@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\/03caa527c3892a4e919fcf6abab2aace","name":"Lloyd Heberlie","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g","caption":"Lloyd Heberlie"},"description":"Working daily to elevate user happiness about reading the ArcGIS Maps SDK for JavaScript documentation. Occasionally blogging about the ArcGIS Maps SDK for JavaScript, and technical presenter at the Esri Developer Summit and User's Conferences. A Product Engineer on the Esri ArcGIS Maps SDK for JavaScript team.","sameAs":["https:\/\/www.linkedin.com\/in\/lloydheberlie","https:\/\/x.com\/lheberlie"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/heberlie"}]}},"text_date":"September 22, 2016","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/arcgis-api-for-javascript-4-1-released","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"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":27491,"name":"jsapi4","slug":"jsapi4","term_group":0,"term_taxonomy_id":27491,"taxonomy":"post_tag","description":"","parent":0,"count":111,"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":582,"filter":"raw"},{"term_id":31901,"name":"whats new September 2016","slug":"whats-new-september-2016","term_group":0,"term_taxonomy_id":31901,"taxonomy":"post_tag","description":"","parent":0,"count":12,"filter":"raw"}],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1962,"filter":"raw"}],"product_data":[{"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":362,"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\/73681","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\/5111"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=73681"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/73681\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=73681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=73681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=73681"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=73681"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=73681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}