Skip to content

Latest commit

 

History

History
858 lines (634 loc) · 64.7 KB

CHANGELOG.md

File metadata and controls

858 lines (634 loc) · 64.7 KB

Breaking Changes

Bug Fixes

  • @dlr-eoc/core-ui:

    • Update styles for @clr 17
    • Schematics add path in tsconfig no baseUrl
    • Replace not found import IconShapeTuple from @cds/core
    • Schematics transpile after build because custom buiulder was removed in v14.0.0.
  • @dlr-eoc/layer-control:

    • Fix direction of @cds icon

Documentation

  • Update TUTORIALS.md
  • Minor changes in some libraries's README.md

14.0.0 (2024-08-05) (map-cesium, angular update, @clr and @cds update)

Breaking Changes

  • Update angular from ^16.2.3 to ^17.3.11 Issue #232
  • Upadte @clr/angular from ^15.12.0 to ^17.2.1 Issue #232
  • Upadte @clr/ui from ^15.12.0 to ^17.2.1 Issue #232 Clients now have to set the clarity theme as described in their documentation (Step 3: Set the Theme)
  • Remove @clr/icons and replace it with the icons from @cds/core. Now each icon that is used must be imported into the component where it is in the template. See clarity documentation icons. Use import '@cds/core/icon/register.js'; in a main file of the application so that it is used only once.
  • Set node and npm compatibility for angular 17 (node: 20.15.1 and npm: 10.7.0)

Features

  • @dlr-eoc/map-cesium:
  • Added popup interface as an alternative to the infoBox. (In the long run the popup will replace the infoBox)
  • Adjustments for 3D scene lighting and support for imageBasedLighting luminanceAtZenith.
  • Added control option for the default globe color.
  • Added support for icon markers for point geojson features.

13.0.0 (2024-07-08) (services-map-state, map-ol, map-cesium and map-maplibre)

Breaking Changes

  • Update ol from ^7.3.0 to ^v9.2.4 Issue #225 @dlr-eoc/map-ol, @dlr-eoc/map-tools, @dlr-eoc/services-ogc, @dlr-eoc/utils-maps, @dlr-eoc/utils-ogc and demo-maps
  • @dlr-eoc/map-maplibre:
  • Move functions addUkisLayerMetadata and getUkisLayerMetadata from maplibre-layers.helpers to maplibre.helpers and remove hasUkisLayerMetadata.
  • Update maplibre-gl from v^3.3.0 to v^4.1.3 see maplibre-gl Breaking Changes.
  • @dlr-eoc/map-ol:
  • Move type IPopupEvent to @dlr-eoc/services-layers
  • @dlr-eoc/map-cesium:
  • Update cesium/engine from v^6.1.0 to v^10.0.0 and cesium/widgets from v^4.3.0 to v^7.0.0 see cesiumJS Breaking Changes.
  • Removed some external dependencies for cesium, as they are no longer required.

Features

  • @dlr-eoc/services-map-state:

    • Added viewAngle and rotation to mapState Issue #216.
    • Added optional notifier to setTime like in the setters setExtent, setViewAngle or setRotation.
    • Test for incorrect values in setters
  • @dlr-eoc/map-ol:

    • Adding support for mapState rotation #216
  • @dlr-eoc/map-cesium:

    • Adding support for mapState viewAngle and rotation
    • Added flyTo options for setViewAngle and setRotation
    • Added flyTo options for setNadirViewAngle - This can be useful if you switch the map to a 2D view and want to reset the ViewAngle before.
  • @dlr-eoc/map-maplibre:

  • Update "maplibre-gl-js" from 4.1.3 to 4.5.0 also see maplibre-gl.
  • Adding support for mapState viewAngle and rotation
  • Added new UKIS_METADATA.ignoreOpacity and UKIS_METADATA.ignoreVisibility which can be used in CustomLayer to prevent changing the opacity or visibility for some layers.
  • Added new function updateStyleLayerProperties(map: glMap, mllayer: TypedStyleLayer, layer: ukisLayer) to update paint, layout, maxzoom, minzoom, filter, source and source-layer from ukisLayers.
  • Added new function setUkisLayerMetadata(ml: TypedStyleLayer, meta: Partial<IukisMetadata>) and interface IukisMetadata.
  • shared-assets:
    • Add tilejson for open-map-style

Bug Fixes

  • @dlr-eoc/map-maplibre:
  • Fix wrong coordinate order from getExtent #216
  • Rename set/getBearing to set/getRotation because we want to have the same behavior as in openlayers and set/getBearing is expected differently in maplibre.
  • Fix create StyleLayer id in createCustomLayer and createStackedLayer.
  • Fix create default StyleLayers for GeoJson Data (test for MultiPolygon and MultiLineString).
  • Do not modify referenced objects when creating StyleLayers from CustomLayer or VectorLayer.options.style see also (cddf2fc6a83444851914ed6619bc8d5ada8ce485)
  • Fix add layer with the correct beforeId on update PaintProperty workaround for maplibre issue 3001.
  • Fix workaround that tried to get beforeId after layer was removed. Now use workaround only if map.getTerrain() is not not null.
  • Fix set layout.visibility in style of VectorLayer based on VectorLayer.visible.
  • Fix set VectorLayer.attribution from VectorLayer.options.style for TMS.
  • Fix set subdomains from VectorLayer in VectorLayer.options.style for TMS.
  • Fix return type of getUkisLayerMetadata.
  • @dlr-eoc/map-cesium:
    • Fix get entity.name for infoBox in none GeoJson layers
    • Get camera view and set Mapstate before destroy to preserve the last state for switching maps.

12.0.0 (2023-12-12) (map-ol, map-cesium and map-maplibre)

Breaking Changes

  • Update angular from ^14.2.11 to ^16.2.1 automatic migrations are made by ng update. See update angular from 14.0-15.0 and 14.0-15.0.
  • Update @clr/angular and @clr/ui from ^13.17.0 to ^15.12.0. See releases Breaking Changes. Fixes in styles have been made so update the styles folder from projects/core-ui/schematics/ng-add/files/src/styles and also add class="content-area map-view" for content areas that include a map.
  • Update rxjs from ^6.6.7 to ~7.8.0. Fixes of deprecations forkJoin(obs,obs) to forkJoin([obs,obs]) and retryWhen() to retry({count: number deley: ()=> }) and combineLatest() to combineLatestWith() and of<T>() to of().
  • @dlr-eoc/map-cesium:

    • Remove exported type Tgroupfiltertype. Use Tgroupfiltertype = TFiltertypesUncap | TFiltertypes and import them from @dlr-eoc/services-layers.
  • @dlr-eoc/map-ol:

    • Remove exported type Tgroupfiltertype. Use Tgroupfiltertype = TFiltertypesUncap | TFiltertypes and import them from @dlr-eoc/services-layers.
    • Remove color and event from properties passed to raster layer popup. Now IPopupParams is passed so you can use IPopupParams.color and IPopupParams.mapEvent. For the remaining properties, use IPopupParams.properties, which contains feature properties and async data.
    • The parameters of the MapOlService.addPopup function are changed as follows addPopup(popupParams: IPopupParams, popupObj?: popup, html?: string, event?: 'click' | 'move', removePopups?: boolean).
    • The interfaces IPopupArgs and IDynamicPopupArgs have been removed. Use IPopupParams now
    • The dynamic popup now gets IPopupParams instead of IDynamicPopupArgs - popup.dynamicPopup.getAttributes(params:IPopupParams)
    • Not used notifier is removed from MapOlService.setZoom(zoom: number)
  • @dlr-eoc/map-tools:

    • Input 'mapSvc' of ProjectionSwitchComponent become mandatory and not optional
    • Additional mandatory input in ProjectionSwitchComponent "mapStateSvc" and optional "fitViewToNewExtent"

Features

  • @dlr-eoc/utilities:

    • New UKIS library export utilities for other libraries.
  • @dlr-eoc/map-maplibre:

    • A example has been added to the demo-maps to show how to work with the new maplibre library.
    • New UKIS library for working with maplibre was added.
  • @dlr-eoc/map-cesium:

    • New UKIS library for working with CesiumJS was added.
    • A new example has been added to the demo-maps to show how to work with the new cesium library.
    • The GeoJsonDatasource in map-cesium was updated and styling of vector layers is now possible.
  • @dlr-eoc/services-layers:

    • The layer.popup gets more types and uses IPopupParams which will be applied to all popups.
    • Export new type TFiltertypesUncap to use with TFiltertypes. So Tgroupfiltertype = TFiltertypesUncap | TFiltertypes is usable in maps.
  • @dlr-eoc/map-ol:

    • Popup events can be observed by MapOlService.popupEvents: Subject<IPopupEvent>. For this add asObservable: true to a popup object, you will then be able to subscribe to the event instead of having a popup container being added to the map.
    • A new Interface IPopupEvent is exposed.
    • Add groupID to olLayers (layer.groupID) to check if a layer was in an olLayerGroup.
  • @dlr-eoc/map-tools:

    • Optional parameter "fitViewToNewExtent" in the ProjectionSwitchComponent to adjust map view extent

11.1.0 (2023-05-30) (map-ol and layer-control)

Features

  • @dlr-eoc/layer-control:
    • Add input to disable and enable sorting for layers or layers of groups. E.g. <ukis-layer-control ... [layersSort]="true" [groupLayersSort]="false"> Issue #179.

Bug Fixes

  • @dlr-eoc/map-ol:
    • Restore ol map interactions and MapState after component toggle Issue #178.

11.0.0 (2023-05-05) (Openlayers Update and map-ol)

Breaking Changes

  • Update Openlayers to ^v7.1.0 and ol-mapbox-style to ^9.2.1. Issue #157.

  • @dlr-eoc/map-ol:

    • Styles from OpenLayers are no longer included in this component e3e98c1. You have to add them to your application manually see @dlr-eoc/map-ol/README.md.
    • The function vectorOnEvent now needs two parameters more layer: olLayer and feature: olFeature | olRenderFeature.
    • Refactor function layersOnMapEvent. Due to the removal of map.forEachLayerAtPixel in OpenLayers 7, the function works completely differently now. Iterate over all layers and test for feature or getData instead of just testing for color at a pixel. This also fixes Issue #120.

Features

  • @dlr-eoc/map-ol:

    • The function zoomInOut now accepts an optional object with callback, duration, easing and zoomStep.
    • Add types for FitOptions on setExtent.
    • Add function hideAllPopups which adds a css class to the popup element Issue #120.
    • The function layerOnEvent (for popups) now accepts an optional feature as the last parameter.
    • The function getLayerGroups is now public to retrieve the LayerGroups and Collections from the map.
    • Use hideAllPopups on layer.visible change and add css styles Issue #120.
    • Add groupID from CustomLayer or StackedLayer to the layers from there ol/layer/Group. So you can get the LayerGroup later e.g. in map.getAllLayers().
  • @dlr-eoc/utils-maps:

    • Add function getCollectionItem from ol/Collection. This returns the item and the index of the item if found otherwise null.
    • Add function layerOrGroupSetZIndex. Can set the zIndex for ol/layer/Group and all layers in the group.
    • Add function layerOrGroupSetOpacity. Can set the opacity for ol/layer/Group and all layers in the group.
    • Add function layerOrGroupSetVisible. Can set the visibility for ol/layer/Group and all layers in the group.
    • Add function collectionItemSetIndex. Moves an item in the ol/Collection to the index.

Bug Fixes

  • @dlr-eoc/map-ol:
    • Use applyBackground() from 'ol-mapbox-style' when creating vector tile layers.
    • Remove LayerGroups from map before add baselayerGroup, layersGroup and overlayGroup.
    • Set bbox for olLayerGroup layers in create_custom_layer.
    • Show popups on transparent features Issue #120.
    • Adjust to style changes of ol-control from OpenLayers 7.

10.1.0 (2022-11-07) (Features and Bug Fixes)

Features

  • @dlr-eoc/core-ui:

    • Update styles for layer-control - spacing and borders between layers and groups.
  • @dlr-eoc/layer-control:

    • Extend UI with some classes and style updates of layer-control.
    • Expand layers and groups on start based on the configuration in Layer.expanded and LayerGroup.expanded Issue #139](#139).
  • @dlr-eoc/services-layers:

    • Extend Types of Layer and LayerGroup to allow configuration of an expanded user interface to show or hide some details at startup Issue #139.

Bug Fixes

  • @dlr-eoc/services-map-state:

    • Reuse time from last state when `setExtent Issue #148.
  • @dlr-eoc/map-ol:

    • Use string for ol/OverlayPositioning change on OpenLayers v6.15.0.
    • Reuse time from last state when `setExtent Issue #148.
    • Remove id map and crosshair from the map div. If the map is used multiple times the ids are no longer unique and for styling classes are already there.
    • Fix setExtent from MapStateService after map init. Due to responsive map size it takes some time till the map has reached its full size and view.fit can calculate the correct extent.

10.0.0 (2022-10-13) (Update to angular 14, Features and Bug Fixes)

Breaking Changes

  • Package dependencies are set to allow Minor releases (which normally shouldn't break anything but can sometimes be) to simplify updates and usage when creating new apps.
  • Remove class floating from clr-main-container, this is now set on content-container e.g. in a route component @HostBinding('class') class = 'content-container floating';
  • Update angular from ^13.3.5 to ^14.0.2 automatic migrations are made by ng update and forms use types now.

Features

  • @dlr-eoc/layer-control:
    • Allow legend on LayerGroup like on the layer - if one legend fits for all layers.
    • Allow Dynamic components for Group description to display specific formatted descriptions.
    • Allow Dynamic components for Layer description to display specific formatted descriptions (keep in mind that this breaks @dlr-eoc/services-ogc generateResourceFromLayer for this layer!!! - If you pass inputs.description to IDynamicComponent it will try to take this).

Bug Fixes

  • @dlr-eoc/core-ui:

    • Replace deprecated ComponentFactory in DynamicComponent.
    • Fix style: remove right border on tabsbody for layers inside a group.
  • @dlr-eoc/layer-control:

    • Do not use <label for> with <input id> to prevent binding to the same element for duplicate IDs.
    • Do not change the group object binding in layerentry-group when creating a dynamic component from the group.
    • Do not change the layer object binding in layerentry when creating a dynamic component from the layer.
    • For Baselayers also show button to switch to the settings tab if layer has action Issue #135.
    • Show layer expand icon for 'Baselayers' only when the layer has some things to expand (legendImg, description, action, actions or styles as array to show a style switch).
  • @dlr-eoc/services-map-state:

    • Add missing time value in function setMapState on state initialization Issue #133.
  • @dlr-eoc/map-ol:

    • Update TmsLayer for vector tile style update.
    • Update Params and Source for baselayers.
    • Replace deprecated ComponentFactory in createDynamicPopupComponent angular 45263.
    • Set urls for vector tile layers after apply style to override them when tilejson is not provided. This is helpful to use tms services where no tilejson is available. Then set the url of the sourceId in your style file to "url": "" and add "tiles": []. This skips the request to tilejson.

9.0.0 (2022-05-20) (Update dependencies and documentation)

Breaking Changes

  • @dlr-eoc:
  • Update angular from ^12.2.5 to ^13.3.5
  • Update ol-mapbox-style from ^7.0.0 to ^8.0.7

Bug Fixes

  • @dlr-eoc/utils-maps:
    • Type Errors due to @types/offscreencanvas. All modules which use @dlr-eoc/utils-maps (which makse use of OffscreenCanvas) have to include offscreencanvas in there tsconfig types array. We cannot set this once at the main tsconfig because the types array in tsconfig.spec already overrides the main config.

8.1.0 (2022-04-04) (Type for CustomLayer and bug fixes)

Features

  • @dlr-eoc/services-layers:

    • Add optional type for CustomLayer Issue #112 for better type checking.
  • @dlr-eoc/core-ui:

    • Add inputs version and short title to ukis-header.

Bug Fixes

  • @dlr-eoc/map-ol:

  • @dlr-eoc/core-ui:

    • Fix Styles for clr-vertical-nav.right trigger margin.
    • Fix Styles for clr-vertical-nav.right icon direction.

8.0.1 (2022-01-05) (map-ol bug and PR template)

Bug Fixes

  • @dlr-eoc/map-ol:
    • Dispose olRasterSource for CustomLayer if it is removed, updated or the source gets changed issue 100.

8.0.0 (2021-12-09) (services-ogc and angular update)

Breaking Changes

  • @dlr-eoc/owc-control: This package is removed. Use owcSvc.generateOwsContextFrom(id, currentLayers, currentExtent) and downloadJson from @dlr-eoc/utils-browser;

  • @dlr-eoc/map-ol:

    • Removed MapOlService.layers_on_click(evt) and MapOlService.layers_on_pointermove(evt) -> replace them by MapOlService.layersOnMapEvent(evt).
    • Renamed MapOlService.layers_on_click_move(evt, layerFilter) -> MapOlService.layersOnMapEvent(evt) layer filtering is now done later.
    • Renamed MapOlService.layer_on_click(evt, layer, color?) -> MapOlService.layerOnEvent(evt, layer, color?).
    • Renamed MapOlService.raster_on_click(evt, layer, color?) -> MapOlService.rasterOnEvent(evt, layer, color?).
    • Renamed MapOlService.vector_on_click(evt) -> MapOlService.vectorOnEvent(evt).
  • @dlr-eoc/services-layers:

    • Deprecated: isVectorLayer()/isVectorLayertype() and isRasterLayer()/isRasterLayertype() can both be raster and vector for CustomLayertype and TmsLayertype;
    • Removed zIndex from types ILayerOptions which was forgotten to do at breaking version 6.0.0.
    • Renamed (typo fix) layer's popup property pupupFunktion to popupFunction
    • Renamed (typo fix) layer's popup property asyncPupup to asyncPopup
  • @dlr-eoc/services-ogc:

  • Replace function getLayerGroup() with getResourceFolder() - and a private function to get folders which should be a LayerGroup,
  • Remove old custom extension IOwsOffering.iconUrl and getIconUrl().
  • Remove not used getOfferingContents().
  • Remove old custom extension IOwsOffering.title - use IOwsResource as layers.
  • Change createTmsLayerFromOffering() to private createVectorTileLayerFromOffering() and private createTmsRasterLayerFromOffering().
  • Remove previewUrl from IEocOwsResourceProperties because this is is already in IOwsResourceProperties.links.previews.
  • Remove IEocWmsOffering and IEocOwsWmtsOffering for them you can use the generall IEocOwsOffering and check for the code WMS_Offering or WMTS_Offering.
  • IEocOwsResourceDimensions is removed.
  • IEocOwsResourceDimension is changed.
  • IEocOwsResourceProperties.dimensions?: IEocOwsResourceDimension[] is changed. Before it was IEocOwsResourceProperties.dimensions?: IEocOwsResourceDimensions
  • IEocOwsOffering.legendUrl? is removed.
  • OwcJsonService.getLayers() returns now Observable<(Layer | LayerGroup)[]>.
  • IOwsContext.properties.creator?: IOwsCreator corrected to schema IOwsContext.properties.generator?: IOwsGenerator;.
  • IOwsContext.properties.links: IOwsLinks[] corrected to schema IOwsContext.properties.links.profiles
  • IOwsAuthor, IOwsCategory and IOwsOperation corrected to schema.
  • Removed the function convertOwcTimeToIsoTimeAndPeriodicity. Has been replaced by getTimeDimensions

Features

  • shared-assets:
    • Add new Folder to share assets between all @dlr-eoc-projects.
  • @dlr-eoc/layer-control:
    • Open legend image as a link in a new tab for a larger view
  • @dlr-eoc/services-layers:
    • New layer type `StackedLayer``to support merged/stacked Layers as a single Layer.
    • Export const TmsLayertype = 'tms' and integrate this in TLayertype.
    • Extend Type for Popup Layer['popup']?.filterLayer to filter out layers in map.forEachLayerAtPixel and map.forEachFeatureAtPixel.
    • CustomLayer can now overwrite crossOrigin property if used with a OpenLayers Layer.
    • Extend Layer Type for events issue 85.
    • Extend Layer Popup Type for multiple Popups issue 85.
  • @dlr-eoc/map-ol:
    • Support merged/stacked Layers as a single Layer.
    • Support Tiled- and Image-WMS Layers - Single Image-WMS Layers are created when Layer.params.TILED == false,
    • Support new VectorLayer.type = tms for VetrorTile Layers with VectorLayer.options.style as the OpenMapStyle obj and VectorLayer.options.styleSource for the style SourceKey.
    • Support new VectorLayer.type = kml.
    • Add events from Layer to olLayer and olSource issue 85.
    • Allow Popups for several events issue 85.
  • @dlr-eoc/services-ogc:
    • Support WMS Filters CQL_FILTER and FILTER (For WFS you can already pass the full url).
    • Support merged/stacked Layers for resources with folder Baselayers/<layerName>. For legendImg the image furthest down is used.
    • Better support to convert UKIS layers to OWC.
    • Support new Layer Types KML, Xyz and Tms (Raster)
    • New basic Implementation of getElevationDimension()
    • New Functions to get Properties from IOwsContext and IEocOWsResource - getGroupResources(), getSingleResources(), getResourceMinMaxZoom()
    • Export separate interfaces for IEocOwsTimeDimension and IEocOwsElevationDimension.
    • Functions to check isIOwsRasterOperation() and isIOwsVectorOperation().
    • Export Operation Codes for Offerings (WMS_Code, WMTS_Code, WFS_Code, TMS_Code and XYZ_Code):
    • Overhaul of dimensions
    • Allows sub-groups
    • Allows Tms-Layers
    • Extend types for IEocOwsContext
    • Parses ISO8601 strings using luxon (new dependency)
    • New function OwcJsonService.createLayerFromDefaultOffering()
    • OwcJsonService.generateOwcContextFrom() now also exports WFS-layers.

Bug Fixes

  • @dlr-eoc/core-ui:
    • Add missing Output to GlobalProgressComponent.
  • @dlr-eoc/services-ogc:
    • Do not use bbox of IOwsContext for Baselayers.
    • Preserve order of Layers and Groups from IOwsContext - getLayers().
    • Removed not used customAttributes.
    • OwcJsonService.createVectorLayerFromOffering did not work properly with WFS'es: only a substring of the GetFeature-operation.href had been used. Now fixed.
    • OwcJsonService.createVectorLayerFromOffering did not work properly with GeoJson-layers: GeoJson data had been incorrectly stringified (and parsed again).
    • OwcJsonService.getTimeDimensions: period only added to dimension if actually given in IEocOwsResourceDimension.
    • OwcJsonService.getWmsOptions: now respects STYLES property either via offering.styles or via GetMap operation. All WMS-paras only set when actually present.
  • @dlr-eoc/map-ol:
    • Fix GeoJSON layer from url - it used olTileJSON bevor.
    • Set crossOrigin on olSource (olImageSource | olTileImageSource | olTileSource) for all layers with Layer.popup as default to anonymous
    • Display cursor pointer for Popups only if the top layer has pixels.
    • Popups with event move are rendered under existing Popups with event click issue 94.
    • Prevent popup with event move to get added multiple times in some cases issue 94.
    • Remove popup if layer above has not the same popup event issue 94.
    • Popup Popup.options are not applied when using PopupObjArray issue 94.
    • Fixed an issue in MapOlService.zoomInOut()
    • Fixed an issue with z-index of UkisCustomLayers containing an OlLayerGroup. Before the fix the layergroup's layers would always appear at the very bottom of the map, even below base-layers.
    • Fixed an issue with dynamic popups, where only the first popup on a raster-layer would be created, whereas all subsequent clicks would not lead to a new popup appearing.
  • @dlr-eoc/layer-control:
    • Set Cursor to default for body of layerentry.
    • Dynamic component layer Input lost its Instance (Type) issue 80.
  • @dlr-eoc/layer-control:
    • WPS 2.0.0: The encoding of literal inputs has been fixed. Previously, inputs of type "text/plain" were not anoted with the correct mime-type
    • WPS 2.0.0: the executeUrl no longer contains url-parameters (conform with the JavaPS reference implementation)

7.3.1 (2021-04-20) (fix package)

  • Fix: create @dlr-eoc/ npm packages for 7.3.0 did not work.

7.3.0 (2021-04-20) (Layer, Utils Features and bug fixes maps)

Bug Fixes

  • @dlr-eoc/layer-control:
    • adjust misleading title on hover state issue 53.
  • @dlr-eoc/map-ol:
    • Fix updateGeojsonLayerParamsWith() overwrites cluster source if the layer uses VectorLayer.cluster.
    • Do not automatically zoom in on Clusters if Popup event is move.
    • reuse popup on move 12f77a80 #47
    • getLayerByKey() not working on layergroups (recursive).
    • removeLayerByKey() not working on layergroups (recursive).
    • addLayer(), addLayers() and setLayers() don't set the filtertype on layergroup children (recursive).
    • updateLayerParamsWith now also works with GeojsonLayers: issue 51
  • @dlr-eoc/map-three:
    • regarding three-version 125: Geometry is now deprecated, replaced with BufferGeometry

Features

  • @dlr-eoc/layer-control::
    • Add LayerGroup?.action Component to UI tabsbody and rearrange icons in body.tools issue 69.
    • Hide Layer or LayerGroup with the attribute cssClass .includes('hide') issue 69.
    • Expose new Pipe 'itemsfilter' e.g. usage *ngFor="let item of items | itemsfilter: callbackfn"
  • @dlr-eoc/services-layers::
    • Adjust LayerGroup types so it can use a Angular Component for action issue 69.
  • dlr-eoc/map-ol::
    • now allows for angular-components in popups. In any Ukis-Layer, just add a dynamicPopup field to the popup property. If the popup-component requires any @Input's, provide these with getAttributes(args: IPopupArgs). Addresses Issue #14
    • added basic functionality for WMS-layers to map-ol. As for now, VectorLayers of type wfs do not have any dedicated own methods or properties. All wfs-specific methods, like CQL-filters, are simply red from the layer's url property.
  • @dlr-eoc/utils-maps::
    • created new custom renderer InterpolationRenderer.
      • Takes a vector-source (or a clustered vector-source) and does inverse-distance-interpolation on every pixel between the data points.
      • Allows user to optionally style data-point-labels just like any other openlayers vector-layer.
    • extended webgl-utils to handle textures that are not intended for display, but for data-transmission to and from shaders.
    • updated all renderers to implement ol-6.5's new renderDeclutter method.
  • @dlr-eoc/utils-ogc::
    • Created new package @dlr-eoc/utils-ogc. Provides our OGC-services that have been made independent of angular.
    • Created first service WpsClient for accessing WPS 1.0.0 and 2.0.0 services.
      • Port of original @dlr-eoc/services-ogc/WpsClient made independent of angular- and browser-libraries (runs on node as well)
      • Original implementation remains as a wrapper for backwards-compatibility.
      • Added method describeProcess
      • Added ability to overwrite data-decoding with a user-provided method, for cases where a unconventional mime-type or encoding has been used.
      • Expose WmsService Pull #70.
  • @dlr-eoc/utils-maps:
    • updated all custom renderers to implement the method renderDeclutter that is required as of ol6.5.

Refactoring

  • @dlr-eoc/map-ol:
    • add more tests for get/set layers, import testdata and add few private helper functions.
    • addBboxSelection() returns DragBox and optional inputs.
    • use constants to store filtertype strings e.g. const FILTER_TYPE_KEY = 'filtertype'.
    • add ID to Baselayer Groups
    • private functions: getLayersFromGroup(), setRecursiveKey(), getLayerGroups(), getLayerGroupForLayer() - these should be moved to utils-maps.
  • @dlr-eoc/utils-maps::
    • moved existing custom renderers out of demo-maps into utils-maps, since they have no dependencies on angular and can be used in any openlayers project.
  • @dlr-eoc/utils-ogc::
    • moved business-logic of @dlr-eoc/services-ogc/WpsClient into @dlr-eoc/utils-ogc

7.2.0 (2020-08-31) (Npm packages and a lot of features and bug fixes)

Bug Fixes

  • @dlr-eoc/layer-control:

    • LayerentryGroup emit change for LayerGroup on Layerentry update Issue #29
    • Binding to dynamicComponent Issue #23
  • @dlr-eoc/core-ui: Input/Output binding of dynamic component Issue #23

  • demo-maps: Set routing to HashLocationStrategy and fix update Search Params on MapState change example.

  • @dlr-eoc/map-ol:

    • Allow CustomLayer to use olLayerGroup Issue #37.
    • Set min/max resolution and zoom of Layer in the creation of layers Issue #36.
    • Allow to add a custom olControl on ngOnInit in a 'route-component' Issue #35.
    • Subscribe to map state before map creation, then set this state on AfterViewInit so if mapStateSvc.setMapState or mapStateSvc.setExtent is triggered from a View/Route in ngOnInit the state is set correctly Pull #17.

Changes

  • @dlr-eoc/map-ol: The function mapOnMoveend now set the MapState without rounding the values for zoom and center.
  • update dependencies angular, clarity, ol, proj4
  • @dlr-eoc/services-map-state: Create new instances on set state and remove the not needed extent Subject.
  • angular: Created a tsconfig.json for usage by the IDE and a tsconfig.base.json for new projects to inherit from to conform with angular 10. More information: https://angular.io/guide/migration-solution-style-tsconfig

Features

all projects: all packages now available on npm @dlr-eoc

  • @dlr-eoc/map-ol:

    • Subscribe to pointermove to allow layer Popup on move.
    • Optional filter function for removeAllPopups(filter?) in MapOlService.
    • Return created ol layers from setUkisLayers() in MapOlService.
  • @dlr-eoc/services-layers:

    • Add new attribute min/max Zoom to Layer Issue #36.
    • Add new attribute cssClass to Layer and LayerGroup for custom styling Issue #32.
    • Add new attribute expanded to Layer and LayerGroup Issue #25.
    • Layer IDynamicComponent Interface is extended for Outputs Issue #23.
    • Adjust layer types so it can use a Angular Component for action or legendImg #12 #13.
    • RasterLayers can now specify the parameter crossOrigin in their constructor.
  • @dlr-eoc/layer-control:

    • Add the attribute cssClass whith component HostBinding Issue #32.
    • Use the attribute expanded from Layer or LayerGroup to expand the settings tab Issue #25.
    • Adjust layerentry so it can use a Angular Component in the settings and as legend #12 #13.
  • @dlr-eoc/map-tools: Allow map navigator to set the input step.

  • @dlr-eoc/services-map-state: Add function to get the last action of the MapStateService so if a full state was set or only the extent.

  • @dlr-eoc/core-ui: Export DynamicComponent and ViewRefDirective

  • @dlr-eoc/services-layers: RasterLayers can now specify the parameter crossOrigin in their constructor.

  • @dlr-eoc/utils-browser: Paper class to aid in getting dimensions of paper-sheets (A5, A4, ...) in pixel and cm.

  • @dlr-eoc/utils-browser: download utilities to save us some boilerplate when saving data to a file.

  • @dlr-eoc/utils-maps: ol utilities to copy a map's current image in a canvas (potentially for later downloading).

  • @dlr-eoc/services-ogc:

    • Added CswClient, a client of OGC-conform CSW-Servers.
    • Added OpensearchWrapperService, a client for OpenSearch endpoints (like the one provided by PyCSW).
  • @dlr-eoc/utils-browser:

    • Paper class to aid in getting dimensions of paper-sheets (A5, A4, ...) in pixel and cm.
    • download utilities to save us some boilerplate when saving data to a file.
  • @dlr-eoc/utils-maps:

    • ol utilities to copy a map's current image in a canvas (potentially for later downloading).
    • mapToSingleCanvas can now also optionally keep track of the maps state instead of only storing a snapshot. This way, we can now not only take 'photos' but also 'videos' of the map and use them elsewhere.
    • added utilities for the usage of WebGL. The new Shader API is a very thin, object-oriented wrapper around WebGL that removes a lot of the verbosity usually associated with writing shaders. Contrary to threejs, however, the programmer is still able to directly manipulate every data-structure manually.
    • added utilities for the usage of threejs.
      • Map2SphereConverter helps in converting EPSG:4326 in 3d-coordinates and back
      • WGS84TextureMesh is a custom mesh that projects a canvas onto a 3d-object. It works well in combination with mapToSingleCanvas to project ol-maps onto objects.
  • demo-maps:

    • Custom layers: added illustrations for the usage of WebGL in openlayer's custom LayerRenderer.
      1. minimal_renderer contains an absolute minimal example of what is required to create a custom renderer
      2. dtm_renderer illustrates how WebGL can make use of normal-maps
      3. threejs_renderer illustrates how we can integrate the popular three.js library into an openlayers-map
    • Threejs: added an example of how two maps with the same data can be displayed side by side. Here, an openlayers-map is displayed next to a threejs-scene. Data is being synced between them.
  • @dlr-eoc/map-three: Created a component ukis-map-three analogous to ukis-map-ol. It projects an ol-map onto a Mesh, allowing us to display maps in 3d. The threejs-dependency is bundled here, so that the package does not artificially bloat our build-size when no threejs is required.

Refactoring

  • @dlr-eoc/core-ui: Add class ukis-range-input to adjust style of clr range

7.1.0 (2020-06-03) (Schematics, OL-configuration, performance-monitoring)

Features

  • @dlr-eoc/core-ui: add tests for schematics to CI
  • @dlr-eoc/core-ui: Provide header component from core-ui module
  • @dlr-eoc/map-ol: Allow to pass OpenLayers options to IMapControls
  • demo-maps: Added new component performance, that measures FPS and change detection.
  • demo-maps: Added new route map7 that showcases drop in performance when displaying large vector datasets.
  • demo-maps: Added service LargeLayersService that allows users to load data from a WFS with a specified data-strategy (downloading full data, downloading only current viewport, using simplified geometry, not loading any properties) to compare how each strategy affects loading- and render-performance.

Refactoring

  • @dlr-eoc/core-ui: on ngAdd without routing setup a view component so not all code is placed in the App component - this

  • @dlr-eoc/core-ui: Start convert clr-theme to use custom css properties. If you must support IE11 see Setting up IE11 support.

  • @dlr-eoc/services-layers: Type for CustomLayer (type: 'custom') now optional on creation

  • demo-maps: Add more examples how to use CustomLayers for OpenLayers route-example-custom-layers

  • @dlr-eoc/map-ol:

    • Overview-Map Control now as default uses a Clarity Icon
    • Prepare for OpenLayers Types with ol@dev
    • Start to use custom css properties

Bug Fixes

  • demo-maps: workaround for header overflow #6

  • @dlr-eoc/layer-control: Layerentry expand icon not working in Edge Browser due to [dir].

  • @dlr-eoc/map-ol:

    • Fix Bug Attribution Control is displayed twice Issue #3
    • Fix Bug Issue #1 Layer Popup now working for BaseTile, BaseImage, BaseVector (Cluster, Vector, VectorTile)
  • @dlr-eoc/core-ui: Use the same types for 'ts' as @schematics/angular /**Types of property 'kind' are incompatible */

  • @dlr-eoc/services-ogc:

    • Used to depend on @boundlessgeo/jsonix, because this fork of @highsource/jsonix worked with angular8. However, that fork declared a couple of variables globally, which now no longer works with angular9 and the ES2015 target.
    • Created an own fork under @michaellangbein/jsonix that adresses both the global variables issue and allows building to es2015.
    • All imports of 'jsonix' have been updated to '@michaellangbein/jsonix'
    • As a consequence of using this package, the sourceIsEvt hack in src/index.html is no longer required and has been removed.

7.0.0 (2020-03-11) (Opensourcing)

Breaking Changes

  • change npm package scope from @ukis to @dlr-eoc: this is breaking all imports and path mappings for @ukis!!!

  • update dependencies angular 9 and clarity 3

  • @ukis/map-navigator: is renamed to @ukis/map-tools

  • @ukis/layer-control: directive reverseForOf removed!

  • @ukis/map-ol: duplicated exported type 'TGeoExtent' removed! - now exported from @ukis/services-layers

  • @ukis/services-map-state: duplicated exported type 'TGeoExtent' removed! - now exported from @ukis/services-layers

  • @ukis/services-layers: getLayerOrGroupById() - is returning a Layer | LayerGroup | null - not a array anymore!

  • @ukis/base-layers-raster: esri and google layers are removed, new layers from EOC Geoservice (a complete restructuring)!!!

Changes

  • @ukis/services-ogc:
  • made wps-datatypes available via public api.
  • allowed to set caching mechanism on a client-wide level.
  • @ukis/services-layers:
  • removeLayer(), removeLayerGroup(), removeLayerFromGroup(), removeLayerOrGroupById() - add optional force if layer was set to not removable
  • updateLayerOrGroupInStore() - removed optional (not used) filtertype
  • scripts: create package for libraryScripts and nexus publish
  • projects/demo-maps: added route 'licenses' as an example for how to display third party licenses.

Features

  • @ukis/layer-control: add css class to visible layer or group to style them.
  • @ukis/core-ui: new package which adds install support through schematics :) ng add @ukis/core-ui
  • @ukis/map-ol: MapOlService exports projectionChange (Subject)

Bug Fixes

  • @ukis/user-info: fix tests
  • all projects: add dev- and peerDependencies check through depcheck

6.2.0 (2019-12-05) (Sprint NextGEOSS)

Features

  • @ukis/services-ogc: added support for WPS 2.0
  • @ukis/services-layers: new type TFiltertypes = 'Baselayers' | 'Overlays' | 'Layers' replace old duplicate definitions (98c42aae0e6, a5f211272b6).
  • @ukis/map-ol: new functions in map-ol.service: setLayers(), updateLayerByKey(), setUkisLayers(), setUkisLayer(), updateUkisLayer() (80c7e727f1c).
  • @ukis/map-ol: ne type Tgroupfiltertype = 'baselayers' | 'layers' | 'overlays' | 'Baselayers' | 'Overlays' | 'Layers' to be backwards compatible with TFiltertypes.
  • @ukis/map-ol: add tests for add/get/remove layers and a simple test for update layer (db5bb17d5c2).
  • @ukis/map-ol: add update olSource on CustomLayer id uid changed (7ccc339162b).

Changes

  • @ukis/map-ol: rename functions in map-ol.service: setLayers() to setUkisLayers() and setLayer() to setUkisLayer() - They were only used in map-ol.component! (f35efcfbb2e).
  • @ukis/map-ol: refactor map-ol.component and map-ol.service.
  • demo-maps: adjust routes to test refactoring.

Bug Fixes

  • @ukis/services-layers: fix: update Layer and LayerGroup was not working. (5acc1e36547,6c8dea04538)
  • @ukis/map-ol: fix functions in map-ol.service addLayers(), removeLayerByKey().
  • @ukis/map-ol: fix wms params were passed by obj reference - this was causing a unsuspected update of a layer on the map!
  • @ukis/map-ol: fix wmts params update was triggered although nothing has changed! and use new function updateUkisLayer instead of remove and add the layer.

6.1.0 (2019-12-05) (Add projection switch from SV.)

Features

  • @ukis/map-navigator: SV: added projection switch. See mariss client for example.

Bug Fixes

  • @ukis/map-ol: SV: adjusted setProjection method. It creates a new View instance with keeping previously set settings with exception resolution-related parameters. They are calculated automatically by the OL. After applying new projection all existing layers are triggered to redraw their tiles
  • @ukis/map-ol: SV: created getZoom method in the map-ol.service in order to get zoom value from actual olView instance.
  • @ukis/map-ol: SV: changed the zoom value source for mapSate.
  • @ukis/services-layers: adjust types
  • @ukis/map-ol: Backwards incompatible changes in ol6 on map.forEachLayerAtPixel - fix this for popup layers with className = layer.id
  • @ukis/map-ol: add more types from openlayers
  • @ukis/map-ol: set all olView options on MapOlService.createMap
  • @ukis/map-navigator: set precision also on zoom and remove duplicate projection in dropdown

6.0.0 (2019-11-19) (Sprint Geoservice 2 and Sprint water system 1)

Changes

  • @ukis/services-layers: zIndex is removed (only used internal).

  • @ukis/services-owc-json: is now in @ukis/services-ogc

  • @ukis/services-wps: is now in @ukis/services-ogc

Features

  • @ukis/map-navigator: mouse-position component (cc2e51b70ff, 04d9bac9209)

  • @ukis/services-ogc: services for ogc like OWC, WMTS, WMS and WPS (cf4fd58022a)

  • @ukis/services-layers: Add dimensions and styles property for OWC (be9464860d4)

  • @ukis/services-layers: Wmts Layer use default tilegrid if nothing is provided and set tileSize on WMS (b7ce28e5d1e)

  • @ukis/services-layers: Added new types for Rasterlayers like WMS and WMTS (936c8b683da, ca6136c574e)

  • @ukis/layer-control: now allows switching between styles of a layer (if more than one style is present) (22c49e96015)

  • @ukis/services-layers: RasterLayer now has a property 'styles' to accommodate the above mentioned feature (0e36a07f536)

  • @ukis/map-ol: update to openLayers 6.1.1

  • @ukis/map-ol: getFeaturesExtent add optional get extent geographic

  • @ukis/map-ol: Added a method getTileGrid (b7ce28e5d1e)

  • @ukis/map-ol: Added a method 'setLayer', analogous to 'setLayers' (9c74273b78e)

Bug Fixes

  • @ukis/map-ol: fixed some type-signatures in map-ol-service (76a9f4552c5)

5.3.0 (2019-09-09) (layer-control and services-layers)

Bug Fixes

  • @ukis/services-layers: prevent to add layers or groups with same id (71f5668a182)

  • @ukis/layer-control: LayerGroup is not set to visible if the group is updated with the layerservice (51b35fe2c17)

Features

  • @ukis/services-layers: new functions: getLayerOrGroupById(), getLayerById() (71f5668a182)

  • @ukis/services-layers: LayerGroup now have the optional property visible witch is also set to Layers of the Group; Added Tests and dokumentation.

  • demo-maps: add custom vector layer with bbox to demo-maps, add kml as custom layer (e2544e8295e, ba5daa1028d)

Changes

  • @ukis/services-layers: function params change - isInLayergroups(layergroup: Layer | string, groups?: Array<Layer | LayerGroup>) (71f5668a182)

  • @ukis/services-layers: The filtertype on addLayer(), removeLayer(), updateLayer() and addLayerGroup() are now optional if not provided the type of the Layer or LayerGroup is used.

5.2.1 (2019-08-13) (layer-control)

Bug Fixes

  • @ukis/layer-control: layerentry-group don't use layer.name for the checkbox-id so layer with same name are not toggled simultaneously. (UKISDEV-898) (d360c8a21bf)

5.2.0 (2019-08-06) (services-layers)

Features

  • @ukis/services-layers: add function 'removeBaseLayers' and 'removeLayers' so layers can be filtered for all slots 'Baselayers' | 'Layers' | 'Overlays' (UKISDEV-885) (bdb1017ab3b)

  • @ukis/services-layers: add 'description' to LayerGroup to show it in the ukis-layerentry-group (UKISDEV-886) (3ffb35c9347)

  • @ukis/services-layers, @ukis/layer-control: add 'actions' to Layer and LayerGroup to trigger functions with clarity-icons (UKISDEV-886) (3ffb35c9347)

5.1.2 (2019-07-19) (olmap fix for routing)

Bug Fixes

  • @ukis/map-ol: map viewport was not set on route change due to olMap got no target element when used a string on map.setTarget - now using @ViewChild to get the nativeElement (3dc113ecb6b)

Features

  • demo-maps: added new demo for a layout with two vertical navs

5.1.1 (2019-07-08) (angular update)

Dependency updates

  • "@angular/core": "~7.2.0" to "~8.1.0"
  • "@clr": "^1.0.4" to "^2.0.2"

5.1.0 (2019-06-17) (services-wps/map-ol)

Changes

  • @ukis/services-wps: created new wps-client
  • @ukis/map-ol: added means to do bbox-selection and show a hover-popup.
  • @ukis/services-layers: commented out some log messages (layer/layergroup remove etc.) which are not good for production

Features

  • @ukis/map-ol: added public setHitTolerance(tolerance: number) method, for configuration of click events on touch devices

Bug Fixes

  • @ukis/services-layers: fixed bug where layer-visibility would be turned off after call to removeOverlays
  • @ukis/services-owc-json: adjusted owc-json.service.spec.ts to the latest state of owc-json.service.ts

5.0.0 (2019-05-09) (ability to put layers aboth overlays)

Breaking Changes

  • @ukis/services-layers: filtertype of Layers has changed from 'Baselayers' | 'Overlays' | string to 'Baselayers' | 'Overlays' | 'Layers' and default type is now 'Layers'. This is involving @ukis/map-ol, @ukis/layer-control and @ukis/services-owc-json

Bug Fixes

  • @ukis/services-layers: custem layer default type not set (b6af54571e3)

  • @ukis/map-ol: don't remove custom_layer from layer so it can be created newly (UKISDEV-802) (1f8ea6f7704))

Features

  • @ukis/services-map-state: set Mapstate use object or instance (not only instance) (30e6ce143cd)

4.0.0 (2019-05-03) (refactoring)

Breaking Changes

move all datatypes to there services (UKISDEV-787) (1f9f3c748ec)

  • @ukis/datatypes-layers: exports moved to @ukis/services-layers

  • @ukis/datatypes-map-state: exports moved to @ukis/services-map-state

  • @ukis/datatypes-owc-json: exports moved to @ukis/services-owc-json

  • @ukis/datatypes-user-info: removed! already in @ukis/user-info

  • @ukis/dataset-explorer: move dataset-explorer to project-coastalx! (UKISDEV-789) (bf9d5e3649d)

  • @ukis/observation-explorer: move observation-explorer to project-mariss! (UKISDEV-790) (b3240e4344b)

Bug Fixes

  • @ukis/layer-control: layer in group ordering not working (4ee6fd97384)

  • @ukis/layer-control: layer opacity slider not working on drag in group item (87d4b12179c)

  • @ukis/map-ol: popup not added for Vecorlayers (10dd1791d3b)

  • @ukis/map-ol: create ol map in constructor of service and add layers, view and controls later (83c64c406ce)

Features

3.0.2 (2019-04-26) (costalx-fixes)

Bug Fixes

  • @ukis/dataset-explorer: data type icons path to polygon, raster, line etc. was given absolute, therefore could not be found in deployed environments (#UKISDEV-771)

3.0.1 (2019-04-26) (costalx-fixes)

Bug Fixes

3.0.0 (2019-04-15) (FEATURE-planetary and costalx-fixes)

Breaking Changes

Features

  • @ukis/services-util-store: method to remove cookies (ca3b11fecac)

Bug Fixes

2.1.0 (2019-04-01)

Features

  • @ukis/services-layers: filter for remove overlays (#UKISDEV-749) (a39b6fd7bf4)
  • @ukis/services-owc-json , @ukis/services-owc-json: implemented support for geojson-layers: storing geojson-data in a data-offering
  • @ukis/dataset-explorer: filter for bbox and time (#UKISDEV-604)

Bug Fixes

  • @ukis/dataset-explorer: Datasetexplorer is not removing layers from service (#UKISDEV-738) (f5a98f5c9be)
  • @ukis/services-layers: vector-layers can no longer have type "wms", "wmts" or "xyz", raster-layers can no longer have type "geojson" or "wfs".
  • @ukis/services-owc-json , @ukis/services-owc-json: in marshalling to and from owc to layer, the layertype is now explicitly checked for compliance with @ukis/services-layers:

2.0.0 (2019-03-15) (SPRINT-geoservice I)

Breaking Changes

  • @ukis/map-ol: change input name layersSvc for mal-ol (fc24393c4d9)
  • @ukis/map-ol: fix typo controlls, rename to controls (f71cadb1db3)

Bug Fixes

Features

1.0.0 (2019-02-12) (RESTRUCTURE to monorepo)

Dependency updates

  • "@angular/core": "~7.2.0"

Bug Fixes

Features

Possible Breaking Changes