qwc2 2025.10.16 → 2025.10.25

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.
Files changed (69) hide show
  1. package/actions/locate.js +3 -2
  2. package/components/AttributeTableWidget.js +24 -15
  3. package/components/FeatureAttributesWindow.js +178 -0
  4. package/components/IdentifyViewer.js +80 -39
  5. package/components/LocationRecorder.js +138 -0
  6. package/components/NumericInputWindow.js +30 -22
  7. package/components/PickFeature.js +87 -26
  8. package/components/PluginsContainer.js +16 -3
  9. package/components/map/OlLayer.js +2 -1
  10. package/components/map/layers/MVTLayer.js +3 -0
  11. package/components/map/layers/VectorLayer.js +66 -65
  12. package/components/map3d/HeightProfile3D.js +2 -0
  13. package/components/map3d/drawtool/EditTool3D.js +1 -1
  14. package/components/style/App.css +14 -0
  15. package/components/style/AttributeTableWidget.css +1 -1
  16. package/components/style/FeatureAttributesWindow.css +16 -0
  17. package/components/style/IdentifyViewer.css +5 -0
  18. package/components/style/LocationRecorder.css +10 -0
  19. package/components/style/NumericInputWindow.css +22 -0
  20. package/components/style/PluginsContainer.css +16 -0
  21. package/components/widgets/LayerCatalogWidget.js +40 -16
  22. package/components/widgets/NavBar.js +10 -3
  23. package/components/widgets/TextInput.js +4 -2
  24. package/icons/circle_full.svg +75 -0
  25. package/package.json +1 -1
  26. package/plugins/AttributeTable.js +4 -0
  27. package/plugins/GeometryDigitizer.js +3 -0
  28. package/plugins/HeightProfile.js +5 -1
  29. package/plugins/Identify.js +7 -3
  30. package/plugins/ObjectList.js +116 -0
  31. package/plugins/Redlining.js +21 -56
  32. package/plugins/map/EditingSupport.js +22 -1
  33. package/plugins/map/LocateSupport.js +8 -1
  34. package/plugins/map/RedliningSupport.js +374 -224
  35. package/plugins/map/SnappingSupport.js +11 -6
  36. package/plugins/map/style/SnappingSupport.css +2 -13
  37. package/reducers/locate.js +4 -2
  38. package/reducers/redlining.js +7 -4
  39. package/scripts/updateTranslations.js +1 -1
  40. package/static/translations/bg-BG.json +15 -2
  41. package/static/translations/ca-ES.json +15 -2
  42. package/static/translations/cs-CZ.json +15 -2
  43. package/static/translations/de-CH.json +15 -2
  44. package/static/translations/de-DE.json +15 -2
  45. package/static/translations/en-US.json +15 -2
  46. package/static/translations/es-ES.json +15 -2
  47. package/static/translations/fi-FI.json +15 -2
  48. package/static/translations/fr-FR.json +15 -2
  49. package/static/translations/hu-HU.json +15 -2
  50. package/static/translations/it-IT.json +15 -2
  51. package/static/translations/ja-JP.json +15 -2
  52. package/static/translations/nl-NL.json +15 -2
  53. package/static/translations/no-NO.json +15 -2
  54. package/static/translations/pl-PL.json +15 -2
  55. package/static/translations/pt-BR.json +15 -2
  56. package/static/translations/pt-PT.json +15 -2
  57. package/static/translations/ro-RO.json +15 -2
  58. package/static/translations/ru-RU.json +15 -2
  59. package/static/translations/sv-SE.json +15 -2
  60. package/static/translations/tr-TR.json +15 -2
  61. package/static/translations/tsconfig.json +12 -2
  62. package/static/translations/uk-UA.json +15 -2
  63. package/utils/EditingInterface.js +18 -4
  64. package/utils/EditingUtils.js +3 -1
  65. package/utils/LayerUtils.js +16 -6
  66. package/utils/MiscUtils.js +65 -0
  67. package/utils/expr_grammar/grammar.js +104 -22
  68. package/utils/expr_grammar/grammar.ne +2 -0
  69. package/utils/expr_grammar/test.js +21 -4
