With map.apps 4.12 a new version of map.apps is available for download, which brings many new features and improvements. In addition, this release contains an update of the base technology. This article provides an overview of all the major new features and presents them in detail.
A new search for map.apps
This version introduces a new, modernized search function. Both the user interface and the search API working behind it have been completely revised and are provided as new bundles.
With the new search, it is possible to search multiple topics at once without having to specify a topic beforehand. The results are displayed grouped by topic. As a result, users no longer have to decide in advance in which topic they want to search, but can start the search directly by entering the search term.
The new interface is also better usable on mobile devices, as more space is used for the results display and results can be displayed in multiple lines.
Notes: The bundle omnisearch
is still available, but we recommend to use the new search. The new search is fully compatible with the extensions map.apps Smart Search and map.apps SDI, so that for example a search in the BKG search service can be included as a topic in the search. All details about the new search can be found in the documentation.
Intelligent App-Editor
The "Manual Configuration" is replaced with this version by the completely modernized, new "App Editor". The App Editor simplifies the configuration of apps with suggestion lists, validations and hints.
This makes it easier to avoid incorrect configurations. In addition, it is now possible to go directly to the corresponding documentation for each bundle. When entering a bundle name, you get a list with suggestions of the bundles available in your installation. If a bundle is not (or no longer) available in your installation, you will receive a warning. For an overview of all new features in the App Editor, see the Configure App page in the documentation.
More efficient use of Domain Bundles
Since map.apps 4.4, domain bundles can be used to outsource domain-specific content to bundles. Such a bundle can be reused in any number of apps and displays the respective content (maps, search, popups, etc.) equally in all apps. In case of updates, it is sufficient to exchange the bundle at a central location and all apps are up to date.
To make the use of domain bundles even more effective, two new options are introduced in this release:
- It is now possible to define whether the map layers added to an app by a domain bundle are inserted above or below the layers defined in the app.
- In addition, layer configurations can be overwritten in an app. This makes it possible, for example, to make the domain-specific map layers added via a domain bundle visible only in certain domain-specific apps when the app is launched and to add them as not initially visible in others.
Enhanced support for OGC services
OGC API - Features - Part 2
map.apps now supports OGC API - Features - Part 2, enabling the use of additional spatial reference systems. All layers can now be used in WGS84 and WebMercator as well as all other spatial reference systems supported by the service.
WFS Layer
A new layer type now allows the use of OGC Web Feature Services (WFS). The used service must be available in version WFS 2.0.0 and support the output format GeoJSON.
Improvement of the map content control (TOC)
When activating a map in the map content control, it is checked whether the parent elements are also switched visible (e.g. group layers). If this is not the case, they are automatically activated so that the activated map is immediately visible.
TypeScript
With this release, bundles written in TypeScript are delivered for the first time. Our mid-term goal is to migrate the entire JavaScript codebase to TypeScript. The use of TypeScript is very popular among developers.
Type safety reduces the likelihood of errors in the code and interfaces for extending map.apps (e.g. map-actions or stores) can be made explicit. A developer can thus see if an interface is being used correctly directly while programming. Programming against these interfaces becomes more productive and less error-prone thanks to autocompletion. Private implementation details can also be better hidden or marked as such. This makes development against map.apps easier and clearer. It also helps avoid bugs that might occur when updating to newer versions because programming was done against internal interfaces.
The existing map.apps typings can be used directly in the map.apps 4 Developers project. This blog article explains the usage and its advantages in detail: Using TypeScript in map.apps
Other new features for developers are described in the release notes.
Further new functions and improvements
-
The ArcGIS API for JavaScript used by map.apps as technical basis is updated to version 4.20 with this release. This results in numerous improvements and bug fixes in the base technology.
-
The edit functionality now offers simple snapping on existing vertices and edges.
-
A timeExtent can now be configured. A 2D or 3D view then shows only the objects from a layer that fall within the corresponding time period.
-
Pre-optimization of an app can now be triggered via the map.apps Maven plugin when uploading an app.
-
The zoomto map action can now be given an expand factor so that a larger map area is displayed around the object when zoomed in on.
-
It is now possible to configure whether file attachments are displayed as a list or preview in the default popup.
-
The loading indicator in the map is now no longer displayed during client-side actions such as sketching or editing. As a result, it is displayed less often overall.
map.apps line 3
This is the last release in which the bundles of line 3 are included. As of map.apps 4.13, line 3 bundles will no longer be included in the rollout folder. For more details on the map.apps line 3 lifecycle, see the lifecycle overview.
Final notes
In addition to the above, this release contains other improvements and bug fixes. As always, a complete list of all changes can be found in the release notes.