ArcGIS Maps SDK for JavaScript

What's New in ArcGIS API 4.10 for JavaScript (December 2018)

`Tis the season for holidays, vacations, snow forts, sunny beaches, desk jobs, field jobs, sports, politics, and birthdays. Today, we are proud to add Web GIS Developers to this inclusive December celebration with the release of version 4.10 of the ArcGIS API for JavaScript.

Version 4.10 introduces a considerable amount of new and improved functionality. We took major strides in advancing editing workflows with the new FeatureTemplates widget. We added 2D area and distance measurement widgets, and we boosted performance by drawing all of the layers in the map using a single WebGL context. We enhanced the 3D experience with more performant WebStyleSymbols, introduced a new building layer type for visualizing buildings with detailed interiors, added a new widget for revealing obstructed content in a 3D scene, , and so much more.

Editing Workflows

The new FeatureTemplates widget displays templates from one or more feature layers, and allows end users to create new features. For example, it allows you to filter the templates by name or by geometry type (which is helpful when you have a large variety of feature templates in your layers), and group templates for an easier editing experience. See the FeatureTemplates sample to see this widget in action.

Sketching

The Sketch widget provides a simple UI for creating and updating graphics in a 2D MapView. It is intended to be used with graphics stored in its layer property. By default, the Sketch widget provides out-of-the-box tools for creating and updating graphics with pointpolylinepolygonrectangle and circle geometries. The widget allows users to undo and redo edits, as well as select and edit multiple graphics at once. See the Sketch widget sample to learn more about Sketch widget.

Sketch widget

Widgets for 2D Measurements

We also added two new measurement widgets for working with 2D MapViews. The AreaMeasurement2D widget calculates and displays the area and perimeter of a polygon. The DistanceMeasurement2D widget calculates and displays the distance between two or more points. See the Measurement in 2D sample for an example of both widgets.

2D Measurement widgets

Boosted Performance

WebGL is now used for drawing all layers in 2D MapViews. We have moved to a single WebGL context to improve drawing performance, especially on mobile devices. While we constantly focus on improving performance, this release marks a significant advancement.

Previously, we added support for loading large point feature layers in a WebScene. Now, you can also add thousands of lines and polygons, allowing you to visualize feature layers with large datasets containing features such as streets, rivers, parcels, and country borders.

3D BuildingSceneLayer and Slice Widget

Explore the fine details of buildings using the new BuildingSceneLayer. These building models are usually exported from Building Information Modeling (BIM) projects. This new layer allows you to display and hide exterior and interior structures like facades, walls, doors and mechanical systems.

One great way to experience the BuildingSceneLayer is with the Slice widget, which is a 3D analysis tool that can be used to reveal occluded content in a SceneView. The slice widget can be applied to any layer type, making it possible to see inside buildings or to explore geological surfaces. See the BuildingSceneLayer with Slice widget sample for more details.

3D Slice widget

Enhanced 3D WebStyleSymbols

GIS development is both a science and an art. To that end, we added a new automatic level of detail to the 3D WebStyleSymbols, so that you can display tens of thousands of realistic trees, cars and other models, and maintain strong performance while zooming in and out. Check out the Realistic WebStyleSymbols sample to see how the symbols perform at different scales.

High Definition WebStyleSymbols

Additional Arcade Support

We added support for evaluating geometry functions in your arcade expressions. For example, you can create geometries, perform area and length calculations, work with buffers, and more.

Better Labeling Support

In this release, we added support for labeling lines in 2D MapViews. We also improved the labeling behavior when working with visual variables, and enhanced the labeling priority in 2D MapViews to better match the layer ordering. Lastly, if the TextSymbol3DLayer.size property is not set, the font.size property will now be honored in 3D SceneViews.

2D line labeling

SketchViewModel Updates

We made some significant updates to the SketchViewModel at this release. We condensed over 20 events into 4 events without losing any functionality. This change should make it easier and more straightforward to maintain your code to respond to events. Please refer to the SketchViewModel changes at 4.10 page for more information.

Learn More

This is not the end of the new features and functionality for 4.10, just an end to this blog. For a full list of enhancements, updates, and bug fixes, be sure to check out the release notes and new samples:

About the authors

Julie Powell is a Principal Product Manager, focusing on 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. Julie has worked on a wide range of projects and consulting endeavors, including serving as technical lead for web mapping solutions for strategic customers.

Connect:

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.

Connect:

Passionate about JavaScript, maps, and writing (not necessarily in that order). Big fan of squirrels. Journeyman mapper of Utility Lines and Public Restrooms. Product Engineer on the ArcGIS API for JavaScript team. In Noah’s spare time, he also enjoys parenting.

Connect:

Next Article

Using Arcade to Translate Pop-Ups for Use in the ArcGIS Instant Apps

Read this article