@@ -29,7 +29,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
29
29
  */
30
30
 
31
31
  import React from 'react';
32
+ import ReactDOM from 'react-dom';
32
33
  import { connect } from 'react-redux';
34
+ import classNames from 'classnames';
33
35
  import isEmpty from 'lodash.isempty';
34
36
  import ol from 'openlayers';
35
37
  import PropTypes from 'prop-types';
@@ -37,6 +39,7 @@ import { v4 as uuidv4 } from 'uuid';
37
39
  import { LayerRole } from '../../actions/layers';
38
40
  import { setSnappingConfig } from '../../actions/map';
39
41
  import Icon from '../../components/Icon';
42
+ import { BottomToolPortalContext } from '../../components/PluginsContainer';
40
43
  import Spinner from '../../components/widgets/Spinner';
41
44
  import IdentifyUtils from '../../utils/IdentifyUtils';
42
45
  import LocaleUtils from '../../utils/LocaleUtils';
@@ -313,13 +316,14 @@ var SnappingSupport = /*#__PURE__*/function (_React$Component) {
313
316
  return null;
314
317
  }
315
318
  var disabled = !this.state.havesnaplayers || this.props.mapObj.snapping.active === false;
316
- var toolbarClass = disabled ? "snapping-toolbar-inactive" : "";
319
+ var className = classNames({
320
+ "snapping-toolbar": true,
321
+ "snapping-toolbar-inactive": disabled
322
+ });
317
323
  var snapEdge = this.snapToEdge(this.props.mapObj.snapping);
318
324
  var snapVertex = this.snapToVertex(this.props.mapObj.snapping);
319
- return /*#__PURE__*/React.createElement("div", {
320
- className: "snapping-toolbar-container"
321
- }, /*#__PURE__*/React.createElement("div", {
322
- className: toolbarClass
325
+ return /*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/React.createElement("div", {
326
+ className: className
323
327
  }, this.state.reqId !== null ? /*#__PURE__*/React.createElement(Spinner, null) : /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("button", {
324
328
  className: "button" + (snapVertex ? " pressed" : ""),
325
329
  onClick: function onClick() {
@@ -338,10 +342,11 @@ var SnappingSupport = /*#__PURE__*/function (_React$Component) {
338
342
  }, /*#__PURE__*/React.createElement(Icon, {
339
343
  icon: "snap_edge",
340
344
  size: "large"
341
- }))), "\xA0", this.state.reqId ? LocaleUtils.tr("snapping.loading") : LocaleUtils.tr("snapping.snappingenabled")));
345
+ }))), "\xA0", this.state.reqId ? LocaleUtils.tr("snapping.loading") : LocaleUtils.tr("snapping.snappingenabled")), this.context);
342
346
  }
343
347
  }]);
344
348
  }(React.Component);
349
+ _defineProperty(SnappingSupport, "contextType", BottomToolPortalContext);
345
350
  _defineProperty(SnappingSupport, "propTypes", {
346
351
  layers: PropTypes.array,
347
352
  map: PropTypes.object,
@@ -1,21 +1,10 @@
1
- div.snapping-toolbar-container {
2
- position: absolute;
3
- bottom: 2.25em;
4
- left: 0;
5
- right: 0;
6
- text-align: center;
7
- pointer-events: none;
8
- z-index: 3;
9
- }
10
-
11
- div.snapping-toolbar-container > div {
1
+ div.snapping-toolbar {
12
2
  display: inline-flex;
13
3
  align-items: center;
14
4
  line-height: 1.5em;
15
5
  position: relative;
16
- max-width: 95%;
17
- pointer-events: all;
18
6
  padding: 0.25em 0.5em;
7
+ order: 0;
19
8
  background-color: var(--container-bg-color);
20
9
  box-shadow: 0px -2px 4px rgba(136, 136, 136, 0.5);
21
10
  border-bottom: 1px solid rgba(136, 136, 136, 0.5);
@@ -16,7 +16,8 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
16
16
  import { CHANGE_LOCATE_STATE, CHANGE_LOCATE_POSITION, LOCATE_ERROR } from '../actions/locate';
17
17
  var defaultState = {
18
18
  state: "DISABLED",
19
- position: null
19
+ position: null,
20
+ mapPos: null
20
21
  };
21
22
  export default function locate() {
22
23
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
@@ -31,7 +32,8 @@ export default function locate() {
31
32
  case CHANGE_LOCATE_POSITION:
32
33
  {
33
34
  return _objectSpread(_objectSpread({}, state), {}, {
34
- position: action.position
35
+ position: action.position,
36
+ mapPos: action.mapPos
35
37
  });
36
38
  }
37
39
  case LOCATE_ERROR:
@@ -16,6 +16,7 @@ import { CHANGE_REDLINING_STATE, RESET_REDLINING_STATE } from '../actions/redlin
16
16
  var defaultState = {
17
17
  action: null,
18
18
  geomType: null,
19
+ format: null,
19
20
  style: {
20
21
  borderColor: [255, 0, 0, 1],
21
22
  fillColor: [255, 255, 255, 1],
@@ -31,7 +32,7 @@ var defaultState = {
31
32
  drawMultiple: true,
32
33
  freehand: false,
33
34
  measurements: false,
34
- numericInput: false,
35
+ extraAction: null,
35
36
  lenUnit: 'metric',
36
37
  areaUnit: 'metric'
37
38
  };
@@ -41,9 +42,11 @@ export default function redlining() {
41
42
  switch (action.type) {
42
43
  case CHANGE_REDLINING_STATE:
43
44
  {
44
- return _objectSpread(_objectSpread(_objectSpread({}, state), action.data), {}, {
45
- style: _objectSpread(_objectSpread({}, state.style), action.data.style)
46
- });
45
+ var newstate = _objectSpread(_objectSpread({}, state), action.data);
46
+ if (action.data.style) {
47
+ newstate.style = _objectSpread(_objectSpread({}, state.style), action.data.style);
48
+ }
49
+ return newstate;
47
50
  }
48
51
  case RESET_REDLINING_STATE:
49
52
  {
@@ -71,7 +71,7 @@ var _listDir = function listDir(dir, pattern) {
71
71
  var results = [];
72
72
  var list = fs.readdirSync(dir);
73
73
  list.forEach(function (file) {
74
- if (file === 'node_modules') {
74
+ if (file === 'node_modules' || file === 'dist') {
75
75
  return;
76
76
  }
77
77
  var path = dir + '/' + file;
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "",
25
25
  "MapFilter": "Филтър на картата",
26
26
  "MapLight3D": "Дата и час",
27
+ "ObjectList": "",
27
28
  "Print": "Отпечатване",
28
29
  "Reports": "Доклади",
29
30
  "Settings": "Настройки",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "",
138
139
  "cone": "Конус",
139
- "ctrlhint": "",
140
140
  "cuboid": "Кубоид",
141
141
  "cylinder": "Цилиндър",
142
142
  "delete": "Изтриване на",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "Направете снимка",
193
193
  "unsavedchanged": "Има неспасени промени. Искате ли все пак да напуснете страницата?"
194
194
  },
195
+ "featureattributes": {
196
+ "name": "",
197
+ "nofeatureormultiple": "",
198
+ "value": "",
199
+ "windowtitle": ""
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Функции",
197
203
  "noresults": "Няма резултати",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "Обобщен доклад",
246
252
  "clipboard": "Копиране в клипборда",
253
+ "compare": "",
247
254
  "comparing": "",
248
255
  "download": "Изтегляне",
249
256
  "export": "Експорт",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Позиция: разрешението е отказано"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "",
357
+ "stop": ""
358
+ },
348
359
  "map": {
349
360
  "loading": "Зареждане...",
350
361
  "resetrotation": "Нулиране на въртенето"
@@ -436,7 +447,7 @@
436
447
  "angle": "Ъгъл",
437
448
  "featureunsupported": "Цифровото въвеждане не е достъпно за тази геометрия",
438
449
  "height": "Височина",
439
- "nofeature": "Няма активна функция",
450
+ "nofeatureormultiple": "",
440
451
  "side": "Страна",
441
452
  "width": "Ширина",
442
453
  "windowtitle": "Цифрово въвеждане"
@@ -481,6 +492,7 @@
481
492
  "loading": "Зареждане на формуляра..."
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "",
484
496
  "buffer": "Буфер",
485
497
  "buffercompute": "Изчисляване",
486
498
  "bufferdistance": "Разстояние",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "Буфер",
489
501
  "bufferselectfeature": "Изберете функция, която да буферира...",
490
502
  "circle": "Кръг",
503
+ "ctrlhint": "",
491
504
  "delete": "Изтриване на",
492
505
  "draw": "Начертайте",
493
506
  "edit": "Редактиране на",
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "Exportar mapa",
25
25
  "MapFilter": "Filtre de mapa",
26
26
  "MapLight3D": "Llum i ombres",
27
+ "ObjectList": "",
27
28
  "Print": "Imprimir",
28
29
  "Reports": "Informes",
29
30
  "Settings": "Opcions",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "Clonar",
138
139
  "cone": "Con",
139
- "ctrlhint": "Utilitza Ctrl per a selecció múltiple...",
140
140
  "cuboid": "Cuboid",
141
141
  "cylinder": "Cilindre",
142
142
  "delete": "Eliminar",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "Escull imatge",
193
193
  "unsavedchanged": "Hi ha canvis sense guardar. Vols sortir de la pàgina sense guardar?"
194
194
  },
195
+ "featureattributes": {
196
+ "name": "",
197
+ "nofeatureormultiple": "",
198
+ "value": "",
199
+ "windowtitle": ""
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Element",
197
203
  "noresults": "Sense resultats",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "Informe agregat",
246
252
  "clipboard": "Copiar al porta-retalls",
253
+ "compare": "",
247
254
  "comparing": "",
248
255
  "download": "Descarregar",
249
256
  "export": "Exportar",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Permis denegat"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "",
357
+ "stop": ""
358
+ },
348
359
  "map": {
349
360
  "loading": "Carregant...",
350
361
  "resetrotation": "Reiniciar rotació"
@@ -436,7 +447,7 @@
436
447
  "angle": "Angle",
437
448
  "featureunsupported": "Entrada numèrica no disponible per a aquesta geometria",
438
449
  "height": "Alçada",
439
- "nofeature": "Sense element actiu",
450
+ "nofeatureormultiple": "",
440
451
  "side": "Costat",
441
452
  "width": "Amplada",
442
453
  "windowtitle": "Entrada numèrica"
@@ -481,6 +492,7 @@
481
492
  "loading": "Carregant formulari..."
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "",
484
496
  "buffer": "Buffer",
485
497
  "buffercompute": "Computar",
486
498
  "bufferdistance": "Distància",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "Capa de buffer",
489
501
  "bufferselectfeature": "Seleccioni un element para enmagatzemar en bufer",
490
502
  "circle": "Circle",
503
+ "ctrlhint": "",
491
504
  "delete": "Eliminar",
492
505
  "draw": "Dibuixar",
493
506
  "edit": "Editar",
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "",
25
25
  "MapFilter": "",
26
26
  "MapLight3D": "",
27
+ "ObjectList": "",
27
28
  "Print": "Tisk",
28
29
  "Reports": "",
29
30
  "Settings": "Nastavení",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "",
138
139
  "cone": "",
139
- "ctrlhint": "",
140
140
  "cuboid": "",
141
141
  "cylinder": "",
142
142
  "delete": "",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "",
193
193
  "unsavedchanged": ""
194
194
  },
195
+ "featureattributes": {
196
+ "name": "",
197
+ "nofeatureormultiple": "",
198
+ "value": "",
199
+ "windowtitle": ""
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Prvek",
197
203
  "noresults": "Žádné výsledky",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "",
246
252
  "clipboard": "Zkopírovat do schránky",
253
+ "compare": "",
247
254
  "comparing": "",
248
255
  "download": "",
249
256
  "export": "Exportovat",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Poloha: nepovoleno"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "",
357
+ "stop": ""
358
+ },
348
359
  "map": {
349
360
  "loading": "Načítání...",
350
361
  "resetrotation": "Obnovit orientaci mapy"
@@ -436,7 +447,7 @@
436
447
  "angle": "",
437
448
  "featureunsupported": "",
438
449
  "height": "",
439
- "nofeature": "",
450
+ "nofeatureormultiple": "",
440
451
  "side": "",
441
452
  "width": "",
442
453
  "windowtitle": ""
@@ -481,6 +492,7 @@
481
492
  "loading": ""
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "",
484
496
  "buffer": "",
485
497
  "buffercompute": "",
486
498
  "bufferdistance": "",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "",
489
501
  "bufferselectfeature": "",
490
502
  "circle": "",
503
+ "ctrlhint": "",
491
504
  "delete": "",
492
505
  "draw": "",
493
506
  "edit": "",
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "Karte exportieren",
25
25
  "MapFilter": "Kartenfilter",
26
26
  "MapLight3D": "Beleuchtung und Schatten",
27
+ "ObjectList": "Objektliste",
27
28
  "Print": "Drucken",
28
29
  "Reports": "Berichte",
29
30
  "Settings": "Einstellungen",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "Kopieren",
138
139
  "cone": "Kegel",
139
- "ctrlhint": "Mehrfachselektion mit Ctrl...",
140
140
  "cuboid": "Quader",
141
141
  "cylinder": "Zylinder",
142
142
  "delete": "Löschen",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "Bild schiessen",
193
193
  "unsavedchanged": "Es gibt nicht gespeicherte Änderungen. Soll die Seite trotzdem verlassen werden?"
194
194
  },
195
+ "featureattributes": {
196
+ "name": "Name",
197
+ "nofeatureormultiple": "Kein oder mehrere Objekte aktiv",
198
+ "value": "Wert",
199
+ "windowtitle": "Objektattribute"
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Objekt",
197
203
  "noresults": "Keine Ergebnisse",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "Aggregierter Bericht",
246
252
  "clipboard": "Nach Zwischenablage kopieren",
253
+ "compare": "Selektierte Objekte vergleichen",
247
254
  "comparing": "Vergleich von {0} Objekte",
248
255
  "download": "Herunterladen",
249
256
  "export": "Exportieren",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Position: Zugriff verweigert"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "Position aufzeichen",
357
+ "stop": "Aufzeichnung stoppen"
358
+ },
348
359
  "map": {
349
360
  "loading": "Karte wird geladen...",
350
361
  "resetrotation": "Drehung zurücksetzen"
@@ -436,7 +447,7 @@
436
447
  "angle": "Winkel",
437
448
  "featureunsupported": "Numerische Eingabe nicht verfügbar für dieses Objekt",
438
449
  "height": "Höhe",
439
- "nofeature": "Kein Objekt aktiv",
450
+ "nofeatureormultiple": "Kein oder mehrere Objekte aktiv",
440
451
  "side": "Seite",
441
452
  "width": "Breite",
442
453
  "windowtitle": "Numerische Eingabe"
@@ -481,6 +492,7 @@
481
492
  "loading": "Formular wird geladen..."
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "Objektattribute",
484
496
  "buffer": "Puffern",
485
497
  "buffercompute": "Berechnen",
486
498
  "bufferdistance": "Distanz",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "Objektpuffer",
489
501
  "bufferselectfeature": "Zu pufferndes Objekt auswählen...",
490
502
  "circle": "Kreis",
503
+ "ctrlhint": "Mehrfachselektion mit Ctrl...",
491
504
  "delete": "Löschen",
492
505
  "draw": "Zeichnen",
493
506
  "edit": "Bearbeiten",
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "Karte exportieren",
25
25
  "MapFilter": "Kartenfilter",
26
26
  "MapLight3D": "Beleuchtung und Schatten",
27
+ "ObjectList": "Objektliste",
27
28
  "Print": "Drucken",
28
29
  "Reports": "Berichte",
29
30
  "Settings": "Einstellungen",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "Kopieren",
138
139
  "cone": "Kegel",
139
- "ctrlhint": "Mehrfachselektion mit Ctrl...",
140
140
  "cuboid": "Quader",
141
141
  "cylinder": "Zylinder",
142
142
  "delete": "Löschen",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "Bild schießen",
193
193
  "unsavedchanged": "Es gibt nicht gespeicherte Änderungen. Soll die Seite trotzdem verlassen werden?"
194
194
  },
195
+ "featureattributes": {
196
+ "name": "Name",
197
+ "nofeatureormultiple": "Kein oder mehrere Objekte aktiv",
198
+ "value": "Wert",
199
+ "windowtitle": "Objektattribute"
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Objekt",
197
203
  "noresults": "Keine Ergebnisse",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "Aggregierter Bericht",
246
252
  "clipboard": "Nach Zwischenablage kopieren",
253
+ "compare": "Selektierte Objekte vergleichen",
247
254
  "comparing": "Vergleich von {0} Objekte",
248
255
  "download": "Herunterladen",
249
256
  "export": "Exportieren",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Position: Zugriff verweigert"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "Position aufzeichen",
357
+ "stop": "Aufzeichnung stoppen"
358
+ },
348
359
  "map": {
349
360
  "loading": "Karte wird geladen...",
350
361
  "resetrotation": "Drehung zurücksetzen"
@@ -436,7 +447,7 @@
436
447
  "angle": "Winkel",
437
448
  "featureunsupported": "Numerische Eingabe nicht verfügbar für dieses Objekt",
438
449
  "height": "Höhe",
439
- "nofeature": "Kein Objekt aktiv",
450
+ "nofeatureormultiple": "Kein oder mehrere Objekte aktiv",
440
451
  "side": "Seite",
441
452
  "width": "Breite",
442
453
  "windowtitle": "Numerische Eingabe"
@@ -481,6 +492,7 @@
481
492
  "loading": "Formular wird geladen..."
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "Objektattribute",
484
496
  "buffer": "Puffern",
485
497
  "buffercompute": "Berechnen",
486
498
  "bufferdistance": "Distanz",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "Objektpuffer",
489
501
  "bufferselectfeature": "Zu pufferndes Objekt auswählen...",
490
502
  "circle": "Kreis",
503
+ "ctrlhint": "Mehrfachselektion mit Ctrl...",
491
504
  "delete": "Löschen",
492
505
  "draw": "Zeichnen",
493
506
  "edit": "Bearbeiten",
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "Export Map",
25
25
  "MapFilter": "Map Filter",
26
26
  "MapLight3D": "Light and Shadows",
27
+ "ObjectList": "Object list",
27
28
  "Print": "Print",
28
29
  "Reports": "Reports",
29
30
  "Settings": "Settings",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "Clone",
138
139
  "cone": "Cone",
139
- "ctrlhint": "Use Ctrl for multiselection...",
140
140
  "cuboid": "Cuboid",
141
141
  "cylinder": "Cylinder",
142
142
  "delete": "Delete",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "Take picture",
193
193
  "unsavedchanged": "There are unsaved changes. Do you want to leave the page anyway?"
194
194
  },
195
+ "featureattributes": {
196
+ "name": "Name",
197
+ "nofeatureormultiple": "No or multiple active features",
198
+ "value": "Value",
199
+ "windowtitle": "Feature attributes"
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Feature",
197
203
  "noresults": "No results",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "Aggregated report",
246
252
  "clipboard": "Copy to clipboard",
253
+ "compare": "Compare selected objects",
247
254
  "comparing": "Comparing {0} features",
248
255
  "download": "Download",
249
256
  "export": "Export",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Position: permission denied"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "Record location",
357
+ "stop": "Stop recording"
358
+ },
348
359
  "map": {
349
360
  "loading": "Loading...",
350
361
  "resetrotation": "Reset rotation"
@@ -436,7 +447,7 @@
436
447
  "angle": "Angle",
437
448
  "featureunsupported": "Numeric input unavailable for this geometry",
438
449
  "height": "Height",
439
- "nofeature": "No active feature",
450
+ "nofeatureormultiple": "",
440
451
  "side": "Side",
441
452
  "width": "Width",
442
453
  "windowtitle": "Numeric input"
@@ -481,6 +492,7 @@
481
492
  "loading": "Loading form..."
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "Feature attributes",
484
496
  "buffer": "Buffer",
485
497
  "buffercompute": "Compute",
486
498
  "bufferdistance": "Distance",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "Buffer",
489
501
  "bufferselectfeature": "Select a feature to buffer...",
490
502
  "circle": "Circle",
503
+ "ctrlhint": "Use Ctrl for multiselection...",
491
504
  "delete": "Delete",
492
505
  "draw": "Draw",
493
506
  "edit": "Edit",
@@ -24,6 +24,7 @@
24
24
  "MapExport3D": "Exportar mapa",
25
25
  "MapFilter": "Filtro de mapa",
26
26
  "MapLight3D": "Luz y sombras",
27
+ "ObjectList": "",
27
28
  "Print": "Imprimir",
28
29
  "Reports": "Informes",
29
30
  "Settings": "Opciones",
@@ -136,7 +137,6 @@
136
137
  "draw3d": {
137
138
  "clone": "Clonar",
138
139
  "cone": "Cono",
139
- "ctrlhint": "Usa Ctrl para selección múltiple...",
140
140
  "cuboid": "Cuboide",
141
141
  "cylinder": "Cilindro",
142
142
  "delete": "Eliminar",
@@ -192,6 +192,12 @@
192
192
  "takepicture": "Tomar fotografía",
193
193
  "unsavedchanged": "Hay cambios sin guardar. Quieres salir de la página sin guardar?"
194
194
  },
195
+ "featureattributes": {
196
+ "name": "",
197
+ "nofeatureormultiple": "",
198
+ "value": "",
199
+ "windowtitle": ""
200
+ },
195
201
  "featureform": {
196
202
  "feature": "Elemento",
197
203
  "noresults": "Sin resultados",
@@ -244,6 +250,7 @@
244
250
  "identify": {
245
251
  "aggregatedreport": "Informe agregado",
246
252
  "clipboard": "Copiar al portapapeles",
253
+ "compare": "",
247
254
  "comparing": "",
248
255
  "download": "Descargar",
249
256
  "export": "Exportar",
@@ -345,6 +352,10 @@
345
352
  "PERMISSION_DENIED": "Posición: permiso denegado"
346
353
  }
347
354
  },
355
+ "locationrecorder": {
356
+ "record": "",
357
+ "stop": ""
358
+ },
348
359
  "map": {
349
360
  "loading": "Cargando...",
350
361
  "resetrotation": "Reiniciar rotación"
@@ -436,7 +447,7 @@
436
447
  "angle": "Ángulo",
437
448
  "featureunsupported": "Entrada numérica no disponible para esta geometría",
438
449
  "height": "Altura",
439
- "nofeature": "Sin elemento activo",
450
+ "nofeatureormultiple": "",
440
451
  "side": "Lado",
441
452
  "width": "Ancho",
442
453
  "windowtitle": "Entrada numérica"
@@ -481,6 +492,7 @@
481
492
  "loading": "Cargando formulario..."
482
493
  },
483
494
  "redlining": {
495
+ "attributes": "",
484
496
  "buffer": "Bufer",
485
497
  "buffercompute": "Computar",
486
498
  "bufferdistance": "Distancia",
@@ -488,6 +500,7 @@
488
500
  "bufferlayername": "Bufer",
489
501
  "bufferselectfeature": "Seleccione un elemento para almacenar en bufer",
490
502
  "circle": "Círculo",
503
+ "ctrlhint": "",
491
504
  "delete": "Eliminar",
492
505
  "draw": "Dibujar",
493
506
  "edit": "Editar",