qwc2 2025.10.9 → 2025.10.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/display.js +30 -1
- package/actions/editing.js +22 -1
- package/actions/layerinfo.js +13 -1
- package/actions/layers.js +213 -3
- package/actions/localConfig.js +58 -1
- package/actions/locale.js +21 -1
- package/actions/locate.js +26 -1
- package/actions/logging.js +10 -1
- package/actions/map.js +105 -2
- package/actions/measurement.js +12 -1
- package/actions/processNotifications.js +37 -1
- package/actions/redlining.js +18 -1
- package/actions/redliningPick.js +12 -1
- package/actions/search.js +12 -1
- package/actions/serviceinfo.js +12 -1
- package/actions/task.js +55 -3
- package/actions/theme.js +339 -19
- package/actions/windows.js +164 -5
- package/components/AppMenu.js +435 -3
- package/components/AttributeForm.js +928 -32
- package/components/AttributeTableWidget.js +1105 -13
- package/components/AutoEditForm.js +189 -3
- package/components/CoordinateDisplayer.js +78 -2
- package/components/EditComboField.js +190 -6
- package/components/EditUploadField.js +315 -3
- package/components/ExportSelection.js +203 -2
- package/components/FullscreenSwitcher.js +90 -3
- package/components/Icon.js +81 -2
- package/components/IdentifyViewer.js +1161 -6
- package/components/ImportLayer.js +718 -20
- package/components/LayerInfoWindow.js +145 -2
- package/components/LinkFeatureForm.js +246 -5
- package/components/MapButton.js +88 -2
- package/components/MapSelection.js +287 -8
- package/components/MessageBar.js +68 -2
- package/components/NumericInputWindow.js +359 -2
- package/components/PickFeature.js +266 -2
- package/components/PluginsContainer.js +227 -8
- package/components/PrintSelection.js +620 -49
- package/components/ProcessNotifications.js +104 -2
- package/components/QtDesignerForm.js +1137 -18
- package/components/ResizeableWindow.js +591 -8
- package/components/SearchBox.js +1307 -20
- package/components/ServiceInfoWindow.js +107 -2
- package/components/SideBar.js +204 -4
- package/components/StandardApp.js +381 -20
- package/components/Swipeable.js +15 -1
- package/components/TaskBar.js +85 -2
- package/components/ThemeLayersListWindow.js +216 -4
- package/components/ThemeList.js +381 -7
- package/components/Toolbar.js +106 -2
- package/components/WindowManager.js +178 -2
- package/components/map/OlLayer.js +257 -6
- package/components/map/OlMap.js +405 -5
- package/components/map/layers/BingLayer.js +31 -2
- package/components/map/layers/GoogleLayer.js +222 -19
- package/components/map/layers/GraticuleLayer.js +21 -1
- package/components/map/layers/ImageLayer.js +15 -1
- package/components/map/layers/MVTLayer.js +52 -2
- package/components/map/layers/OSMLayer.js +24 -2
- package/components/map/layers/OverlayLayer.js +55 -3
- package/components/map/layers/VectorLayer.js +173 -8
- package/components/map/layers/WFSLayer.js +220 -6
- package/components/map/layers/WMSLayer.js +180 -6
- package/components/map/layers/WMTSLayer.js +67 -3
- package/components/map/layers/XYZLayer.js +24 -2
- package/components/map/layers/index.js +28 -1
- package/components/map3d/EditDataset3D.js +190 -3
- package/components/map3d/HeightProfile3D.js +402 -3
- package/components/map3d/ImportObjects3D.js +162 -2
- package/components/map3d/Map3D.js +1304 -38
- package/components/map3d/MapControls3D.js +392 -7
- package/components/map3d/SearchField3D.js +183 -11
- package/components/map3d/View3DSwitcher.js +98 -2
- package/components/map3d/drawtool/CreateTool3D.js +174 -4
- package/components/map3d/drawtool/EditTool3D.js +590 -6
- package/components/map3d/drawtool/NumericInput3D.js +336 -4
- package/components/map3d/layers/GeoTIFFLayer3D.js +15 -1
- package/components/map3d/layers/VectorLayer3D.js +53 -2
- package/components/map3d/layers/WFSLayer3D.js +109 -3
- package/components/map3d/layers/WMSLayer3D.js +70 -2
- package/components/map3d/layers/WMTSLayer3D.js +27 -3
- package/components/map3d/layers/index.js +14 -1
- package/components/map3d/utils/FirstPersonControls3D.js +423 -16
- package/components/map3d/utils/MiscUtils3D.js +221 -13
- package/components/map3d/utils/OrbitControls3D.js +176 -5
- package/components/map3d/utils/Tiles3DStyle.js +238 -9
- package/components/share/ShareLink.js +54 -2
- package/components/share/ShareQRCode.js +62 -2
- package/components/share/ShareSocials.js +125 -3
- package/components/timeline/FixedTimeline.js +236 -5
- package/components/timeline/InfiniteTimeline.js +347 -8
- package/components/timeline/TimelineFeaturesSlider.js +439 -5
- package/components/widgets/AccordeonWidget.js +96 -2
- package/components/widgets/ButtonBar.js +124 -2
- package/components/widgets/ColorButton.js +201 -3
- package/components/widgets/ComboBox.js +166 -2
- package/components/widgets/CopyButton.js +110 -2
- package/components/widgets/DateTimeInput.js +100 -3
- package/components/widgets/EditableSelect.js +230 -3
- package/components/widgets/FileSelector.js +128 -4
- package/components/widgets/Input.js +124 -2
- package/components/widgets/InputContainer.js +96 -2
- package/components/widgets/LayerCatalogWidget.js +219 -3
- package/components/widgets/MenuButton.js +157 -1
- package/components/widgets/ModalDialog.js +64 -2
- package/components/widgets/NavBar.js +119 -2
- package/components/widgets/NumberInput.js +226 -4
- package/components/widgets/PopupMenu.js +72 -1
- package/components/widgets/Primitives.js +6 -1
- package/components/widgets/ReCaptchaWidget.js +55 -1
- package/components/widgets/SearchWidget.js +255 -2
- package/components/widgets/Spinner.js +44 -2
- package/components/widgets/SuggestionInput.js +77 -2
- package/components/widgets/TextInput.js +308 -2
- package/components/widgets/ToggleSwitch.js +85 -2
- package/components/widgets/VectorLayerPicker.js +85 -3
- package/libs/openlayers.js +225 -5
- package/package.json +1 -1
- package/plugins/API.js +358 -15
- package/plugins/AttributeTable.js +109 -3
- package/plugins/Authentication.js +130 -5
- package/plugins/BackgroundSwitcher.js +218 -4
- package/plugins/Bookmark.js +289 -3
- package/plugins/BottomBar.js +298 -4
- package/plugins/CookiePopup.js +67 -3
- package/plugins/Cyclomedia.js +442 -5
- package/plugins/Editing.js +497 -9
- package/plugins/FeatureForm.js +366 -4
- package/plugins/FeatureSearch.js +458 -3
- package/plugins/GeometryDigitizer.js +664 -7
- package/plugins/HeightProfile.js +763 -15
- package/plugins/Help.js +102 -3
- package/plugins/HomeButton.js +80 -3
- package/plugins/Identify.js +543 -5
- package/plugins/LayerCatalog.js +215 -4
- package/plugins/LayerTree.js +1194 -6
- package/plugins/LocateButton.js +94 -3
- package/plugins/Map.js +320 -16
- package/plugins/MapCompare.js +94 -3
- package/plugins/MapCopyright.js +127 -5
- package/plugins/MapExport.js +613 -20
- package/plugins/MapFilter.js +868 -12
- package/plugins/MapInfoTooltip.js +277 -3
- package/plugins/MapLegend.js +253 -4
- package/plugins/MapTip.js +290 -4
- package/plugins/Measure.js +220 -4
- package/plugins/NewsPopup.js +137 -3
- package/plugins/OverviewMap.js +167 -7
- package/plugins/Panoramax.js +340 -2
- package/plugins/Portal.js +199 -4
- package/plugins/Print.js +1231 -15
- package/plugins/Redlining.js +750 -6
- package/plugins/Reports.js +332 -3
- package/plugins/Routing.js +1278 -15
- package/plugins/ScratchDrawing.js +173 -5
- package/plugins/Settings.js +241 -4
- package/plugins/Share.js +198 -3
- package/plugins/StartupMarker.js +84 -4
- package/plugins/TaskButton.js +88 -3
- package/plugins/ThemeSwitcher.js +164 -4
- package/plugins/TimeManager.js +971 -10
- package/plugins/TopBar.js +300 -7
- package/plugins/TourGuide.js +213 -2
- package/plugins/ValueTool.js +419 -4
- package/plugins/View3D.js +519 -14
- package/plugins/ZoomButtons.js +165 -3
- package/plugins/map/EditingSupport.js +199 -7
- package/plugins/map/LocateSupport.js +260 -4
- package/plugins/map/MeasurementSupport.js +216 -8
- package/plugins/map/RedliningPickSupport.js +201 -7
- package/plugins/map/RedliningSupport.js +726 -17
- package/plugins/map/SnapInteraction.js +101 -1
- package/plugins/map/SnapSupport.js +210 -2
- package/plugins/map/SnappingSupport.js +356 -17
- package/plugins/map3d/BackgroundSwitcher3D.js +44 -3
- package/plugins/map3d/BottomBar3D.js +118 -3
- package/plugins/map3d/Compare3D.js +422 -8
- package/plugins/map3d/Draw3D.js +353 -6
- package/plugins/map3d/ExportObjects3D.js +393 -18
- package/plugins/map3d/HideObjects3D.js +313 -12
- package/plugins/map3d/Identify3D.js +283 -12
- package/plugins/map3d/LayerTree3D.js +323 -3
- package/plugins/map3d/MapCopyright3D.js +128 -5
- package/plugins/map3d/MapExport3D.js +590 -10
- package/plugins/map3d/MapLight3D.js +553 -6
- package/plugins/map3d/Measure3D.js +571 -20
- package/plugins/map3d/OverviewMap3D.js +169 -3
- package/plugins/map3d/Settings3D.js +73 -3
- package/plugins/map3d/TopBar3D.js +207 -9
- package/plugins/redlining/RedliningBufferSupport.js +206 -3
- package/reducers/display.js +34 -2
- package/reducers/editing.js +68 -3
- package/reducers/index.js +9 -1
- package/reducers/layerinfo.js +26 -2
- package/reducers/layers.js +456 -9
- package/reducers/localConfig.js +122 -2
- package/reducers/locale.js +38 -2
- package/reducers/locate.js +40 -2
- package/reducers/map.js +176 -5
- package/reducers/measurement.js +42 -2
- package/reducers/processNotifications.js +49 -2
- package/reducers/redlining.js +50 -2
- package/reducers/redliningPick.js +27 -2
- package/reducers/search.js +20 -1
- package/reducers/serviceinfo.js +25 -2
- package/reducers/task.js +45 -2
- package/reducers/theme.js +51 -2
- package/reducers/windows.js +203 -2
- package/scripts/dist.sh +1 -1
- package/scripts/gen-plugin-docs.js +152 -2
- package/scripts/makeIconkit.js +85 -6
- package/scripts/themesConfig.js +742 -40
- package/scripts/updateTranslations.js +251 -10
- package/selectors/searchproviders.js +44 -2
- package/stores/StandardStore.js +42 -2
- package/utils/ConfigUtils.js +84 -3
- package/utils/CoordinatesUtils.js +234 -23
- package/utils/DxfUtils.js +237 -11
- package/utils/EditingInterface.js +421 -87
- package/utils/EditingUtils.js +357 -13
- package/utils/ElevationInterface.js +83 -22
- package/utils/FeatureStyles.js +429 -5
- package/utils/IdentifyUtils.js +443 -7
- package/utils/ImageEditor.js +79 -9
- package/utils/LayerUtils.js +1516 -50
- package/utils/LocaleUtils.js +117 -7
- package/utils/MapUtils.js +241 -59
- package/utils/MeasureUtils.js +323 -2
- package/utils/MiscUtils.js +189 -11
- package/utils/PermaLinkUtils.js +429 -6
- package/utils/PluginStore.js +27 -1
- package/utils/ResourceRegistry.js +15 -1
- package/utils/RoutingInterface.js +307 -7
- package/utils/SearchProviders.js +722 -19
- package/utils/ServiceLayerUtils.js +669 -14
- package/utils/Signal.js +32 -2
- package/utils/ThemeUtils.js +341 -7
- package/utils/VectorLayerUtils.js +589 -15
- package/utils/expr_grammar/grammar.js +2239 -2
- package/utils/expr_grammar/test.js +65 -3
|
@@ -1,14 +1,179 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
+
/**
|
|
2
11
|
* Copyright 2015 GeoSolutions Sas
|
|
3
12
|
* Copyright 2016-2024 Sourcepole AG
|
|
4
13
|
* All rights reserved.
|
|
5
14
|
*
|
|
6
15
|
* This source code is licensed under the BSD-style license found in the
|
|
7
16
|
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import ol from 'openlayers';
|
|
20
|
+
import FeatureStyles from '../../../utils/FeatureStyles';
|
|
21
|
+
export function createFeatures(options, mapCrs) {
|
|
22
|
+
var format = new ol.format.GeoJSON();
|
|
23
|
+
return (options.features || []).reduce(function (collection, feature) {
|
|
24
|
+
var featureObject = format.readFeatures(_objectSpread(_objectSpread({}, feature), {}, {
|
|
25
|
+
type: "Feature"
|
|
26
|
+
}));
|
|
27
|
+
featureObject.forEach(function (f) {
|
|
28
|
+
var _ref, _feature$crs;
|
|
29
|
+
var featureCrs = (_ref = (_feature$crs = feature.crs) !== null && _feature$crs !== void 0 ? _feature$crs : options.projection) !== null && _ref !== void 0 ? _ref : mapCrs;
|
|
30
|
+
if (featureCrs.type === "name") {
|
|
31
|
+
featureCrs = featureCrs.properties.name;
|
|
32
|
+
}
|
|
33
|
+
if (featureCrs !== mapCrs) {
|
|
34
|
+
var _f$getGeometry;
|
|
35
|
+
(_f$getGeometry = f.getGeometry()) === null || _f$getGeometry === void 0 || _f$getGeometry.transform(featureCrs, mapCrs);
|
|
36
|
+
}
|
|
37
|
+
var featureStyleName = feature.styleName || options.styleName;
|
|
38
|
+
var featureStyleOptions = _objectSpread(_objectSpread({}, options.styleOptions), feature.styleOptions);
|
|
39
|
+
f.set('styleName', featureStyleName);
|
|
40
|
+
f.set('styleOptions', featureStyleOptions);
|
|
41
|
+
if (feature.circleParams) {
|
|
42
|
+
f.set('circleParams', feature.circleParams);
|
|
43
|
+
}
|
|
44
|
+
if (feature.shape) {
|
|
45
|
+
f.set('shape', feature.shape);
|
|
46
|
+
}
|
|
47
|
+
if (feature.measurements) {
|
|
48
|
+
f.set('measurements', feature.measurements);
|
|
49
|
+
}
|
|
50
|
+
if (featureStyleName) {
|
|
51
|
+
f.setStyle(FeatureStyles[featureStyleName](f, featureStyleOptions));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return collection.concat(featureObject);
|
|
55
|
+
}, []);
|
|
56
|
+
}
|
|
57
|
+
export function updateFeatures(source, newOptions, oldOptions, mapCrs) {
|
|
58
|
+
var format = new ol.format.GeoJSON();
|
|
59
|
+
var oldFeaturesMap = (oldOptions.features || []).reduce(function (res, f) {
|
|
60
|
+
res[f.id] = f;
|
|
61
|
+
return res;
|
|
62
|
+
}, {});
|
|
63
|
+
var newIds = new Set(newOptions.features.map(function (f) {
|
|
64
|
+
return f.id;
|
|
65
|
+
}));
|
|
66
|
+
var removed = Object.keys(oldFeaturesMap).filter(function (id) {
|
|
67
|
+
return !newIds.has(id);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// Remove removed features
|
|
71
|
+
var _iterator = _createForOfIteratorHelper(removed),
|
|
72
|
+
_step;
|
|
73
|
+
try {
|
|
74
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
75
|
+
var id = _step.value;
|
|
76
|
+
var feature = source.getFeatureById(id);
|
|
77
|
+
if (feature) {
|
|
78
|
+
source.removeFeature(feature);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Add / update features
|
|
83
|
+
} catch (err) {
|
|
84
|
+
_iterator.e(err);
|
|
85
|
+
} finally {
|
|
86
|
+
_iterator.f();
|
|
87
|
+
}
|
|
88
|
+
var newFeatureObjects = [];
|
|
89
|
+
var _iterator2 = _createForOfIteratorHelper(newOptions.features),
|
|
90
|
+
_step2;
|
|
91
|
+
try {
|
|
92
|
+
var _loop = function _loop() {
|
|
93
|
+
var feature = _step2.value;
|
|
94
|
+
if (oldFeaturesMap[feature.id] && oldFeaturesMap[feature.id] === feature) {
|
|
95
|
+
// Unchanged, continue
|
|
96
|
+
return 1; // continue
|
|
97
|
+
}
|
|
98
|
+
if (oldFeaturesMap[feature.id] && oldFeaturesMap[feature.id] !== feature) {
|
|
99
|
+
// Changed, remove
|
|
100
|
+
var oldFeature = source.getFeatureById(feature.id);
|
|
101
|
+
if (oldFeature) {
|
|
102
|
+
source.removeFeature(oldFeature);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Add new
|
|
106
|
+
var featureObject = format.readFeatures(_objectSpread(_objectSpread({}, feature), {}, {
|
|
107
|
+
type: "Feature"
|
|
108
|
+
}));
|
|
109
|
+
featureObject.forEach(function (f) {
|
|
110
|
+
var _ref2, _feature$crs2;
|
|
111
|
+
var featureCrs = (_ref2 = (_feature$crs2 = feature.crs) !== null && _feature$crs2 !== void 0 ? _feature$crs2 : newOptions.projection) !== null && _ref2 !== void 0 ? _ref2 : mapCrs;
|
|
112
|
+
if (featureCrs.type === "name") {
|
|
113
|
+
featureCrs = featureCrs.properties.name;
|
|
114
|
+
}
|
|
115
|
+
if (featureCrs !== mapCrs) {
|
|
116
|
+
var _f$getGeometry2;
|
|
117
|
+
(_f$getGeometry2 = f.getGeometry()) === null || _f$getGeometry2 === void 0 || _f$getGeometry2.transform(featureCrs, mapCrs);
|
|
118
|
+
}
|
|
119
|
+
var featureStyleName = feature.styleName || newOptions.styleName;
|
|
120
|
+
var featureStyleOptions = _objectSpread(_objectSpread({}, newOptions.styleOptions), feature.styleOptions);
|
|
121
|
+
f.set('styleName', featureStyleName);
|
|
122
|
+
f.set('styleOptions', featureStyleOptions);
|
|
123
|
+
f.set('circleParams', feature.circleParams);
|
|
124
|
+
f.set('shape', feature.shape);
|
|
125
|
+
f.set('measurements', feature.measurements);
|
|
126
|
+
if (featureStyleName) {
|
|
127
|
+
f.setStyle(FeatureStyles[featureStyleName](f, featureStyleOptions));
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
newFeatureObjects = newFeatureObjects.concat(featureObject);
|
|
131
|
+
};
|
|
132
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
133
|
+
if (_loop()) continue;
|
|
134
|
+
}
|
|
135
|
+
} catch (err) {
|
|
136
|
+
_iterator2.e(err);
|
|
137
|
+
} finally {
|
|
138
|
+
_iterator2.f();
|
|
139
|
+
}
|
|
140
|
+
if (newFeatureObjects) {
|
|
141
|
+
source.addFeatures(newFeatureObjects);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export function featureStyleFunction(options) {
|
|
145
|
+
return function (feature) {
|
|
146
|
+
var styleName = options.styleName || 'default';
|
|
147
|
+
var styleOptions = options.styleOptions || {};
|
|
148
|
+
return FeatureStyles[styleName](feature, styleOptions);
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
export default {
|
|
152
|
+
create: function create(options, map) {
|
|
153
|
+
var source = new ol.source.Vector();
|
|
154
|
+
var mapCrs = map.getView().getProjection().getCode();
|
|
155
|
+
var features = createFeatures(options, mapCrs);
|
|
156
|
+
source.addFeatures(features);
|
|
157
|
+
var vectorLayer = new ol.layer.Vector({
|
|
158
|
+
source: source,
|
|
159
|
+
style: options.styleFunction || featureStyleFunction(options)
|
|
160
|
+
});
|
|
161
|
+
return vectorLayer;
|
|
162
|
+
},
|
|
163
|
+
update: function update(layer, newOptions, oldOptions, map) {
|
|
164
|
+
var mapCrs = map.getView().getProjection().getCode();
|
|
165
|
+
if (newOptions.styleName !== oldOptions.styleName || newOptions.styleOptions !== oldOptions.styleOptions) {
|
|
166
|
+
layer.setStyle(featureStyleFunction(newOptions));
|
|
167
|
+
} else if (newOptions.styleFunction !== oldOptions.styleFunction) {
|
|
168
|
+
layer.setStyle(newOptions.styleFunction);
|
|
169
|
+
}
|
|
170
|
+
if (newOptions.features !== oldOptions.features) {
|
|
171
|
+
updateFeatures(layer.getSource(), newOptions, oldOptions, mapCrs);
|
|
172
|
+
} else if ((oldOptions.rev || 0) !== (newOptions.rev || 0)) {
|
|
173
|
+
layer.getSource().changed();
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
render: function render() {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
};
|
|
@@ -1,11 +1,225 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
10
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
13
|
+
/**
|
|
2
14
|
* Copyright 2018-2024 Sourcepole AG
|
|
3
15
|
* All rights reserved.
|
|
4
16
|
*
|
|
5
17
|
* This source code is licensed under the BSD-style license found in the
|
|
6
18
|
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import ol from 'openlayers';
|
|
22
|
+
import url from 'url';
|
|
23
|
+
import CoordinatesUtils from '../../../utils/CoordinatesUtils';
|
|
24
|
+
import FeatureStyles from '../../../utils/FeatureStyles';
|
|
25
|
+
export function wfsToOpenlayersOptions(options) {
|
|
26
|
+
var formatMap = {
|
|
27
|
+
"gml3": function gml3(proj) {
|
|
28
|
+
return new ol.format.WFS({
|
|
29
|
+
gmlFormat: new ol.format.GML3({
|
|
30
|
+
dataProjection: proj
|
|
31
|
+
}),
|
|
32
|
+
version: options.version
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
"gml32": function gml32(proj) {
|
|
36
|
+
return new ol.format.WFS({
|
|
37
|
+
gmlFormat: new ol.format.GML32({
|
|
38
|
+
dataProjection: proj
|
|
39
|
+
}),
|
|
40
|
+
version: options.version
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
"application/gml+xml; version=3.2": function application_gmlXml_version32(proj) {
|
|
44
|
+
return new ol.format.WFS({
|
|
45
|
+
gmlFormat: new ol.format.GML32({
|
|
46
|
+
dataProjection: proj
|
|
47
|
+
}),
|
|
48
|
+
version: options.version
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
"gml2": function gml2(proj) {
|
|
52
|
+
return new ol.format.WFS({
|
|
53
|
+
gmlFormat: new ol.format.GML2({
|
|
54
|
+
dataProjection: proj
|
|
55
|
+
}),
|
|
56
|
+
version: options.version
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
"text/xml; subtype=gml/3.0": function text_xml_subtypeGml_30(proj) {
|
|
60
|
+
return new ol.format.WFS({
|
|
61
|
+
gmlFormat: new ol.format.GML3({
|
|
62
|
+
dataProjection: proj
|
|
63
|
+
}),
|
|
64
|
+
version: options.version
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
"text/xml; subtype=gml/3.1": function text_xml_subtypeGml_31(proj) {
|
|
68
|
+
return new ol.format.WFS({
|
|
69
|
+
gmlFormat: new ol.format.GML3({
|
|
70
|
+
dataProjection: proj
|
|
71
|
+
}),
|
|
72
|
+
version: options.version
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
"text/xml; subtype=gml/3.1.0": function text_xml_subtypeGml_310(proj) {
|
|
76
|
+
return new ol.format.WFS({
|
|
77
|
+
gmlFormat: new ol.format.GML3({
|
|
78
|
+
dataProjection: proj
|
|
79
|
+
}),
|
|
80
|
+
version: options.version
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
"text/xml; subtype=gml/3.1.1": function text_xml_subtypeGml_311(proj) {
|
|
84
|
+
return new ol.format.WFS({
|
|
85
|
+
gmlFormat: new ol.format.GML3({
|
|
86
|
+
dataProjection: proj
|
|
87
|
+
}),
|
|
88
|
+
version: options.version
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
"text/xml; subtype=gml/3.2": function text_xml_subtypeGml_32(proj) {
|
|
92
|
+
return new ol.format.WFS({
|
|
93
|
+
gmlFormat: new ol.format.GML32({
|
|
94
|
+
dataProjection: proj
|
|
95
|
+
}),
|
|
96
|
+
version: options.version
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
"text/xml; subtype=gml/3.2.0": function text_xml_subtypeGml_320(proj) {
|
|
100
|
+
return new ol.format.WFS({
|
|
101
|
+
gmlFormat: new ol.format.GML32({
|
|
102
|
+
dataProjection: proj
|
|
103
|
+
}),
|
|
104
|
+
version: options.version
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
"text/xml; subtype=gml/3.2.1": function text_xml_subtypeGml_321(proj) {
|
|
108
|
+
return new ol.format.WFS({
|
|
109
|
+
gmlFormat: new ol.format.GML32({
|
|
110
|
+
dataProjection: proj
|
|
111
|
+
}),
|
|
112
|
+
version: options.version
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
"text/xml; subtype=gml/2.1.2": function text_xml_subtypeGml_212(proj) {
|
|
116
|
+
return new ol.format.WFS({
|
|
117
|
+
gmlFormat: new ol.format.GML2({
|
|
118
|
+
dataProjection: proj
|
|
119
|
+
}),
|
|
120
|
+
version: options.version
|
|
121
|
+
});
|
|
122
|
+
},
|
|
123
|
+
"kml": function kml(proj) {
|
|
124
|
+
return new ol.format.KML({
|
|
125
|
+
defaultDataProjection: proj
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
"application/vnd.google-earth.kml+xml": function application_vndGoogleEarthKmlXml(proj) {
|
|
129
|
+
return new ol.format.KML({
|
|
130
|
+
dataProjection: proj
|
|
131
|
+
});
|
|
132
|
+
},
|
|
133
|
+
"geojson": function geojson(proj) {
|
|
134
|
+
return new ol.format.GeoJSON({
|
|
135
|
+
dataProjection: proj
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
"json": function json(proj) {
|
|
139
|
+
return new ol.format.GeoJSON({
|
|
140
|
+
dataProjection: proj
|
|
141
|
+
});
|
|
142
|
+
},
|
|
143
|
+
"application/json": function application_json(proj) {
|
|
144
|
+
return new ol.format.GeoJSON({
|
|
145
|
+
dataProjection: proj
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
var olformat = null;
|
|
150
|
+
var format = null;
|
|
151
|
+
var _loop = function _loop() {
|
|
152
|
+
var key = _Object$keys[_i];
|
|
153
|
+
var fmt = options.formats.find(function (entry) {
|
|
154
|
+
return entry.toLowerCase() === key;
|
|
155
|
+
});
|
|
156
|
+
if (fmt) {
|
|
157
|
+
olformat = formatMap[key](options.projection);
|
|
158
|
+
format = fmt;
|
|
159
|
+
return 1; // break
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
for (var _i = 0, _Object$keys = Object.keys(formatMap); _i < _Object$keys.length; _i++) {
|
|
163
|
+
if (_loop()) break;
|
|
164
|
+
}
|
|
165
|
+
if (!format) {
|
|
166
|
+
// eslint-disable-next-line
|
|
167
|
+
console.warn("No supported WFS format found");
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
var typeName = options.version < "2.0.0" ? "typeName" : "typeNames";
|
|
171
|
+
return {
|
|
172
|
+
formatName: format,
|
|
173
|
+
format: olformat,
|
|
174
|
+
url: options.url ? function (extent) {
|
|
175
|
+
var bbox = extent.join(',');
|
|
176
|
+
var srsName = options.projection;
|
|
177
|
+
if (options.version >= "1.1.0") {
|
|
178
|
+
// http://augusttown.blogspot.com/2010/08/mysterious-bbox-parameter-in-web.html
|
|
179
|
+
// Invert WGS axis orentation
|
|
180
|
+
var axisOrientation = CoordinatesUtils.getAxisOrder(options.projection);
|
|
181
|
+
var requestExtent = axisOrientation === 'neu' ? [extent[1], extent[0], extent[3], extent[2]] : extent;
|
|
182
|
+
bbox = requestExtent.join(',') + "," + CoordinatesUtils.toOgcUrnCrs(options.projection);
|
|
183
|
+
srsName = CoordinatesUtils.toOgcUrnCrs(options.projection);
|
|
184
|
+
}
|
|
185
|
+
var urlParts = url.parse(options.url, true);
|
|
186
|
+
var urlParams = Object.entries(urlParts.query).reduce(function (res, _ref) {
|
|
187
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
188
|
+
key = _ref2[0],
|
|
189
|
+
val = _ref2[1];
|
|
190
|
+
return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key.toUpperCase(), val));
|
|
191
|
+
}, {});
|
|
192
|
+
delete urlParts.search;
|
|
193
|
+
urlParts.query = _objectSpread(_objectSpread({}, urlParams), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty({
|
|
194
|
+
SERVICE: 'WFS',
|
|
195
|
+
VERSION: options.version,
|
|
196
|
+
REQUEST: 'GetFeature'
|
|
197
|
+
}, typeName, options.name), "outputFormat", format), "srsName", srsName), "bbox", bbox));
|
|
198
|
+
return url.format(urlParts);
|
|
199
|
+
} : undefined,
|
|
200
|
+
strategy: ol.loadingstrategy.bbox
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
export default {
|
|
204
|
+
create: function create(options) {
|
|
205
|
+
var vectorSource = new ol.source.Vector(_objectSpread(_objectSpread({}, wfsToOpenlayersOptions(options)), {}, {
|
|
206
|
+
loader: options.loader ? function (extent, resolution, projection, success, failure) {
|
|
207
|
+
options.loader(vectorSource, extent, resolution, projection, success, failure);
|
|
208
|
+
} : undefined
|
|
209
|
+
}));
|
|
210
|
+
return new ol.layer.Vector({
|
|
211
|
+
source: vectorSource,
|
|
212
|
+
style: function style(feature) {
|
|
213
|
+
return FeatureStyles["default"](feature, {
|
|
214
|
+
fillColor: options.color,
|
|
215
|
+
strokeColor: feature.getGeometry().getType().endsWith("LineString") ? options.color : "#000",
|
|
216
|
+
strokeWidth: 1,
|
|
217
|
+
strokeDash: [],
|
|
218
|
+
circleRadius: 5
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
},
|
|
223
|
+
update: function update(/* layer, newOptions, oldOptions */
|
|
224
|
+
) {}
|
|
225
|
+
};
|