Release notes for 4.5
September 2017
FeatureLayer performance updates in 2D (beta)
Starting with this release, you can opt in to render FeatureLayer with WebGL (beta) in a 2D MapView. This allows you to display more data in the view and update the visualization of features more rapidly, such as this layer with more than 1 million building footprints:
FeatureLayers are now rendered with WebGL by default as of version 4.9.
Sketching
We added several new classes that enable drawing temporary geometries in a 2D MapView:
- SketchViewModel
Draw
This is the initial release of drawing support in the API. Full support for drawing and editing will come in future releases, including the following:
- Editing existing geometries
- Creating and editing new geometries, including but not limited to, multipoint geometries.
- A Sketch widget
- Support for drawing in a 3D SceneView
- Full editing support. This includes the ability to enable common geometry validation rules such as preventing self intersecting lines.
OGC support
KML
KMLLayer is a new layer type in version 4.5. Currently, it is only supported in 2D MapView.
WMS and WMTS in 3D
Support for WMS and WMTS in 2D MapViews was added in version 4.4. As of version 4.5, WMSLayer and WMTSLayer can also be used in WebScene. Please see the WMSLayer sample for an example of how to use WMS layers in a WebScene.
Arcade support in 3D
Arcade expressions now can be used for labels and elevation offsets. For more information on how to use Arcade in these contexts, read the Arcade guide. The Elevation options sample shows how to use Arcade expressions for setting a custom elevation.
See the Label features using Arcade expressions sample to see how Arcade expressions are used to label features.
Elevation offset support for more layer types
The vertical placement of buildings and other 3D Objects can be adjusted using the new elevationInfo property. This is helpful when the SceneLayer doesn't match the terrain elevation and buildings are either sinking in the ground or flying above the ground. The elevation
property was also added to IntegratedMeshLayer and PointCloudLayer. Currently only absolute-height
mode works for the three layer types.
Smart Mapping support for point clouds
The Smart Mapping APIs now support PointCloudLayer. As of 4.5, you can generate renderers with good default point sizes with colors based on traditional point cloud rendering standards.
We added the following renderer creator methods to generate specific point cloud visualizations:
- colorRendererCreator.createPCContinuousRenderer() - For visualizing each point along a continuous color ramp (e.g.
intensity
orelevation
) - colorRendererCreator.createPCTrueColorRenderer() - For displaying the true color of each point.
- typeRendererCreator.createPCClassRenderer() - For visualizing each point based on its classification code (e.g.
high vegetation
,water
, etc.).
The following existing API statistics methods now support PointCloudLayer inputs:
Expanded Autocasting support
We added autocasting support for all renderers, symbols, symbol layers. You can also autocast geometries added to graphics.
This means that you no longer need to require any renderer, symbol, and symbol layer modules in your module loader. Simply set the desired properties in a simple object and set the type
property to specify which symbol or renderer to create.
Point, Polygon, and Polyline geometries can also be autocast when added to Graphic. The type
property will specify which geometry to create.
All samples and code snippets in the API reference have been updated to use this pattern. See also the Autocasting guide topic, which has been updated in this release.
Vertical coordinate systems
We now leverage support for vertical coordinate systems (VCS) and vertical units with scene or imagery layers containing precise vertical measurements. The WebScene reads and stores the VCS of a webscene in the heightModelInfo property.
Popup widget improvements and updates
Numerous updates were made to the Popup widget to enhance the overall user experience. In addition to undergoing a minor popup redesign, the Popup has been updated to support the widget framework introduced at version 4.2. Additional updates include:
- Added an
auto
property to both Popup and PopupViewModel. If set toClose Enabled true
, the popup closes when the View camera or Viewpoint changes. - Popup menu can be opened programmatically by setting
feature
toMenu Open true
in the open method. - Popup is now only visible when it has content or has a feature and isn't waiting for a result. This eliminates the issue of the Popup's open method being called twice in cases where there may be a slow internet connection. This fixed BUG-000106928.
- Added a
promise
property to the PopupViewModel.Count
API updates and enhancements
- Legend supports MapNotesLayer and PointCloudLayer.
- Added legendEnabled on PointCloudLayer.
- Added HeightModelInfo.
- Added heightModelInfo as a property on the WebScene.
- Renderers and symbols inside renderers can now be autocast by specifying their type.
- OAuthInfo's popupWindowFeatures property no longer contains a default
location
. - Ground follows the loadable pattern. Read more about loadable classes in the Loadable guide topic.
- toJSON() and fromJSON() methods are now available on the Ground class.
- Added elevationInfo on the IntegratedMeshLayer.
- Added offset for 3D Object Scene Layers.
- Added a
feature
property to the Popup's open method. This enables the user to specify a list of selected features if multiple features are selected.Menu Open - Documented legendURL on WMSLayer.
- Added highlightOptions on MapView.
- Added layerOptions property to the PopupTemplate.
- Added an
auto
property to both Popup and PopupViewModel.Close Enabled - Added a
collapsed
property to Popup. - Added an asynchronous filter() method to promiseUtils.
- Added an Error class that enhances the debugging and error handling process.
- Added an EsriErrorDetails type definition to esri/Request.
- Added a
use
property to theIdentity esri/config
request method. - Added an
auth
property to the esriRequest method options.Mode - Added emit methods to emit an event on the instance.
- Added a
parent
property to the ListItem class. - Added an
update
method to the PortalItem class.Thumbnail - Added a
symbol
property to theSize
widget.Slider - Added a
refresh
property to the PopupTemplate's mediaInfos object.Interval - Added a statusIndicatorsVisible property to LayerList.
- Added a
focus
method to the View class. - Added a
layout
property to the Zoom widget. - Add a query property to the PortalBasemapsSource class.
- Added an
expression
option to the labelExpressionInfo property in the LabelClass class. - Deprecated
value
option of the labelExpressionInfo property in the LabelClass class.
Breaking changes
- The
type
property in all renderer, symbol, and symbol layer classes is no longer read-only. - Changed
type
value for many renderers for consistent kebab-casing:- UniqueValueRenderer.type was changed from
unique
toValue unique-value
. - ClassBreaksRenderer.type was changed from
class
toBreaks class-breaks
. - PointCloudClassBreaksRenderer.type was changed from
point
toCloud Class Breaks Renderer point-cloud-class-breaks
. - PointCloudRGBRenderer.type was changed from
point
toCloud RGBRenderer point-cloud-rgb
. - PointCloudStretchRenderer.type was changed from
point
toCloud Stretch Renderer point-cloud-stretch
. - PointCloudUniqueValueRenderer.type was changed from
point
toCloud Unique Value Renderer point-cloud-unique-value
. - SimpleMarkerSymbol.type was changed from
simple-marker-symbol
tosimple-marker
. - SimpleLineSymbol.type was changed from
simple-line-symbol
tosimple-line
. - SimpleFillSymbol.type was changed from
simple-fill-symbol
tosimple-fill
. - PictureMarkerSymbol.type was changed from
picture-marker-symbol
topicture-marker
. - PictureFillSymbol.type was changed from
picture-fill-symbol
topicture-fill
. - TextSymbol.type was changed from
text-symbol
totext
. - PointSymbol3D.type was changed from
point-symbol-3d
topoint-3d
. - LineSymbol3D.type was changed from
line-symbol-3d
toline-3d
. - PolygonSymbol3D.type was changed from
polygon-symbol-3d
topolygon-3d
. - MeshSymbol3D.type was changed from
mesh-symbol-3d
tomesh-3d
. - LabelSymbol3D.type was changed from
label-symbol-3d
tolabel-3d
. - WebStyleSymbol.type was changed from
web-style-symbol
toweb-style
.
- UniqueValueRenderer.type was changed from
- ElevationLayers are always visible at the slide level when saving a scene with API 4.5 to Portal 10.5.1 (or earlier).
- The
zoom
property in Search sources now automatically uses the set scale. Prior to this version, it would only zoom to the scale if the search result did not have an associated extent.Scale - The Search widget's search() method returns a Promise which, when resolved, returns a SearchResponse similar to the search-complete event.
- Both the Search widget and its corresponding viewmodel's suggest() method returns a Promise which, when resolved, returns a SuggestResponse similar to the suggest-complete event.
- Removed the
cancel
from SearchViewModel.Suggest - Removed the Graphic
get
method. Instead, if the graphic's popupTemplate is not defined, it will use the graphic's layerEffective Popup Template popup
.Template - Removed
min
andScale max
properties from ElevationLayer.Scale
Bug fixes and enhancements
- BUG-000106780: GEONET-198211: can't load more than one WMSLayer in 4.4.
- BUG-000104472: Setting the
rotation
property of the MapView's constraints property to 'false' no longer causes problems using pinch while zooming in/out on mobile devices.Enabled - BUG-000106239: Honor color for SimpleFillSymbol for hatch style. Note that this is an enhancement from 3.x where non-solid fill patterns are always black.
- BUG-000106893: Fixed an issue where the goTo method did not work correctly when spatial reference is set using WKT.
- BUG-000105935: Fixed an issue where certain stream layers would not load properly while using IE 11.
- BUG-000105956: The BasemapToggle widget now properly displays the title of basemaps when the titleVisible property is true.
- BUG-000106572: Fixed an issue where the Search widget would not generate an extent from a resulting point location.
- BUG-000106579: Black square images no longer replace symbols in VectorTileLayers at runtime.
- Fixed an issue when using esri/request against an admin REST endpoint did not prompt for credentials.
- BUG-000107381 - Fixed an issue for parsing an array of features returned from ServiceAreaTask.solve().
- BUG-000106674: MapImageLayer now honors the default visibility for sublayers.
- BUG-000106928: Pop-up no longer automatically opens after closed in a slow connection.
- BUG-000105454: The BasemapToggle widget now displays the correct thumbnail image.
- BUG-000106907: Rotate now rotates properly if padding is set on the MapView.
- BUG-000106485 and BUG-000105504 - Curvature in lines now display properly in both MapView and SceneView.
- BUG-000106984 - MapView extent is now correct if it is set before the view is initialized.
- BUG-000106683 - Fixed the error, "Cannot read property 'position' of undefined" after clicking on a view before a FeatureLayer is fully loaded.
- ENH-000106283 - Improved documentation for the
esri/config
request.httpsDomain property. - ENH-000105839 - Fixed documentation for MapView navigation table.
- The Search
auto
property now works as expected. Once set toNavigate false
, the search result will not automatically zoom to its extent. It takes precedence if set on the widget's sources[] property. If it is not defined here, it will take whatever is set directly on the widget itself. - Fixed an issue for custom LOD's whose tiling schema origin was incorrect.
- GEONET-198778 was fixed: labels on draped polygons update position and callouts now work on polylines and polygons.
Website enhancements
- API Reference - when a property is a Collection, such as GraphicsLayer.graphics or Map.layers; the data type is now explicitly stated.
- API Reference - when a method returns a Promise such as MapView.hitTest or CSVLayerView.queryFeatures; the data type is now explicitly stated.
- API Reference - now supports the ability to show/hide inherited properties, methods, and events.
- API Reference, Sample Code - when the page has focus, active the search using the
/
keyboard shortcut.
Additional packages
Version 4.5 of the ArcGIS Maps SDK for JavaScript uses Dojo 1.12.2 (since 4.4), dgrid version 1.2.1 (since 4.5), and dstore version 1.1.2 (updated from 1.1.1 in version 4.5).
How to access the SDK
- The API is available on both CDN and npm, Read more at Install and set up.
- You can also download both the documentation and the API library. These downloads are typically available 3-4 weeks after release.
Previous releases
- Version 4.26 - February 2023
- Version 4.25 - November 2022
- Version 4.24 - June 2022
- Version 4.23 - March 2022
- Version 4.22 - December 2021
- Version 4.21 - September 2021
- Version 4.20 - June 2021
- Version 4.19 - April 2021
- Version 4.18 - December 2020
- Version 4.17 - October 2020
- Version 4.16 - July 2020
- Version 4.15 - April 2020
- Version 4.14 - December 2019
- Version 4.13 - October 2019
- Version 4.12 - June 2019
- Version 4.11 - March 2019
- Version 4.10 - December 2018
- Version 4.9 - September 2018
- Version 4.8 - July 2018
- Version 4.7 - April 2018
- Version 4.6 - December 2017
- Version 4.5 - September 2017
- Version 4.4 - July 2017
- Version 4.3 - March 2017
- Version 4.2 - December 2016
- Version 4.1 - September 2016
- Version 4.0 - May 2016