{"id":543762,"date":"2019-07-02T16:18:10","date_gmt":"2019-07-02T23:18:10","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=543762"},"modified":"2019-07-03T08:40:08","modified_gmt":"2019-07-03T15:40:08","slug":"whats-new-in-arcgis-api-for-javascript-july-2019","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019","title":{"rendered":"What&#8217;s New in ArcGIS API for JavaScript (July, 2019)"},"author":4271,"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":[96582,42641,27491,23221],"industry":[],"product":[36831,36601],"class_list":["post-543762","blog","type-blog","status-publish","format-standard","hentry","category-announcements","tag-arcgis-api-for-javascript","tag-arcgis-online","tag-jsapi4","tag-web-mapping","product-js-api-arcgis","product-developers"],"acf":{"short_description":"Version 4.12 is here! Learn about the new time slider, smart mapping updates, 3D client-side querying, performance improvements, and more.","flexible_content":[{"acf_fc_layout":"content","content":"<p>The July update to ArcGIS API for JavaScript (version 4.12) is now available and ready for you to try out. This release both enhances 4.11 capabilities such as adding a time slider for temporal-based rendering, and introduces brand new features like realistic water rendering in 3D scenes. 4.12 also introduces a significant performance increase throughout various aspects of the API, having a positive impact on the user experience. This blog highlights some of the enhancements in the release. Check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/release-notes\/\">release notes<\/a> for more information.<\/p>\n<p><strong>Performance improvements<\/strong><\/p>\n<p>Optimizations in the 4.12 release result in overall faster loading of the map. Some of the specific improvements are:<\/p>\n<ul>\n<li><strong>Vector tile layers<\/strong>: Vector tile layers now load 50% faster due to improved vector tile fetching including more parallelization of requests, and tile processing optimizations.<\/li>\n<li><strong>Feature layers<\/strong>: Feature layer rendering improved due to optimizations related to triangulation of geometries. Triangulation processing improved without reducing quality.<\/li>\n<li><strong>Lines<\/strong>: The performance of line processing was greatly increased by minimizing the JavaScript functions calls that need to be executed when processing the line data, and in the case of thin lines, we moved to a simplified processing technique which results in the creation of much fewer vertices without visual artifacts.<\/li>\n<li><strong>Fast map updates when changing the attribute being rendered<\/strong>: When you change the data you are using for rendering, the map will update quickly without flickering.<\/li>\n<li><strong>3D scenes<\/strong>: 3D objects and integrated mesh layers are loaded up to 4x faster using the new\u00a0<a href=\"https:\/\/github.com\/Esri\/i3s-spec\">i3s specification<\/a> version 1.7. In addition, a new client-side caching mechanism helps reduce areas without data when exploring a 3D scene.<\/li>\n<\/ul>\n<p>Performance will continue to increase in upcoming releases, both in the area of initial load time as well as rendering.<\/p>\n<p><strong>Time for a widget, the TimeSlider<\/strong><\/p>\n<p>You can now build apps that visualize temporal data using the new <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-TimeSlider.html\">TimeSlider <\/a>widget.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":548532,"id":548532,"title":"4.12 time slider","filename":"time.gif","filesize":1261529,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\/time-2","alt":"4.12 time slider","author":"4271","description":"","caption":"","name":"time-2","status":"inherit","uploaded_to":543762,"date":"2019-06-27 22:44:15","modified":"2019-06-27 22:45: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":3235,"height":1602,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time.gif","medium-width":464,"medium-height":230,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time.gif","medium_large-width":768,"medium_large-height":380,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time.gif","large-width":1920,"large-height":951,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time.gif","1536x1536-width":1536,"1536x1536-height":761,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time.gif","2048x2048-width":2048,"2048x2048-height":1014,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time-826x409.gif","card_image-width":826,"card_image-height":409,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/time-1920x951.gif","wide_image-width":1920,"wide_image-height":951}},"image_position":"center","orientation":"horizontal","hyperlink":"http:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/timeslider-filter\/index.html"},{"acf_fc_layout":"content","content":"<p>At 4.11 we introduced time to client-side and server-side queries.\u00a0 Those same temporal queries could be used in FeatureLayerView filters and effects.\u00a0 Filters provide an efficient way to display a subset of client-side graphics whereas effects allow visual effects to be applied to both included and excluded features. For example, earthquakes within a user defined extent could be colored bright orange, whereas earthquakes outside that extent would appear as semi-transparent gray dots. Because filtering and effects (whether temporal or not) are performed client-side, they are extremely fast even for large datasets.<\/p>\n<p>At 4.12 we added time support directly to the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-views-MapView.html#timeExtent\">MapView<\/a> or and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-views-SceneView.html#timeExtent\">SceneViews<\/a>. Any time-aware layer within the view will automatically honor the view\u2019s time by only showing content that falls within that time extent.\u00a0 To easily manipulate the View time we added the TimeSlider widget.\u00a0 This easy to use and configure widget will update the view\u2019s time whenever there is user interaction.<\/p>\n<p>Developers can optionally use the TimeSlider as a source of TimeExtents to be applied directly to FeatureLayerView effects and filters.<\/p>\n<p><strong>2D Vector Symbols\u00a0<\/strong><\/p>\n<p>We added a large collection of more than 100 new vector <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/guide\/esri-web-style-symbols-2d\/index.html\">out of the box symbols<\/a> (referred to as <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-WebStyleSymbol.html\">WebStyleSymbol<\/a>s which are being released in beta) that can be dynamically styled the way you want in 2D MapViews. You can use these symbols in layers to simply indicate location or in data-driven visualizations using size, color, and opacity visual variables. Vector markers provide a nice, crisp display; even as the symbol size grows, quality is not degraded.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":553832,"id":553832,"title":"vector marker symbols","filename":"VM-combined.png","filesize":567889,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\/vm-combined","alt":"vector marker symbols","author":"4271","description":"","caption":"","name":"vm-combined","status":"inherit","uploaded_to":543762,"date":"2019-07-01 20:56:01","modified":"2019-07-01 20:56: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":2405,"height":1514,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined.png","medium-width":415,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined.png","medium_large-width":768,"medium_large-height":483,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined.png","large-width":1716,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined.png","1536x1536-width":1536,"1536x1536-height":967,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined.png","2048x2048-width":2048,"2048x2048-height":1289,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined-739x465.png","card_image-width":739,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/VM-combined-1716x1080.png","wide_image-width":1716,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"http:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/webstylesymbol-2d\/index.html"},{"acf_fc_layout":"content","content":"<p><strong>Water rendering<\/strong><\/p>\n<p>Animated water visualizations such as water ripples and sunlight reflections create a realistic feel in a 3D scene. The new <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-WaterSymbol3DLayer.html\">WaterSymbol3DLayer<\/a> has some fun options such as\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-WaterSymbol3DLayer.html#waveStrength\">waveStrength<\/a> which determines the magnitude of the waves and\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-WaterSymbol3DLayer.html#waveDirection\">waveDirection<\/a> which indicates the direction in which the waves travel. You can model a deep blue lake like Lake Tahoe or a turquoise lake like Lake Breinz by setting the dominant <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-WaterSymbol3DLayer.html#color\">color<\/a>\u00a0of the water.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":553392,"id":553392,"title":"2019-06-27 water rendering jsapi blog","filename":"2019-06-27-water-rendering-jsapi-blog.gif","filesize":2084190,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\/2019-06-27-water-rendering-jsapi-blog","alt":"realistic water rendering","author":"4271","description":"realistic water rendering","caption":"","name":"2019-06-27-water-rendering-jsapi-blog","status":"inherit","uploaded_to":543762,"date":"2019-07-01 19:44:03","modified":"2019-07-01 19:44:26","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":870,"height":540,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","medium-width":421,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","medium_large-width":768,"medium_large-height":477,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","large-width":870,"large-height":540,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","1536x1536-width":870,"1536x1536-height":540,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","2048x2048-width":870,"2048x2048-height":540,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog-749x465.gif","card_image-width":749,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/2019-06-27-water-rendering-jsapi-blog.gif","wide_image-width":870,"wide_image-height":540}},"image_position":"center","orientation":"horizontal","hyperlink":"http:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/visualization-realistic-water\/index.html"},{"acf_fc_layout":"content","content":"<p><strong>New 3D Line Symbols<\/strong><\/p>\n<p>The new\u00a0square\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-PathSymbol3DLayer.html#profile\">profile<\/a>\u00a0allows you to visualize 3D lines with square, strips and walls styles. As with other symbols this new profile also supports attribute driven size or color using\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-renderers-visualVariables-VisualVariable.html\">VisualVariables<\/a>. Combine the path\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-PathSymbol3DLayer.html#profile\">profiles<\/a>\u00a0with the new configuration options for\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-PathSymbol3DLayer.html#cap\">cap<\/a>,\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-PathSymbol3DLayer.html#join\">join<\/a>\u00a0and\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-symbols-PathSymbol3DLayer.html#profileRotation\">profileRotation<\/a>\u00a0to enhance the visualization style for line features such as streets or geographical boundaries.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":548432,"id":548432,"title":"lines","filename":"lines.png","filesize":760771,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\/lines","alt":"","author":"4271","description":"","caption":"","name":"lines","status":"inherit","uploaded_to":543762,"date":"2019-06-27 22:08:50","modified":"2019-06-27 22:08:50","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2505,"height":1364,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines.png","medium-width":464,"medium-height":253,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines.png","medium_large-width":768,"medium_large-height":418,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines.png","large-width":1920,"large-height":1045,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines.png","1536x1536-width":1536,"1536x1536-height":836,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines.png","2048x2048-width":2048,"2048x2048-height":1115,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines-826x450.png","card_image-width":826,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/lines-1920x1045.png","wide_image-width":1920,"wide_image-height":1045}},"image_position":"center","orientation":"horizontal","hyperlink":"http:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/visualization-path-3d\/index.html"},{"acf_fc_layout":"content","content":"<p><strong>Filters on building scene layers<\/strong><\/p>\n<p>The\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-BuildingSceneLayer.html\">BuildingSceneLayer<\/a>\u00a0allows you to render detailed 3D building models. With this release we added support for <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-BuildingSceneLayer.html#filters\">filters<\/a>, so that you can create applications that isolate floors, highlight building materials or visualize construction phases.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><strong>Client-side queries in 3D<\/strong><\/p>\n<p>Like in 2D MapViews, you can now perform client-side queries with scene layers and feature layers in 3D SceneViews. This enables you to build apps that allow users to interactively select features and display statistics using spatial- and attribute-based expressions.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":554362,"id":554362,"title":"client-side-query3D-OPT","filename":"client-side-query3D-OPT.gif","filesize":2025671,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\/client-side-query3d-opt","alt":"client-side query 3D","author":"4271","description":"","caption":"","name":"client-side-query3d-opt","status":"inherit","uploaded_to":543762,"date":"2019-07-01 22:42:05","modified":"2019-07-01 22:42:27","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":3160,"height":1530,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT.gif","medium-width":464,"medium-height":225,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT.gif","medium_large-width":768,"medium_large-height":372,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT.gif","large-width":1920,"large-height":930,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT.gif","1536x1536-width":1536,"1536x1536-height":744,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT.gif","2048x2048-width":2048,"2048x2048-height":992,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT-826x400.gif","card_image-width":826,"card_image-height":400,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/client-side-query3D-OPT-1920x930.gif","wide_image-width":1920,"wide_image-height":930}},"image_position":"center","orientation":"horizontal","hyperlink":"http:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-scenelayerview-query-stats\/index.html"},{"acf_fc_layout":"content","content":"<p><strong>Smart mapping<\/strong><\/p>\n<p>With this release, the API reached parity with the 3.x API\u2019s Smart Mapping capabilities and grew them even further with new functionality. For example, you can choose to have the outline width of polygon symbols dynamically update based on view scale. You can also take advantage of a new convenience method for determining the suggested\u00a0minSize\u00a0and\u00a0maxSize\u00a0of a\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-renderers-visualVariables-SizeVariable.html#ScaleDependentIcons\">scale-dependent size visual variable<\/a>.<\/p>\n<p><strong>New Slider Widgets<\/strong><\/p>\n<p>As part of this release, we built new slider widgets from the ground up to enable a rich user experience for exploring data with color, size, or opacity. These sliders incorporate the Histogram widget to help you better understand your data. You can use the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Slider.html\">slider base class<\/a> on its own within your apps or extend it to create a custom widget.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":554402,"id":554402,"title":"sliders","filename":"sliders.png","filesize":74349,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\/sliders","alt":"New API sliders for interacting with your data","author":"4271","description":"","caption":"New API sliders for interacting with your data","name":"sliders","status":"inherit","uploaded_to":543762,"date":"2019-07-01 22:46:30","modified":"2019-07-01 22:47:22","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":3432,"height":1558,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders.png","medium-width":464,"medium-height":211,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders.png","medium_large-width":768,"medium_large-height":349,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders.png","large-width":1920,"large-height":872,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders.png","1536x1536-width":1536,"1536x1536-height":697,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders.png","2048x2048-width":2048,"2048x2048-height":930,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders-826x375.png","card_image-width":826,"card_image-height":375,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/07\/sliders-1920x872.png","wide_image-width":1920,"wide_image-height":872}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Modernization of the API<\/strong><\/p>\n<p>As both the API and web browsers evolve, we are able to grow the API\u2019s use of native capabilities available in web browsers in place of other libraries. This allows us to reduce the size of the API which improves load performance, among other benefits. Some of our modernization efforts include:<\/p>\n<ul>\n<li>93% of the codebase is written in\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/guide\/typescript-setup\/index.html\">TypeScript<\/a>.<\/li>\n<li><a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-request.html\">esri\/request<\/a>\u00a0now uses the native\u00a0<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Fetch_API\">Fetch API<\/a>\u00a0internally to request resources.<\/li>\n<li>Most asynchronous methods in the API now support an optional\u00a0signal\u00a0parameter of type\u00a0<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/AbortSignal\">AbortSignal<\/a>. See\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/guide\/release-notes\/#asynchronous-method-cancellation\">Asynchronous Method Cancellation<\/a>\u00a0for more information.<\/li>\n<li>A new has flag is available to enable asynchronous API functions to return a <em>native<\/em> JavaScript promise rather than a Dojo promise (dojo\/Deferred). More details about this functionality will be available in an upcoming blog post.<\/li>\n<li>A new number and date formatting module, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-intl.html\">esri\/intl<\/a>, takes advantage of the browsers internationalization APIs. It includes functions for formatting dates, times and numbers based on locales, regions as well as 24-hour or 12-hour time formats.<\/li>\n<\/ul>\n<p><strong>Learn more <\/strong><\/p>\n<p>To learn more about this release, check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/release-notes\/\">4.12 release notes<\/a>, and play around with <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/?search=4.12\">samples<\/a> that showcase new features. We also added a <a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/showcase\/dot-density-legend\/\">new app<\/a> in the Showcase that uses dot density to visualize population by race in the U.S. based on current population estimates.<\/p>\n<p>Version 3.29 was also released with a handful of minor updates and bug fixes; learn more in the <a href=\"http:\/\/developers.arcgis.com\/javascript\/3\/jshelp\/whats_new.html\">3.29 release notes<\/a>.<\/p>\n<p>If you are attending the <a href=\"https:\/\/www.esri.com\/en-us\/about\/events\/uc\/overview\">2019 Esri User Conference<\/a> next week, come find us at the Developer showcase in the <a href=\"https:\/\/www.esri.com\/en-us\/about\/events\/uc\/experience\/expo\">Expo<\/a>\u00a0and say hello! You can also use the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/top-10-list-for-web-developers-at-the-2019-user-conference\/\">Top 10 List for Web Developers blog<\/a> to help navigate the event and plan your week.<\/p>\n<p>For a relaxing 3 minutes of 4.12 demos with music, watch this <a href=\"https:\/\/www.youtube.com\/watch?v=J7LPAQx8IBg\">video<\/a> \ud83d\ude42<\/p>\n"}],"authors":[{"ID":4271,"user_firstname":"Julie","user_lastname":"Powell","nickname":"Julie Powell","user_nicename":"julie-powell","display_name":"Julie Powell","user_email":"julie_powell@esri.com","user_url":"","user_registered":"2018-03-02 00:15:51","user_description":"Julie Powell is Principal Product Manager for Esri's web development technologies. She works to ensure developers can be successful in building state of the art, purposeful solutions using ArcGIS software. \r\nJulie brings 20 years of experience working with global leaders such as Hewlett-Packard and Esri, delivering a variety of software solutions for both the enterprise and consumer markets.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":3801,"user_firstname":"Andy","user_lastname":"Gup","nickname":"andygup","user_nicename":"andygup","display_name":"Andy Gup","user_email":"agup@esri.com","user_url":"http:\/\/www.andygup.net","user_registered":"2018-03-02 00:15:25","user_description":"I spend a ton of time outdoors and when not on a mountain somewhere I'm a Sr. Product Engineer for the ArcGIS Maps SDK for JavaScript. I work on ES modules, 3rd party JavaScript frameworks, and other cool mapping-related goodies.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/07\/andy_gup_thumb4-1.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":536732,"post_author":"4271","post_date":"2019-06-24 13:23:25","post_date_gmt":"2019-06-24 20:23:25","post_content":"","post_title":"Top 10 List for Web Developers at the 2019 Esri User Conference","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"top-10-list-for-web-developers-at-the-2019-user-conference","to_ping":"","pinged":"","post_modified":"2019-06-25 13:56:16","post_modified_gmt":"2019-06-25 20:56:16","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=536732","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":530492,"post_author":"4271","post_date":"2019-06-21 16:27:34","post_date_gmt":"2019-06-21 23:27:34","post_content":"","post_title":"Build a Tailored Web Editing Experience with the ArcGIS API for JavaScript","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"build-a-tailored-web-editing-experience-with-the-arcgis-api-for-javascript","to_ping":"","pinged":"","post_modified":"2019-12-18 13:10:23","post_modified_gmt":"2019-12-18 21:10:23","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=530492","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":498002,"post_author":"6561","post_date":"2019-04-25 08:00:31","post_date_gmt":"2019-04-25 15:00:31","post_content":"","post_title":"Visualizing change with dot density","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"visualizing-change-with-dot-density","to_ping":"","pinged":"","post_modified":"2019-04-24 16:05:12","post_modified_gmt":"2019-04-24 23:05:12","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=498002","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/card2.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/water-banner.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What&#039;s New in ArcGIS API for JavaScript (July, 2019)<\/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-api-for-javascript-july-2019\" \/>\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 API for JavaScript (July, 2019)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\" \/>\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=\"2019-07-03T15:40:08+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-api-for-javascript-july-2019#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\"},\"author\":{\"name\":\"Julie Powell\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/3ef71df36f6aacca26eb2c7f65f15e88\"},\"headline\":\"What&#8217;s New in ArcGIS API for JavaScript (July, 2019)\",\"datePublished\":\"2019-07-02T23:18:10+00:00\",\"dateModified\":\"2019-07-03T15:40:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS API for JavaScript\",\"ArcGIS Online\",\"jsapi4\",\"Web Mapping\"],\"articleSection\":[\"Announcements\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\",\"name\":\"What's New in ArcGIS API for JavaScript (July, 2019)\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2019-07-02T23:18:10+00:00\",\"dateModified\":\"2019-07-03T15:40:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019#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 API for JavaScript (July, 2019)\"}]},{\"@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\/3ef71df36f6aacca26eb2c7f65f15e88\",\"name\":\"Julie Powell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png\",\"caption\":\"Julie Powell\"},\"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. Julie 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.\",\"sameAs\":[\"https:\/\/x.com\/JuliePowellGIS\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/julie-powell\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What's New in ArcGIS API for JavaScript (July, 2019)","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-api-for-javascript-july-2019","og_locale":"en_US","og_type":"article","og_title":"What's New in ArcGIS API for JavaScript (July, 2019)","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2019-07-03T15:40:08+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-api-for-javascript-july-2019#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019"},"author":{"name":"Julie Powell","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/3ef71df36f6aacca26eb2c7f65f15e88"},"headline":"What&#8217;s New in ArcGIS API for JavaScript (July, 2019)","datePublished":"2019-07-02T23:18:10+00:00","dateModified":"2019-07-03T15:40:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019"},"wordCount":9,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS API for JavaScript","ArcGIS Online","jsapi4","Web Mapping"],"articleSection":["Announcements"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019","name":"What's New in ArcGIS API for JavaScript (July, 2019)","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2019-07-02T23:18:10+00:00","dateModified":"2019-07-03T15:40:08+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019#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 API for JavaScript (July, 2019)"}]},{"@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\/3ef71df36f6aacca26eb2c7f65f15e88","name":"Julie Powell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png","caption":"Julie Powell"},"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. Julie 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.","sameAs":["https:\/\/x.com\/JuliePowellGIS"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/julie-powell"}]}},"text_date":"July 2, 2019","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/announcements\/whats-new-in-arcgis-api-for-javascript-july-2019","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2019\/06\/water-banner.jpg","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":96582,"name":"ArcGIS API for JavaScript","slug":"arcgis-api-for-javascript","term_group":0,"term_taxonomy_id":96582,"taxonomy":"post_tag","description":"","parent":0,"count":58,"filter":"raw"},{"term_id":42641,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":42641,"taxonomy":"post_tag","description":"","parent":0,"count":420,"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":23221,"name":"Web Mapping","slug":"web-mapping","term_group":0,"term_taxonomy_id":23221,"taxonomy":"post_tag","description":"","parent":0,"count":28,"filter":"raw"}],"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"}],"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":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\/543762","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\/4271"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=543762"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/543762\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=543762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=543762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=543762"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=543762"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=543762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}