UNPKG

qwc2

Version:
195 lines (193 loc) 5.49 kB
/** * Copyright 2016-2024 Sourcepole AG * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. */ import ReducerIndex from '../reducers/index'; import layersReducer from '../reducers/layers'; ReducerIndex.register("layers", layersReducer); import ConfigUtils from '../utils/ConfigUtils'; export var SET_LAYER_LOADING = 'SET_LAYER_LOADING'; export var ADD_LAYER = 'ADD_LAYER'; export var ADD_LAYER_SEPARATOR = 'ADD_LAYER_SEPARATOR'; export var REMOVE_LAYER = 'REMOVE_LAYER'; export var REORDER_LAYER = 'REORDER_LAYER'; export var ADD_LAYER_FEATURES = 'ADD_LAYER_FEATURES'; export var ADD_THEME_SUBLAYER = 'ADD_THEME_SUBLAYER'; export var REMOVE_LAYER_FEATURES = 'REMOVE_LAYER_FEATURES'; export var CLEAR_LAYER = 'CLEAR_LAYER'; export var CHANGE_LAYER_PROPERTY = 'CHANGE_LAYER_PROPERTY'; export var SET_LAYER_DIMENSIONS = 'SET_LAYER_DIMENSIONS'; export var REFRESH_LAYER = 'REFRESH_LAYER'; export var REMOVE_ALL_LAYERS = 'REMOVE_ALL_LAYERS'; export var REPLACE_PLACEHOLDER_LAYER = 'REPLACE_PLACEHOLDER_LAYER'; export var SET_SWIPE = 'SET_SWIPE'; export var SET_FILTER = 'SET_FILTER'; export var SET_THEME_LAYERS_VISIBILITY_PRESET = 'SET_THEME_LAYERS_VISIBILITY_PRESET'; export var LayerRole = { BACKGROUND: 1, THEME: 2, USERLAYER: 3, SELECTION: 4, MARKER: 5 }; export function addLayer(layer) { var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; return { type: ADD_LAYER, layer: layer, pos: pos, options: options }; } export function addLayerSeparator(title, afterLayerId, afterSublayerPath) { return { type: ADD_LAYER_SEPARATOR, title: title, afterLayerId: afterLayerId, afterSublayerPath: afterSublayerPath }; } export function removeLayer(layerId) { var sublayerpath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; return { type: REMOVE_LAYER, layerId: layerId, sublayerpath: sublayerpath }; } export function reorderLayer(layer, sublayerpath, direction) { return function (dispatch, getState) { dispatch({ type: REORDER_LAYER, layer: layer, sublayerpath: sublayerpath, direction: direction, preventSplittingGroups: ConfigUtils.getConfigProp("preventSplittingGroupsWhenReordering", getState().theme.current) }); }; } export function addLayerFeatures(layer, features) { var clear = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; return { type: ADD_LAYER_FEATURES, layer: layer, features: features, clear: clear }; } export function removeLayerFeatures(layerId, featureIds) { var keepEmptyLayer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; return { type: REMOVE_LAYER_FEATURES, layerId: layerId, featureIds: featureIds, keepEmptyLayer: keepEmptyLayer }; } export function clearLayer(layerId) { return { type: CLEAR_LAYER, layerId: layerId }; } export function addThemeSublayer(layer) { return { type: ADD_THEME_SUBLAYER, layer: layer }; } // recurseDirection: null (don't recurse), 'parents', 'children', 'both' export function changeLayerProperty(layerId, property, newvalue) { var sublayerpath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; var recurseDirection = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; return { type: CHANGE_LAYER_PROPERTY, layerId: layerId, property: property, newvalue: newvalue, sublayerpath: sublayerpath, recurseDirection: recurseDirection }; } export function setLayerDimensions(layerId, dimensions) { return { type: SET_LAYER_DIMENSIONS, layerId: layerId, dimensions: dimensions }; } export function setLayerLoading(layerId, loading) { return { type: SET_LAYER_LOADING, layerId: layerId, loading: loading }; } export function addMarker(id, point) { var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; var crs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'EPSG:4326'; var zIndex = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; var layer = { id: "markers", role: LayerRole.MARKER, zIndex: zIndex }; var feature = { id: id, geometry: { type: 'Point', coordinates: point }, properties: { label: label }, crs: crs, styleName: 'marker' }; return addLayerFeatures(layer, [feature]); } export function removeMarker(id) { return removeLayerFeatures("markers", [id]); } export function refreshLayer(filter) { return { type: REFRESH_LAYER, filter: filter }; } export function removeAllLayers() { return { type: REMOVE_ALL_LAYERS }; } export function replacePlaceholderLayer(id, layer) { return { type: REPLACE_PLACEHOLDER_LAYER, id: id, layer: layer }; } export function setSwipe(swipe) { return { type: SET_SWIPE, swipe: swipe }; } export function setFilter(filter, filterGeom, timeRange) { return { type: SET_FILTER, filter: filter, filterGeom: filterGeom, timeRange: timeRange }; } export function setThemeLayersVisibilityPreset(preset) { return { type: SET_THEME_LAYERS_VISIBILITY_PRESET, preset: preset }; }