[Oskari-user] Oskari 2.5 Released!
Jeff McKenna
jmckenna at gatewaygeomatics.com
Thu Oct 14 05:37:17 PDT 2021
Hi Sami, could you tweet this news now, with the #foss4g hashtag?
(would be great news to share on the day of FOSS4G-Finland today)
thanks,
-jeff
On 2021-10-13 12:43 p.m., Mäkinen Sami (MML) wrote:
> Good news everyone,
>
> We released Oskari 2.5.0 today and it is now available on GitHub
> (https://github.com/oskariorg <https://github.com/oskariorg>) and
> Oskari.org Maven repository. The sample application package has been
> updated on the download link in Oskari.org (https://oskari.org/download
> <https://oskari.org/download>) and http://download.osgeo.org/oskari/
> <http://download.osgeo.org/oskari/>. As always you can take a peek at
> the latest release at https://demo.oskari.org/ <https://demo.oskari.org/>.
>
> We have a bunch of changes and fixes in the release including a lot of
> improvements related to performance and vector feature styling. While
> not mentioned on the release notes you can also find a completely
> rewritten version of the content-editor bundle in
> oskari-frontend-contrib repository. The bundle implementation was not
> compatible with the changes made in 2.4 but is now back and stronger
> than before.
>
>
> Release Notes
>
>
> oskari-frontend
>
> For a full list of changes see:
> https://github.com/oskariorg/oskari-frontend/milestone/33?closed=1
> <https://github.com/oskariorg/oskari-frontend/milestone/33?closed=1>
>
>
> Improvements to visual vector style editor
>
> * Added "empty fill" option for area/polygon type geometries.
> * Added "butt" option for line-ending options.
> * Added pre-defined color selection for easier color picking.
> * Area and stroke/line type geometries now have their own controls for
> line joins. Previously the settings was shared when editing with the
> React-based visual style editor.
> * The new editor is now available for end-users on myplaces layer
> styling (in addition to layer admin functionality).
>
>
> Style handling for vector layers
>
> Various changes to style handling implementation like:
>
> * Hover styling implementation changed to improve performance and
> clarify code.
> * Vector features styles definitions are now available through
> |AbstractLayer.getStyles()/getCurrentStyle()| with
> |style.getFeatureStyle()| instead of separate
> |AbstractLayer.getCurrentStyleDef()|.
> * Moved end-user UI implementation for vector layer styling to new
> bundle |userstyle| instead of being built-in to "wfs-support for
> map" (|mapwfs2| bundle). This enables smaller filesize for embedded
> maps since the UI is not available to end-users on embedded maps. To
> keep current functionality you should link |userstyle| bundle import
> to your geoportal apps:
> https://github.com/oskariorg/sample-application/pull/17/files
> <https://github.com/oskariorg/sample-application/pull/17/files>
>
>
> Selected vector features
>
> New service was added for tracking feature selection. Usage:
>
> |const service =
> Oskari.getSandbox().getService('Oskari.mapframework.service.VectorFeatureSelectionService');|
>
> |// add a feature to current selection|
>
> |service.addSelectedFeature(layerId, featureId);|
>
> |// set feature selection for layer replacing current selection|
>
> |service.setSelectedFeatureIds(layerId, [featureId1, ...featureIdN]);|
>
> |// remove a feature from current selection|
>
> |service.removeSelection(layerId, featureId);|
>
> |// remove all selections from layer|
>
> |service.removeSelection(layerId);|
>
> |// remove all selections from all layers|
>
> |service.removeSelection();|
>
> |// toggle feature selection in current selection (if already selected
> -> unselect, otherwise mark as selected)|
>
> |service.toggleFeatureSelection(layerId, featureId);|
>
> ||
>
> |// get a list of ids for features that are selected|
>
> |const selectedFeatureIds = service.getSelectedFeatureIdsByLayer (layerId);|
>
> Changes to selection trigger |WFSFeaturesSelectedEvent| like it did
> before and bundles can react to it like before.
>
>
> Performance improvements
>
> * Layer coverage data is no longer part of the layer listing. It is
> fetched separately when a layer is added to the map. This reduces
> the file size of layer listing by ~75% and improves performance.
> * WMTS-layers tile matrix metadata is now provided by the server in
> JSON-based format and the full capabilities XML is no longer
> required to be loaded to the frontend. This reduces the amount of
> data clients need to load and optimizes startup-time and performance.
>
>
> Layer admin improvements
>
> * When adding layers from service the layers are now sorted
> alphabetically in addition to being grouped by "type". Where type is
> "existing" (already registered as layer), "problematic" (might have
> problems with layer/projection not supported), "available" (these
> are the ones you probably are most interested in adding).
> * Fixed an issue with selecting default style when style name was very
> long (input was pushed out of view of the user).
>
>
> Other improvements
>
> * |MapModulePlugin.MapLayerUpdateRequest| can now be used to force
> vector layers to refetch the features from service (after for
> example editing a feature). Previously it was mostly usable for
> WMS-layers.
> * Map legends functionality for end-users on geoportal was rewritten
> with React (embedded maps version still uses jQuery)
> * Fixed GetFeatureInfo displaying for XSLT formatted responses.
> * Fixed a visual issue on Firefox with layerlisting.
> * |layerlist| bundle now closes its flyout on |UIChangeEvent| (when
> publisher etc functionality is opened by the user).
> * Modal-component in oskariui now has styling to keep the window on
> browser viewport and scroll the modal-window content instead of
> having a page scrollbar for large contents.
> * WMTS-layers can now be forced to use the wrapX boolean toggle for
> OpenLayers by having |{ wrapX: true }| in the layer options.
> * Changed when data is being sanitized for layers. Layer name is no
> longer sanitized in AbstractLayer.setName(). The UI components
> showing the name now sanitize the value instead. This might affect
> application specific extensions to functionalities that rely on the
> name being sanitized. For jQuery-based UIs this means that you need
> to call |Oskari.util.sanitize(layer.getName())| or use
> |jQuery.text(name)| instead of |jQuery.append(name)|. For
> React-based UI this means that you no longer need to use
> |dangerouslySetInnerHTML| to show the layer name properly but can
> use it as is.
>
>
> Library updates
>
> * @ant-design/icons 4.2.1 -> 4.6.3
> * @storybook/react 5.3.18 -> 6.3.7
> * antd 4.8.5 -> 4.16.13
> * cesium 1.77 -> 1.84
> * dompurify 2.0.10 -> 2.3.1
> * intl-messageformat 2.1.0 -> 9.9.1 (now loaded with npm instead of
> having a copy under libraries)
> * Jest 26.0.1 -> 27.0.6
> * jQuery 3.5.1 -> 3.6.0
> * lodash 4.17.19 -> 4.17.21
> * node-sass 4.14.1 -> 6.0.1
> * moment 2.24.0 -> 2.29.1
> * OpenLayers 6.4.3 -> 6.6.1
> * ol-mapbox-style 6.3.1 -> 6.4.1
> * olcs 2.12 -> 2.13
> * React 16.13 -> 16.14
> * Styled-components 5.0.1 -> 5.3.1
>
> Also tested a migration to Webpack 5, but there's some compatibility
> issues with Cesium and Webpack 5 that prevented the update for now. Also
> the testing library enzyme doesn't support React 17 yet so couldn't
> update React further for now.
>
>
> oskari-server
>
> For a full list of changes see:
> https://github.com/oskariorg/oskari-server/milestone/34?closed=1
> <https://github.com/oskariorg/oskari-server/milestone/34?closed=1>
>
> * Layerlisting response from server has been streamlined and some of
> the layer metadata has been removed like coverage geometry. The
> frontend handles this internally by fetching the data when needed
> instead of having it all in the listing response. This reduces the
> size of the listing response dramatically and improves performance.
> * New action route DescribeLayer that is currently just used for
> returning coverage geometry for layer when available. There are
> plans for doing more with this endpoint. Possibly combining it
> responses from GetWFSLayerFields and GetLayerCapabilities to a
> single generic endpoint.
> * WTMS capabilities are parsed and now stored in JSON format for
> layers. This enables giving frontend only the tile matrix
> information it needs for showing the layer for the current
> projection that is used on the browser. This reduces network traffic
> and can vastly improve performance for WMTS-services with large
> capabilities documents. Note! This requires all WMTS-layer
> capabilities to be refreshed from the server and this is done
> automatically with an upgrade script as a Flyway-migration.
> * The common search functionality no longer overrides a zoom scale
> hint with generic config IF it has been set by a channel.
> * Default style options for printing vector features have been synced
> with defaults used on the frontend code.
> * GetWFSLayerFields route now recognizes WFS attributes of types
> MultiLineStringPropertyType and MultiSurfacePropertyType as
> geometries instead of "unknown" type.
> * New action route VectorFeatureWriter has been added as a replacement
> for combining existing routes: InsertFeature, SaveFeature and
> DeleteFeature. The previous ones have been deprecated for removal at
> a later version. The new endpoint takes GeoJSON as request payload
> for the feature to be inserted/updated. This route is used by the
> content-editor bundle under oskari-frontend-contrib repository.
> * Libraries updated:
> o Jetty 9.4.39.v20210325 -> 9.4.42.v20210604
> o jsoup 1.13.1 -> 1.14.2
> o pdfbox 2.0.16 -> 2.0.24
>
> Happy updating,
> Sami
>
>
> _______________________________________________
> Oskari-user mailing list
> Oskari-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/oskari-user
>
--
Jeff McKenna
GatewayGeo: Developers of MS4W, MapServer Consulting and Training
co-founder of FOSS4G
http://gatewaygeo.com/
More information about the Oskari-user
mailing list