Release Notes 4.9

What’s New

This release contains a number of new features and updates to the base technology.

OGC API Features

This version introduces a new layer for using OGC API-Features . This new standard is the completely modernized successor of the OGC Web Feature Service (WFS) specification.

Parameterized URL in address bar of browser

The parameterized URL with which the state of an app (e.g. activated base maps and layers or the displayed map extent) can be shared can now be permanently displayed and updated in the address bar of the browser. To activate this function, add the bundle parameter-url to your app.

Popup improvements

This release introduces the following improvements to popups:

  • Popups can be defined for search topics (stores) independently of layers. This allows popups to be displayed for a search service that is not displayed on the map (e.g. search for address points).

  • Popups can be opened automatically after a search. This also applies to searches that were executed using a parameterized call.

  • The display of actions and other elements can be better configured.

  • The default popup can now also be used for imagery layers.

Base maps in the map content control (TOC)

The map content control can now also control the base maps available in the app. This provides users a central interface to control all displayed maps in desktop environments as well as on mobile devices.

Editing

Dialog for attribute editing

The dialog for editing the attributes of a map object can now be adjusted via configuration. Using so-called FormTemplates, the attributes that are to be displayed for editing can be specified. In addition, attributes can be grouped together and provided with customized headings, descriptions and labels.

Editing in 3D

The tools for adding and editing objects can now also be used in 3D scenes.

Edit attachments (file attachments)

Files can be added to and removed from a map object as attachments using the editing tool.

Tool rules for map states

Tool Rules can be used to activate or provide tools depending on the current map scale or activated map layers. For example, a tool can only be offered for editing if a corresponding layer has been activated.

Further new functions and improvements

  • The ArcGIS API for JavaScript used by map.apps as technical basis is updated to version 4.16 with this release. This leads to numerous improvements and bug fixes in the base technology. For example, the performance when displaying feature layers or web scenes has been significantly improved.

  • A legend can now also be displayed for base maps.

  • The default positions of tooltips can now be defined for complete tool sets. The app configuration can thus be made shorter and clearer, as it is not necessary to define the position for each tool individually.

  • GeoRSS feeds can now be integrated as map layers.

  • The new layer type ImageryTileLayer can be used to project and process raster data on the client side.

  • Two new tools are available to switch to previous and next map sections.

  • Mouse wheel or touch gesture map control can be disabled to improve the user experience in embedded apps.

  • Apps registered in Portal for ArcGIS can only be accessed by users who have been granted access to the corresponding element in Portal for ArcGIS

  • The layouts and formats available for printing can be configured.

  • The configuration of CORS filters is more efficient by using placeholders.

A complete list of all changes can be found in Changelog.

Update Notes

JavaScript import/export vs. AMD define

In the course of modernizing the map.apps API, the keyword export defined in the ECMAScript 6 standard (ES6) is increasingly used. This requires a change when using the AMD import style define . Use the new ES6 import syntax to avoid incompatibilities.

The following sections show the change using the example of string-replace:

AMD import (old)
define(["apprt-core/string-replace"], function(stringReplace){

   var msg = stringReplace('Hello ${key}', { key : "World"});

});
ES6 import (new)
import stringReplace from "apprt-core/string-replace"

const msg = stringReplace('Hello ${key}', { key : "World"});

Code that is in AMD format can be converted with the amd-to-es6 tool. The sample project for developing new bundles mapapps-4-developers is already prepared for using the new syntax.

Theming

With map.apps 4.9 new color variables are available to customize the OmniSearch background and input-text color via LessCss. For custom themes, the following variables with the default values must be added :

@ct-omnisearch-input-background-color: #fff;
@ct-omnisearch-input-text-color: #000;
@ct-omnisearch-drawer-button-background-color: @ct-omnisearch-input-background-color;
@ct-omnisearch-drawer-button-icon-color: darken(@disabled-text-color, 30);

Dependencies

Line 4 Bundles

  • Esri ArcGIS API for JavaScript 4.16.2

  • ArcGIS Arcade 1.11

  • core-js 3.6.4

  • Dojo 1.14.2

  • dgrid 1.2.1

  • dstore 1.1.2

  • Moment.js 2.24.0

  • Vue.js 2.6.6

  • Vuetify.js 1.5.24

Line 3 Bundles

  • Esri ArcGIS API for JavaScript 3.25

  • Dojo 1.13.0

  • dgrid 0.3.17

  • xstyle 0.3.2

  • put-selector 0.3.6

  • dstore 1.1.2

  • Moment.js 2.22.1