qwc2 2025.9.23 → 2025.10.2

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 (66) hide show
  1. package/components/AttributeForm.js +3 -3
  2. package/components/AttributeTableWidget.js +1 -1
  3. package/components/EditUploadField.js +1 -1
  4. package/components/IdentifyViewer.js +5 -5
  5. package/components/PickFeature.js +1 -1
  6. package/components/QtDesignerForm.js +2 -2
  7. package/components/ResizeableWindow.js +2 -2
  8. package/components/SearchBox.js +2 -2
  9. package/components/StandardApp.js +2 -2
  10. package/components/map3d/ImportObjects3D.js +1 -1
  11. package/components/widgets/EditableSelect.js +1 -1
  12. package/components/widgets/SearchWidget.js +1 -1
  13. package/components/widgets/SuggestionInput.js +1 -1
  14. package/package.json +2 -1
  15. package/plugins/AttributeTable.js +1 -1
  16. package/plugins/Editing.js +2 -2
  17. package/plugins/FeatureSearch.js +2 -2
  18. package/plugins/GeometryDigitizer.js +1 -1
  19. package/plugins/HeightProfile.js +2 -2
  20. package/plugins/LayerTree.js +1 -1
  21. package/plugins/Map.js +1 -1
  22. package/plugins/MapFilter.js +3 -3
  23. package/plugins/MapTip.js +2 -2
  24. package/plugins/OverviewMap.js +2 -2
  25. package/plugins/Routing.js +4 -4
  26. package/plugins/ScratchDrawing.js +2 -2
  27. package/plugins/TimeManager.js +2 -2
  28. package/plugins/TopBar.js +1 -1
  29. package/plugins/ValueTool.js +2 -2
  30. package/plugins/View3D.js +2 -2
  31. package/plugins/map/SnappingSupport.js +2 -2
  32. package/resources/arrow.glb +0 -0
  33. package/resources/person.png +0 -0
  34. package/resources/person.svg +45 -0
  35. package/resources/pin.glb +0 -0
  36. package/resources/viewcone.svg +124 -0
  37. package/scripts/dist.sh +2 -0
  38. package/scripts/themesConfig.js +1 -1
  39. package/static/translations/bg-BG.json +2 -0
  40. package/static/translations/ca-ES.json +2 -0
  41. package/static/translations/cs-CZ.json +2 -0
  42. package/static/translations/de-CH.json +2 -0
  43. package/static/translations/de-DE.json +2 -0
  44. package/static/translations/en-US.json +2 -0
  45. package/static/translations/es-ES.json +2 -0
  46. package/static/translations/fi-FI.json +2 -0
  47. package/static/translations/fr-FR.json +2 -0
  48. package/static/translations/hu-HU.json +2 -0
  49. package/static/translations/it-IT.json +2 -0
  50. package/static/translations/ja-JP.json +2 -0
  51. package/static/translations/nl-NL.json +2 -0
  52. package/static/translations/no-NO.json +2 -0
  53. package/static/translations/pl-PL.json +2 -0
  54. package/static/translations/pt-BR.json +2 -0
  55. package/static/translations/pt-PT.json +2 -0
  56. package/static/translations/ro-RO.json +2 -0
  57. package/static/translations/ru-RU.json +2 -0
  58. package/static/translations/sv-SE.json +2 -0
  59. package/static/translations/tr-TR.json +2 -0
  60. package/static/translations/tsconfig.json +2 -0
  61. package/static/translations/uk-UA.json +2 -0
  62. package/utils/CoordinatesUtils.js +2 -2
  63. package/utils/IdentifyUtils.js +2 -2
  64. package/utils/LayerUtils.js +1 -1
  65. package/utils/RoutingInterface.js +2 -2
  66. package/utils/VectorLayerUtils.js +3 -3
