Hide Table of Contents
Tutorials
About the API
Work with the API
Graphics and feature layers
Popups and Info Windows
Geoprocessor
Operations Dashboard
Create extensions
Mobile
ArcGIS Server Services
References
What's New archive
A new layer type, VectorTileLayer, accesses cached tiles of data and renders it in vector format. It is similar to a WebTiledLayer in the context of caching; however, a WebTiledLayer renders as a series of images, not vector data. VectorTileLayers contain geometry, attribute, and style data in individual layers. Styles can be customized client-side.
To get better familiarized with the properties, methods, and events of this layer, please see the VectorTileLayer API reference for additional information.
The FeatureTable widget was taken out of beta at version 3.15. With this comes improved functionality and bug fixes such as:
enableLayerClick, enableLayerSelection, and gridMenuoutFields is not set to the wildcard, ["*"]
Beginning with version 3.15, both esri/geometry/geometryEngine and esri/geometry/geometryEngineAsync objects are no longer considered beta.
These modules each provide more than 30 methods for measuring, overlaying, and testing spatial relationships between geometries in web applications. They include functions such as buffer, intersect, and offset for calculating proximity, spatial relationships, and measurements of area and length all client-side. No network requests are made when using any GeometryEngine functions. This means that using GeometryEngine in favor of GeometryService can significantly enhance the user experience in web applications, particularly in editing applications or when working with a large number of geometries.
The following blog posts explain some of the benefits of using GeometryEngine and include samples using GeometryEngine for various purposes, including testing spatial relationships while editing, measuring, and overlay.
The createPredominanceRenderer() method was added to the smartMapping module allowing you to generate a UniqueValueRenderer showing the predominant value in each feature among a set of two or more competing fields. For example, in the sample below the map depicts the predominant educational attainment of adults in each U.S. county. Blue features indicate that more adults in the county earned a bachelor's degree than the number of adults in any other educational attainment level. Counties shaded with orange indicate more adults finished high school and didn't continue on to college than the number of adults in any other educational attainment level. Opacity may optionally be used to show the strength of the predominant variable.
Version 3.15 introduced the ArcGIS Symbol Playground. This sample provides a place to explore symbol capabilities of the API. Here you can try out new features, customize them, and copy the generated code into your own application. It also provides a starting point so as to allow use of these features as quickly as possible.
The sample works with symbols such as: SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol, CartographicLineSymbol, PictureMarkerSymbol, PictureFillSymbol, and TextSymbol. The playground displays the symbol in addition to providing an easy-to-use UI for modifying properties. Once modified, the symbol updates appropriately while updating the sample snippet displaying how it appears in code.
Visit the documentation for each renderer class regarding details and code samples for each symbol type.
Numerous improvements have been made to the SmartMapping sliders' design. These improvements include:


Improvements were made to the Legend widget. These include:
The ArcGIS API for JavaScript is available via the CDN version, it can be downloaded and hosted locally, and for the majority of developers wanting to create custom builds, the ArcGIS API for JavaScript Web Optimizer is a great tool.
However, if you are already using Grunt, Gulp, or npm to write your applications, you will find the Bower package useful. The Bower package of the ArcGIS API for JavaScript is now available on GitHub. If you have a requirement to integrate the ArcGIS API for JavaScript into your current build steps, then the Bower package may be just right for you. For more information on ways to access the API, see the Get the ArcGIS API for JavaScript topic in the Guide and the Using Bower for Custom Builds topic in the Guide References section.
The CSS class name .container used by Map was renamed to .esriMapContainer to avoid CSS conflicts with other frameworks. The .layersDiv class was also renamed to .esriMapLayers.
Renaming these classes is a breaking change for apps that use them for customized CSS. These changes to the class names won't affect the majority of applications, which don't alter CSS properties in these classes.
VectorTileLayerelevationMarkerStrokeColor, elevationMarkerSymbol, and mapIndicatorSymbol on class ElevationProfileenableLayerClick, enableLayerSelection, gridMenu on class FeatureTableshowLegend, showOpacitySlider, showSubLayers (Renamed from subLayers,) on class LayerListallPlaceholder, defaultSource, enableSearchingAll, locationToAddressDistance on class SearchsearchTemplate, useMapExtent, searchQueryParams, suggestQueryParams for the Object[] sources property on class SearchpixelFilter on class RasterLayerrotationInfo on class RenderermapWidgetId on class DataSourceProxyportalUrl on class ExtensionBasehaloColor, haloSize on class TextSymbolshowratiolabels on class ColorInfoSlidertitle on class ElevationProfile.on("zoomed") on class ColorInfoSlider.on("zoomed") on class OpacitySlider.on("zoomed") on class SizeInfoSlider.on("get-custom-field-names") on class BatchValidationTask.on("get-custom-field-names") on class DashboardTask.on("get-custom-field-names") on class ReviewerResultsTaskrelatedFeatureWarning on the .on("update-end") event on class StreamLayer.on("title-changed") on class ElevationProfilecreatePredominanceRenderer () on object esri/renderers/smartMappinggeodesicDensify() on object esri/geometry/geometryEnginegeodesicDensify() on object esri/geometry/geometryEngineAsyncsetPixelFilter() on class RasterLayergetAdvancedQueryCapabilities() on class DataSourceProxycreateColorInfo(), createSizeInfo() on object esri/renderers/smartMappingsetHaloColor() and setHaloSize() on class TextSymbolgetCustomFieldNames() on class BatchValidationTaskgetCustomFieldNames() on class DashboardTaskcategories and countryCode on Location.addressesToLocations methodgetCustomFieldNames(), getResultsFieldNames() on class ReviewerResultsTaskuseCors supports "with-credentials" as a new option.corsEnabledServers can now contain objects with host and withCredentials properties.
Additional information about these updates can be found in the Default API configurations topic.source property, locationToAddressTemplate. This provides a template string used to customize the value
for a returned geocoded address. This property was introduced due to an issue where coordinates were displayed instead of addresses after reverse geocoding.measure-end event to fire.sizeInfo works.draw-end event to state that it is deprecated. Instead, use draw-complete event.ArcGISTileMapServiceLayer constructor option, resampling, works.pixelFilter property and setPixelFilter() method.Be certain to check out any updates to the repository on GitHub with TypeScript definitions for the JS API as well as the jshint options file used by the JS API team.
Version 3.15 of the ArcGIS API for JavaScript includes: