Smart Mapping

Smart Mapping is a new approach that both developers and users of the ArcGIS platform will be able to leverage for making maps that are useful
and visually stunning. This exciting new capability will increase productivity in developing and configuring applications by taking the guesswork
out of the various decisions involved in generating cartographically appropriate, yet visually stunning maps. The goal is to be
smarter about how the initial parameters of the map (color, scale, styling, etc.) are calculated so both novice and experienced developers/users will have better tools at their disposal to configure settings and visualize map data.

Cartographic workflows simplified by Smart Mapping options include:

Continuous color ramps and proportional symbols (unclassified maps)

Improved categorical mapping

Authoring heat maps

New kinds of bivariate maps using transparency (value-by-alpha maps)

Common mapping questions that Smart Mapping will help answer:

Given the basemap I'm using (e.g., World Topographic Map or National Geographic World Map), what colors,
line weights, opacity, and so on, should I use so it all looks good?

Given my data, can I automatically determine and set the appropriate zoom levels for this map?

Geometry Engine (beta)

A new synchronous and
asynchronous client-side geometry engine is part
of this release. There are over 30 different methods for performing operations that previously would have required a round-trip to a server.
For more information on the these new modules, follow the previous links. Note: These features are currently in beta.

Search Widget

The Search Widget supersedes the Geocoder Widget (now deprecated). It's been reimagined, renamed and redesigned to provide a single searching and suggestion experience. It allows you to search across multiple Locator and Feature Layer services from a simple interface.

The Search dijit was designed to handle multiple types of sources including Locator tasks, Feature Layers and potentially others, whereas the Geocoder dijit is limited to only searching Locator tasks. You can customize the Search dijit to search or get suggestions from all defined sources or limit it to a single source. The user interface has been improved to handle searching one or more of these sources.

Much of the same functionality found in the Geocoder widget is also present in the Search widget, but many new features have been added and redesigned for a better user and developer experience. As a developer, it should be easier for you to configure the Search widget and involve writing less code to handle common searching tasks.

Enhanced ImageServer functionality

ArcGISImageServiceVectorLayer displays image service pixel values with vector point symbols. The image services supported by this layer are two-band rasters that serve vector field data (as U-V or Magnitude-Direction). For more information, see the ArcGISImageServiceVectorLayer API reference and this sample.

RasterLayer is used to display image services. Upon creation, the layer retrieves image data from a specified image service and applies client side pixel filtering (e.g. mask, stretch, etc.). This layer is particularly useful when the user needs to interactively manipulate pixel values and get an immediate response. For more information, see the RasterLayer API reference and this sample.

Improvements to Directions Widget

Current location support - Users now have the ability to create routes using their current location. This can be accomplished either through the user interface or programmatically with the new useMyCurrentLocation() method.

Improved language support - The language of the turn by turn directions produced by the widget now is set automatically based on the language of the app. For a list of supported languages, click here and navigate to directionsLanguage under "Optional parameters."

Map-click-active button improvements - The map-click-active button was introduced in v3.12 and gives users the ability to add stops and destinations on routes by clicking on the map. The following improvements are now available in relation to the map-click-active button:

The button is deactivated by default upon instantiation.

It can be activated and deactivated programmatically using the new mapClickActive property. This replaces the deprecated activate() and deactivate() methods.