@@ -0,0 +1,124 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="32"
6
+ height="32"
7
+ viewBox="0 0 8.4666665 8.4666663"
8
+ version="1.1"
9
+ id="svg1"
10
+ inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
11
+ sodipodi:docname="viewcone.svg"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14
+ xmlns:xlink="http://www.w3.org/1999/xlink"
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ xmlns:svg="http://www.w3.org/2000/svg">
17
+ <sodipodi:namedview
18
+ id="namedview1"
19
+ pagecolor="#ffffff"
20
+ bordercolor="#666666"
21
+ borderopacity="1.0"
22
+ inkscape:showpageshadow="2"
23
+ inkscape:pageopacity="0.0"
24
+ inkscape:pagecheckerboard="0"
25
+ inkscape:deskcolor="#d1d1d1"
26
+ inkscape:document-units="mm"
27
+ showgrid="true"
28
+ inkscape:zoom="26.084066"
29
+ inkscape:cx="14.089061"
30
+ inkscape:cy="15.929265"
31
+ inkscape:window-width="1920"
32
+ inkscape:window-height="1172"
33
+ inkscape:window-x="0"
34
+ inkscape:window-y="0"
35
+ inkscape:window-maximized="1"
36
+ inkscape:current-layer="layer1">
37
+ <inkscape:grid
38
+ id="grid1"
39
+ units="px"
40
+ originx="0"
41
+ originy="0"
42
+ spacingx="0.26458333"
43
+ spacingy="0.26458334"
44
+ empcolor="#0099e5"
45
+ empopacity="0.30196078"
46
+ color="#0099e5"
47
+ opacity="0.14901961"
48
+ empspacing="5"
49
+ dotted="false"
50
+ gridanglex="30"
51
+ gridanglez="30"
52
+ visible="true" />
53
+ </sodipodi:namedview>
54
+ <defs
55
+ id="defs1">
56
+ <linearGradient
57
+ id="linearGradient3"
58
+ inkscape:collect="always">
59
+ <stop
60
+ style="stop-color:#ff0000;stop-opacity:1;"
61
+ offset="0"
62
+ id="stop3" />
63
+ <stop
64
+ style="stop-color:#000000;stop-opacity:0;"
65
+ offset="1"
66
+ id="stop4" />
67
+ </linearGradient>
68
+ <linearGradient
69
+ id="linearGradient1"
70
+ inkscape:collect="always">
71
+ <stop
72
+ style="stop-color:#ff0000;stop-opacity:1;"
73
+ offset="0"
74
+ id="stop1" />
75
+ <stop
76
+ style="stop-color:#000000;stop-opacity:0;"
77
+ offset="1"
78
+ id="stop2" />
79
+ </linearGradient>
80
+ <linearGradient
81
+ inkscape:collect="always"
82
+ xlink:href="#linearGradient1"
83
+ id="linearGradient2"
84
+ x1="179.91667"
85
+ y1="162.89131"
86
+ x2="179.91672"
87
+ y2="141.63925"
88
+ gradientUnits="userSpaceOnUse"
89
+ gradientTransform="matrix(0.06962172,0,0,0.12996055,47.319103,94.305006)" />
90
+ <linearGradient
91
+ inkscape:collect="always"
92
+ xlink:href="#linearGradient3"
93
+ id="linearGradient4"
94
+ x1="59.845215"
95
+ y1="116.68127"
96
+ x2="59.845215"
97
+ y2="112.71252"
98
+ gradientUnits="userSpaceOnUse"
99
+ gradientTransform="translate(3.8828532e-7)" />
100
+ </defs>
101
+ <g
102
+ inkscape:label="Layer 1"
103
+ inkscape:groupmode="layer"
104
+ id="layer1"
105
+ transform="translate(-55.611881,-111.12502)">
106
+ <path
107
+ style="opacity:0.65;fill:url(#linearGradient2);fill-opacity:1;stroke:none;stroke-width:0.0629188;stroke-linecap:round;stroke-opacity:1"
108
+ id="path1"
109
+ sodipodi:type="arc"
110
+ sodipodi:cx="59.845215"
111
+ sodipodi:cy="119.06251"
112
+ sodipodi:rx="5.5262241"
113
+ sodipodi:ry="10.315619"
114
+ sodipodi:start="3.8397244"
115
+ sodipodi:end="5.5850536"
116
+ sodipodi:arc-type="slice"
117
+ d="m 55.611882,112.43175 a 5.5262241,10.315619 0 0 1 4.233333,-3.68486 5.5262241,10.315619 0 0 1 4.233333,3.68487 l -4.233333,6.63075 z" />
118
+ <path
119
+ style="fill:none;stroke:url(#linearGradient4);stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none"
120
+ d="m 55.611881,112.71252 4.233333,6.61458 4.233333,-6.61459"
121
+ id="path2"
122
+ sodipodi:nodetypes="ccc" />
123
+ </g>
124
+ </svg>
package/scripts/dist.sh CHANGED
@@ -9,7 +9,9 @@ npx babel $dir --copy-files --out-dir dist/$dir --extensions ".js,.jsx" --minifi
9
9
  done
10
10
  mkdir -p dist/static/translations
11
11
  mkdir -p dist/icons
12
+ mkdir -p dist/resources
12
13
  cp -a icons/*.svg dist/icons/
14
+ cp -a resources/* dist/resources/
13
15
  cp -a static/translations/*.json dist/static/translations/
14
16
  cp -a package.json dist/
15
17
  cp -a LICENSE dist/
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * This source code is licensed under the BSD-style license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
- */function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}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}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}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}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}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)}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}}}}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}}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}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)}var urlUtil=require("url");var axios=require("axios");var XMLParser=require("fast-xml-parser").XMLParser;var fs=require("fs");var path=require("path");var objectPath=require("object-path");var isEmpty=require("lodash.isempty");var uuidv1=require("uuid").v1;var os=require("os");var dns=require("dns");var _dns$promises=dns.promises,lookup=_dns$promises.lookup,lookupService=_dns$promises.lookupService;var hostFqdn="";var themesConfigPath=process.env.QWC2_THEMES_CONFIG||"static/themesConfig.json";var usedThemeIds=[];var autogenExternalLayers=[];function uniqueThemeId(themeName){if(!themeName){return uuidv1()}if(usedThemeIds.includes(themeName)){var i=1;for(;usedThemeIds.includes(themeName+i);++i);usedThemeIds.push(themeName+i);return themeName+i}else{usedThemeIds.push(themeName);return themeName}}// load thumbnail from file or GetMap
8
+ */function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}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}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}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}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}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)}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}}}}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}}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}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)}var urlUtil=require("url");var axios=require("axios");var XMLParser=require("fast-xml-parser").XMLParser;var fs=require("fs");var path=require("path");var objectPath=require("object-path");var isEmpty=require("lodash.isempty");var uuidv4=require("uuid").v1;var os=require("os");var dns=require("dns");var _dns$promises=dns.promises,lookup=_dns$promises.lookup,lookupService=_dns$promises.lookupService;var hostFqdn="";var themesConfigPath=process.env.QWC2_THEMES_CONFIG||"static/themesConfig.json";var usedThemeIds=[];var autogenExternalLayers=[];function uniqueThemeId(themeName){if(!themeName){return uuidv4()}if(usedThemeIds.includes(themeName)){var i=1;for(;usedThemeIds.includes(themeName+i);++i);usedThemeIds.push(themeName+i);return themeName+i}else{usedThemeIds.push(themeName);return themeName}}// load thumbnail from file or GetMap
9
9
  function getThumbnail(configItem,resultItem,layers,crs,extent,resolve,proxy){if(configItem.thumbnail!==undefined){// check if thumbnail can be read
10
10
  if(fs.existsSync("./static/assets/img/mapthumbs/"+configItem.thumbnail)){resultItem.thumbnail="img/mapthumbs/"+configItem.thumbnail;// finish task
11
11
  resolve(true);return}}/* eslint-disable-next-line */console.error("Using WMS GetMap to generate thumbnail for "+configItem.url);// WMS GetMap request
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Не може да се намери фонът \"{0}\", показва се фонът по подразбиране.",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "Не мога да намеря следните слоеве: {0}.",
7
8
  "missingpermalink": "Посоченият пермалък или маркер е невалиден или е изтекъл.",
8
9
  "missingprojection": "Невъзможно е да се зареди темата \"{0}\": проекцията {1} не е дефинирана.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Добавяне на точка",
522
+ "addlayer": "",
521
523
  "addviapoint": "Чрез тук",
522
524
  "arriveat": "Пристигнете в",
523
525
  "clear": "Clear",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "No s'ha pogut trobar el fons \"{0}\", es mostra el fons per defecte.",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "No s'han pogut trobar les següents capes: {0}.",
7
8
  "missingpermalink": "L'enllaç permanent o marcador especificat no és vàlid o ha caducat.",
8
9
  "missingprojection": "No s'ha pogut carregar el tema \"{0}\": la projecció {1} no està definida.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Afegir punt",
522
+ "addlayer": "",
521
523
  "addviapoint": "Passar per aquí",
522
524
  "arriveat": "Arribar a",
523
525
  "clear": "Netejar",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "Přes tento bod",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Der Hintergrund \"{0}\" konnte nicht gefunden werden, der Standardhintergrund wird angezeigt.",
6
+ "missingdefaulttheme": "Das Standardthema konnte nicht geladen werden.",
6
7
  "missinglayers": "Die folgenden Ebenen können nicht gefunden werden: {0}.",
7
8
  "missingpermalink": "Der Permalink oder das Lesezeichen ist ungültig oder abgelaufen.",
8
9
  "missingprojection": "Das Thema \"{0}\" konnte nicht geladen werden: die Projektion {1} ist nicht definiert.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Hinzufügen",
522
+ "addlayer": "Als Ebene exportieren",
521
523
  "addviapoint": "Routenpunkt hinzufügen",
522
524
  "arriveat": "Ankunft bis",
523
525
  "clear": "Zurücksetzen",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Der Hintergrund \"{0}\" konnte nicht gefunden werden, der Standardhintergrund wird angezeigt.",
6
+ "missingdefaulttheme": "Das Standardthema konnte nicht geladen werden.",
6
7
  "missinglayers": "Die folgenden Ebenen können nicht gefunden werden: {0}.",
7
8
  "missingpermalink": "Der Permalink oder das Lesezeichen ist ungültig oder abgelaufen.",
8
9
  "missingprojection": "Das Thema \"{0}\" konnte nicht geladen werden: die Projektion {1} ist nicht definiert.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Hinzufügen",
522
+ "addlayer": "Als Ebene exportieren",
521
523
  "addviapoint": "Über hier",
522
524
  "arriveat": "Ankunft bis",
523
525
  "clear": "Zurücksetzen",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Unable to find the background \"{0}\", displaying the default background.",
6
+ "missingdefaulttheme": "Unable to load the default theme.",
6
7
  "missinglayers": "Unable to find the following layers: {0}.",
7
8
  "missingpermalink": "The specified permalink or bookmark is invalid or expired.",
8
9
  "missingprojection": "Unable to load the theme \"{0}\": the projection {1} is not defined.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Add point",
522
+ "addlayer": "Export as layer",
521
523
  "addviapoint": "Via here",
522
524
  "arriveat": "Arrive at",
523
525
  "clear": "Clear",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "No se pudo encontrar el fondo \"{0}\", mostrando el fondo predeterminado.",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "No se pudieron encontrar las siguientes capas: {0}.",
7
8
  "missingpermalink": "El enlace permanente o marcador especificado es inválido o ha expirado.",
8
9
  "missingprojection": "No se pudo cargar el tema \"{0}\": la proyección {1} no está definida.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Añadir punto",
522
+ "addlayer": "",
521
523
  "addviapoint": "Pasar por aquí",
522
524
  "arriveat": "Llegar a",
523
525
  "clear": "Limpiar",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Impossible de trouver le fond \"{0}\", affichage du fond par défaut.",
6
+ "missingdefaulttheme": "Le thème par défaut n'a pas pu être chargé.",
6
7
  "missinglayers": "Impossible de trouver les couches suivantes: {0}.",
7
8
  "missingpermalink": "Le permalien ou le signet n'est pas valide ou a expiré.",
8
9
  "missingprojection": "Impossible de charger le thème \"{0}\": la projection {1} n'est pas définie.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Ajouter",
522
+ "addlayer": "Exporter en couche",
521
523
  "addviapoint": "Par ici",
522
524
  "arriveat": "Arriver à",
523
525
  "clear": "Réinitialiser",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Impossibile trovare lo sfondo \"{0}\", viene visualizzato lo sfondo predefinito.",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "Impossibile trovare i seguenti livelli: {0}.",
7
8
  "missingpermalink": "Il permalink o il segnalibro non è valido o è scaduto.",
8
9
  "missingprojection": "Impossibile caricare il tema \"{0}\": la proiezione {1} non è definita.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Aggiungi",
522
+ "addlayer": "Esporta a livello",
521
523
  "addviapoint": "Via qui",
522
524
  "arriveat": "Arrivo il",
523
525
  "clear": "Azzera",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "背景が見付かりません \"{0}\", デフォルトの背景を表示します。",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "以下のレイヤが見付かりません: {0}。",
7
8
  "missingpermalink": "指定された永続リンクは無効または期限切れです。",
8
9
  "missingprojection": "テーマをロード出来ません \"{0}\": 投影法 {1} は定義されていません。",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "点を追加",
522
+ "addlayer": "",
521
523
  "addviapoint": "ここを経由",
522
524
  "arriveat": "目的地点",
523
525
  "clear": "クリア",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Kan de achtergrond \"{0}\" niet vinden, Standaard achtergrond wordt weergegeven.",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "Kan de volgende lagen niet vinden: {0}.",
7
8
  "missingpermalink": "De opgegeven permalink of bladwijzer is ongeldig of verlopen.",
8
9
  "missingprojection": "Kan de kaart \"{0}\": de projectie {1} is niet gedefinieerd.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Punt toevoegen",
522
+ "addlayer": "",
521
523
  "addviapoint": "Via hier",
522
524
  "arriveat": "Aankomen om",
523
525
  "clear": "Wissen",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Faltando fundo",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "Faltando camadas",
7
8
  "missingpermalink": "Faltando link permanente",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Adcionar",
522
+ "addlayer": "",
521
523
  "addviapoint": "Adicionar ponto de via",
522
524
  "arriveat": "Chegada",
523
525
  "clear": "Limpar",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Fundo em falta",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "Camadas em falta",
7
8
  "missingpermalink": "Permalink em falta",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Adicionar",
522
+ "addlayer": "",
521
523
  "addviapoint": "Adicionar ponto de passagem",
522
524
  "arriveat": "Chegar a",
523
525
  "clear": "Limpar",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Adaugă punct",
522
+ "addlayer": "",
521
523
  "addviapoint": "Punct intermediar",
522
524
  "arriveat": "Punct de sosire",
523
525
  "clear": "Curățare",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "Arkaplan bulunamadı \"{0}\", varsayılan arkaplan gösteriliyor.",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "Bu katmanlar bulunamıyor: {0}.",
7
8
  "missingpermalink": "Belirtilen yer işareti ya da bağlantı geçerli değil.",
8
9
  "missingprojection": "Tema yüklenemedi \"{0}\": projeksiyon {1} tanımlı değil.",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "Nokta ekle",
522
+ "addlayer": "",
521
523
  "addviapoint": "Burası üzerinden",
522
524
  "arriveat": "Varış noktası",
523
525
  "clear": "Temizle",
@@ -61,6 +61,7 @@
61
61
  ],
62
62
  "strings": [
63
63
  "app.missingbg",
64
+ "app.missingdefaulttheme",
64
65
  "app.missinglayers",
65
66
  "app.missingpermalink",
66
67
  "app.missingprojection",
@@ -446,6 +447,7 @@
446
447
  "reports.region",
447
448
  "reports.selectlayer",
448
449
  "routing.add",
450
+ "routing.addlayer",
449
451
  "routing.addviapoint",
450
452
  "routing.arriveat",
451
453
  "routing.clear",
@@ -3,6 +3,7 @@
3
3
  "messages": {
4
4
  "app": {
5
5
  "missingbg": "",
6
+ "missingdefaulttheme": "",
6
7
  "missinglayers": "",
7
8
  "missingpermalink": "",
8
9
  "missingprojection": "",
@@ -518,6 +519,7 @@
518
519
  },
519
520
  "routing": {
520
521
  "add": "",
522
+ "addlayer": "",
521
523
  "addviapoint": "",
522
524
  "arriveat": "",
523
525
  "clear": "",
@@ -5,7 +5,7 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
5
5
  *
6
6
  * This source code is licensed under the BSD-style license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
- */import ol from"openlayers";import Proj4js from"proj4";import ConfigUtils from"./ConfigUtils";import LocaleUtils from"./LocaleUtils";var crsLabels={"EPSG:4326":"WGS 84","EPSG:3857":"WGS 84 / Pseudo Mercator"};var CoordinatesUtils={setCrsLabels:function setCrsLabels(labels){Object.assign(crsLabels,labels)},getAvailableCRS:function getAvailableCRS(){var crsList={};for(var a in Proj4js.defs){if(Object.prototype.hasOwnProperty.call(Proj4js.defs,a)){crsList[a]={label:crsLabels[a]||a}}}return crsList},getUnits:function getUnits(projection){var proj=ol.proj.get(projection);return proj.getUnits()||"degrees"},getPrecision:function getPrecision(projection){var _precisions$projectio;var precisions=ConfigUtils.getConfigProp("projections").reduce(function(res,entry){var _entry$precision;return _objectSpread(_objectSpread({},res),{},_defineProperty({},entry.code,(_entry$precision=entry.precision)!==null&&_entry$precision!==void 0?_entry$precision:0))},{});return(_precisions$projectio=precisions[projection])!==null&&_precisions$projectio!==void 0?_precisions$projectio:CoordinatesUtils.getUnits(projection)==="degrees"?4:0},getProjectionConfig:function getProjectionConfig(projection){var _config$projection;var config=ConfigUtils.getConfigProp("projections").reduce(function(res,entry){var _entry$format,_entry$addDirection,_entry$swapLonLat;res[entry.code]={format:(_entry$format=entry.format)!==null&&_entry$format!==void 0?_entry$format:"decimal",addDirection:(_entry$addDirection=entry.addDirection)!==null&&_entry$addDirection!==void 0?_entry$addDirection:"none",swapLonLat:(_entry$swapLonLat=entry.swapLonLat)!==null&&_entry$swapLonLat!==void 0?_entry$swapLonLat:false};return res},{});return(_config$projection=config[projection])!==null&&_config$projection!==void 0?_config$projection:{format:"decimal",addDirection:"none",swapLonLat:false}},getAxisOrder:function getAxisOrder(projection){var axis=ol.proj.get(projection).getAxisOrientation();return axis||"enu"},reproject:function reproject(point,source,dest){if(source===dest){return _toConsumableArray(point)}if(source&&dest){var transformed=null;try{transformed=ol.proj.transform(point,source,dest)}catch(e){transformed=[0,0]}return transformed}return null},/**
8
+ */import ol from"openlayers";import Proj4js from"proj4";import ConfigUtils from"./ConfigUtils";import LocaleUtils from"./LocaleUtils";var crsLabels={"EPSG:4326":"WGS 84","EPSG:3857":"WGS 84 / Pseudo Mercator"};var commonEsriWktLookup={"EPSG:4326":"GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]]","EPSG:3857":"PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0.0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0]]"};var CoordinatesUtils={setCrsLabels:function setCrsLabels(labels){Object.assign(crsLabels,labels)},getAvailableCRS:function getAvailableCRS(){var crsList={};for(var a in Proj4js.defs){if(Object.prototype.hasOwnProperty.call(Proj4js.defs,a)){crsList[a]={label:crsLabels[a]||a}}}return crsList},getUnits:function getUnits(projection){var proj=ol.proj.get(projection);return proj.getUnits()||"degrees"},getPrecision:function getPrecision(projection){var _precisions$projectio;var precisions=ConfigUtils.getConfigProp("projections").reduce(function(res,entry){var _entry$precision;return _objectSpread(_objectSpread({},res),{},_defineProperty({},entry.code,(_entry$precision=entry.precision)!==null&&_entry$precision!==void 0?_entry$precision:0))},{});return(_precisions$projectio=precisions[projection])!==null&&_precisions$projectio!==void 0?_precisions$projectio:CoordinatesUtils.getUnits(projection)==="degrees"?4:0},getProjectionConfig:function getProjectionConfig(projection){var _config$projection;var config=ConfigUtils.getConfigProp("projections").reduce(function(res,entry){var _entry$format,_entry$addDirection,_entry$swapLonLat;res[entry.code]={format:(_entry$format=entry.format)!==null&&_entry$format!==void 0?_entry$format:"decimal",addDirection:(_entry$addDirection=entry.addDirection)!==null&&_entry$addDirection!==void 0?_entry$addDirection:"none",swapLonLat:(_entry$swapLonLat=entry.swapLonLat)!==null&&_entry$swapLonLat!==void 0?_entry$swapLonLat:false};return res},{});return(_config$projection=config[projection])!==null&&_config$projection!==void 0?_config$projection:{format:"decimal",addDirection:"none",swapLonLat:false}},getAxisOrder:function getAxisOrder(projection){var axis=ol.proj.get(projection).getAxisOrientation();return axis||"enu"},reproject:function reproject(point,source,dest){if(source===dest){return _toConsumableArray(point)}if(source&&dest){var transformed=null;try{transformed=ol.proj.transform(point,source,dest)}catch(e){transformed=[0,0]}return transformed}return null},/**
9
9
  * Reprojects a bounding box.
10
10
  *
11
11
  * @param bbox {array} [minx, miny, maxx, maxy]
@@ -26,4 +26,4 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
26
26
  * @param extent {array} [minx, miny, maxx, maxy]
27
27
  *
28
28
  * @return {bool}
29
- */isValidExtent:function isValidExtent(extent){return extent.length===4&&!(extent.indexOf(Infinity)!==-1||extent.indexOf(-Infinity)!==-1||extent.indexOf(NaN)!==-1||extent[0]>=extent[2]||extent[1]>=extent[3])},fromOgcUrnCrs:function fromOgcUrnCrs(crsStr){if(crsStr.endsWith(":CRS84")){return"EPSG:4326"}var parts=crsStr.split(":");return"EPSG:"+parts.slice(-1)},toOgcUrnCrs:function toOgcUrnCrs(crsStr){var parts=crsStr.split(":");return"urn:ogc:def:crs:"+parts[0]+"::"+parts[1]},getFormattedCoordinate:function getFormattedCoordinate(coo,srcCrs){var _options$decimals;var dstCrs=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var options=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var units=CoordinatesUtils.getUnits(dstCrs!==null&&dstCrs!==void 0?dstCrs:srcCrs);var decimals=(_options$decimals=options.decimals)!==null&&_options$decimals!==void 0?_options$decimals:CoordinatesUtils.getPrecision(dstCrs!==null&&dstCrs!==void 0?dstCrs:srcCrs);var _ref=function(){var config=CoordinatesUtils.getProjectionConfig(dstCrs!==null&&dstCrs!==void 0?dstCrs:srcCrs);return{format:units!=="degrees"?"decimal":config.format,addDirection:config.addDirection,swapLonLat:config.swapLonLat}}(),format=_ref.format,addDirection=_ref.addDirection,swapLonLat=_ref.swapLonLat;if(srcCrs&&dstCrs&&srcCrs!==dstCrs){coo=CoordinatesUtils.reproject(coo,srcCrs,dstCrs)}if(swapLonLat){coo=[coo[1],coo[0]]}var toDMS=function toDMS(coord){var deg=Math.floor(Math.abs(coord));var minFull=(Math.abs(coord)-deg)*60;var min=Math.floor(minFull);var sec=((minFull-min)*60).toFixed(decimals);return"".concat(deg,"\xB0 ").concat(min,"' ").concat(sec,"\"")};var toDM=function toDM(coord){var deg=Math.floor(Math.abs(coord));var min=((Math.abs(coord)-deg)*60).toFixed(decimals);return"".concat(deg,"\xB0 ").concat(min,"'")};var formatCoordinate=function formatCoordinate(value,isLat){var direction="";if(addDirection!=="none"){if(isLat){direction=value>=0?"N":"S"}else{direction=value>=0?"E":"W"}}var formatted;switch(format){case"dms":formatted=toDMS(value,decimals);break;case"dm":formatted=toDM(value,decimals);break;default:formatted=LocaleUtils.toLocaleFixed(Math.abs(value),decimals)}if(addDirection==="prefix"){return"".concat(direction).concat(formatted)}else if(addDirection==="suffix"){return"".concat(formatted).concat(direction)}return formatted};return coo.map(function(coord,idx){return formatCoordinate(coord,swapLonLat?idx===0:idx===1)}).join(", ")}};export default CoordinatesUtils;
29
+ */isValidExtent:function isValidExtent(extent){return extent.length===4&&!(extent.indexOf(Infinity)!==-1||extent.indexOf(-Infinity)!==-1||extent.indexOf(NaN)!==-1||extent[0]>=extent[2]||extent[1]>=extent[3])},fromOgcUrnCrs:function fromOgcUrnCrs(crsStr){if(crsStr.endsWith(":CRS84")){return"EPSG:4326"}var parts=crsStr.split(":");return"EPSG:"+parts.slice(-1)},toOgcUrnCrs:function toOgcUrnCrs(crsStr){var parts=crsStr.split(":");return"urn:ogc:def:crs:"+parts[0]+"::"+parts[1]},getEsriWktFromCrs:function getEsriWktFromCrs(crsStr){var epsgCode=crsStr.startsWith("EPSG:")?crsStr:CoordinatesUtils.fromOgcUrnCrs(crsStr);var projections=ConfigUtils.getConfigProp("projections")||[];var configProjection=projections.find(function(proj){return proj.code===epsgCode});if(configProjection&&configProjection.esriWkt){return configProjection.esriWkt}if(commonEsriWktLookup[epsgCode]){return commonEsriWktLookup[epsgCode]}console.warn("No ESRI WKT definition found for ".concat(epsgCode,". Shapefile export may not include projection information. Consider adding an 'esriWkt' property to the projection in config.json."));return null},getFormattedCoordinate:function getFormattedCoordinate(coo,srcCrs){var _options$decimals;var dstCrs=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var options=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var units=CoordinatesUtils.getUnits(dstCrs!==null&&dstCrs!==void 0?dstCrs:srcCrs);var decimals=(_options$decimals=options.decimals)!==null&&_options$decimals!==void 0?_options$decimals:CoordinatesUtils.getPrecision(dstCrs!==null&&dstCrs!==void 0?dstCrs:srcCrs);var _ref=function(){var config=CoordinatesUtils.getProjectionConfig(dstCrs!==null&&dstCrs!==void 0?dstCrs:srcCrs);return{format:units!=="degrees"?"decimal":config.format,addDirection:config.addDirection,swapLonLat:config.swapLonLat}}(),format=_ref.format,addDirection=_ref.addDirection,swapLonLat=_ref.swapLonLat;if(srcCrs&&dstCrs&&srcCrs!==dstCrs){coo=CoordinatesUtils.reproject(coo,srcCrs,dstCrs)}if(swapLonLat){coo=[coo[1],coo[0]]}var toDMS=function toDMS(coord){var deg=Math.floor(Math.abs(coord));var minFull=(Math.abs(coord)-deg)*60;var min=Math.floor(minFull);var sec=((minFull-min)*60).toFixed(decimals);return"".concat(deg,"\xB0 ").concat(min,"' ").concat(sec,"\"")};var toDM=function toDM(coord){var deg=Math.floor(Math.abs(coord));var min=((Math.abs(coord)-deg)*60).toFixed(decimals);return"".concat(deg,"\xB0 ").concat(min,"'")};var formatCoordinate=function formatCoordinate(value,isLat){var direction="";if(addDirection!=="none"){if(isLat){direction=value>=0?"N":"S"}else{direction=value>=0?"E":"W"}}var formatted;switch(format){case"dms":formatted=toDMS(value,decimals);break;case"dm":formatted=toDM(value,decimals);break;default:formatted=LocaleUtils.toLocaleFixed(Math.abs(value),decimals)}if(addDirection==="prefix"){return"".concat(direction).concat(formatted)}else if(addDirection==="suffix"){return"".concat(formatted).concat(direction)}return formatted};return coo.map(function(coord,idx){return formatCoordinate(coord,swapLonLat?idx===0:idx===1)}).join(", ")}};export default CoordinatesUtils;