qwc2 2025.5.12 → 2025.5.16

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 (82) hide show
  1. package/actions/windows.js +1 -1
  2. package/components/AttributeForm.js +1 -1
  3. package/components/IdentifyViewer.js +5 -5
  4. package/components/MapButton.js +7 -0
  5. package/components/PluginsContainer.js +7 -2
  6. package/components/QtDesignerForm.js +3 -3
  7. package/components/SearchBox.js +10 -13
  8. package/components/StandardApp.js +2 -7
  9. package/components/map3d/Draw3D.js +2 -2
  10. package/components/map3d/HideObjects3D.js +6 -4
  11. package/components/map3d/Map3D.js +5 -5
  12. package/components/map3d/Map3DLight.js +1 -1
  13. package/components/map3d/MapControls3D.js +10 -8
  14. package/components/map3d/Measure3D.js +2 -2
  15. package/components/map3d/View3DSwitcher.js +1 -1
  16. package/components/map3d/drawtool/CreateTool3D.js +1 -1
  17. package/components/map3d/drawtool/EditTool3D.js +5 -4
  18. package/components/map3d/style/Draw3D.css +1 -13
  19. package/components/map3d/style/Map3D.css +1 -2
  20. package/components/map3d/style/Map3DLight.css +11 -3
  21. package/components/map3d/style/MapControls3D.css +3 -3
  22. package/components/map3d/style/View3DSwitcher.css +8 -20
  23. package/components/map3d/utils/Tiles3DStyle.js +1 -2
  24. package/components/style/App.css +6 -1
  25. package/{plugins/style/Buttons.css → components/style/MapButton.css} +9 -27
  26. package/components/style/PluginsContainer.css +23 -2
  27. package/components/style/SearchBox.css +1 -2
  28. package/components/timeline/style/InfiniteTimeline.css +1 -0
  29. package/components/widgets/NumberInput.js +1 -1
  30. package/components/widgets/style/ButtonBar.css +0 -5
  31. package/components/widgets/style/MenuButton.css +1 -0
  32. package/components/widgets/style/NumberInput.css +0 -1
  33. package/components/widgets/style/ToggleSwitch.css +1 -0
  34. package/package.json +2 -2
  35. package/plugins/BackgroundSwitcher.js +3 -3
  36. package/plugins/HomeButton.js +2 -2
  37. package/plugins/LocateButton.js +2 -2
  38. package/plugins/MapExport.js +1 -1
  39. package/plugins/MapFilter.js +2 -2
  40. package/plugins/Measure.js +1 -1
  41. package/plugins/Panoramax.js +2 -8
  42. package/plugins/Redlining.js +2 -2
  43. package/plugins/TaskButton.js +1 -1
  44. package/plugins/TopBar.js +2 -2
  45. package/plugins/View3D.js +7 -6
  46. package/plugins/ZoomButtons.js +2 -2
  47. package/plugins/style/BackgroundSwitcher.css +25 -21
  48. package/plugins/style/Bookmark.css +1 -1
  49. package/plugins/style/Editing.css +5 -1
  50. package/plugins/style/MapFilter.css +5 -1
  51. package/plugins/style/Measure.css +2 -6
  52. package/plugins/style/Panoramax.css +12 -4
  53. package/plugins/style/Redlining.css +12 -56
  54. package/plugins/style/Reports.css +4 -0
  55. package/plugins/style/Routing.css +1 -0
  56. package/plugins/style/ValueTool.css +4 -0
  57. package/reducers/windows.js +1 -1
  58. package/static/translations/bg-BG.json +3 -0
  59. package/static/translations/ca-ES.json +3 -0
  60. package/static/translations/cs-CZ.json +3 -0
  61. package/static/translations/de-CH.json +4 -1
  62. package/static/translations/de-DE.json +4 -1
  63. package/static/translations/en-US.json +4 -1
  64. package/static/translations/es-ES.json +3 -0
  65. package/static/translations/fi-FI.json +3 -0
  66. package/static/translations/fr-FR.json +4 -1
  67. package/static/translations/hu-HU.json +3 -0
  68. package/static/translations/it-IT.json +4 -1
  69. package/static/translations/ja-JP.json +3 -0
  70. package/static/translations/nl-NL.json +3 -0
  71. package/static/translations/no-NO.json +3 -0
  72. package/static/translations/pl-PL.json +3 -0
  73. package/static/translations/pt-BR.json +3 -0
  74. package/static/translations/pt-PT.json +3 -0
  75. package/static/translations/ro-RO.json +3 -0
  76. package/static/translations/ru-RU.json +3 -0
  77. package/static/translations/sv-SE.json +3 -0
  78. package/static/translations/tr-TR.json +3 -0
  79. package/static/translations/tsconfig.json +3 -0
  80. package/utils/SearchProviders.js +2 -2
  81. package/utils/ServiceLayerUtils.js +1 -1
  82. package/components/map3d/slices/map3d.js +0 -1
@@ -129,7 +129,9 @@
129
129
  "title": ""
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": ""
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": "Visualizzatore Cyclomedia"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "Copia",
132
133
  "cone": "Cono",
134
+ "ctrlhint": "Ctrl per selezione multipla...",
133
135
  "cuboid": "Cuboide",
134
136
  "cylinder": "Cilindro",
135
137
  "delete": "Elimina",
@@ -328,7 +330,8 @@
328
330
  "resetrotation": "Resetta orientamento"
329
331
  },
330
332
  "map3d": {
331
- "syncview": "Sincronizza visuale",
333
+ "lockview": "Muovi con visuale 2D",
334
+ "syncview": "Sincronizza con visuale 2D",
332
335
  "terrain": "Terreno",
333
336
  "title": "Visuale 3D"
334
337
  },
@@ -129,7 +129,9 @@
129
129
  "title": "Cyclomedia ビューワ"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "円錐",
134
+ "ctrlhint": "",
133
135
  "cuboid": "直方体",
134
136
  "cylinder": "円柱",
135
137
  "delete": "削除",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": "回転をリセット"
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "ビューを同期",
332
335
  "terrain": "地形",
333
336
  "title": "3D ビュー"
@@ -129,7 +129,9 @@
129
129
  "title": "Cyclomedia Viewer"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": "Rotatie resetten"
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": ""
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": ""
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": ""
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": ""
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": "Titulo"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": "Redefinir rotação"
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": "Cyclomedia"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": "Redefinir Rotação"
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": "Informații Cyclomedia"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": "Resetează rotația"
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": ""
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": ""
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": ""
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "",
134
+ "ctrlhint": "",
133
135
  "cuboid": "",
134
136
  "cylinder": "",
135
137
  "delete": "",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": ""
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "",
332
335
  "terrain": "",
333
336
  "title": ""
@@ -129,7 +129,9 @@
129
129
  "title": "Cyclomedia Görüntüleyici"
130
130
  },
131
131
  "draw3d": {
132
+ "clone": "",
132
133
  "cone": "Koni",
134
+ "ctrlhint": "",
133
135
  "cuboid": "Kübik",
134
136
  "cylinder": "Silindir",
135
137
  "delete": "Sil",
@@ -328,6 +330,7 @@
328
330
  "resetrotation": "Dönüklüğü sıfırla"
329
331
  },
330
332
  "map3d": {
333
+ "lockview": "",
331
334
  "syncview": "Görünümü senkronize et",
332
335
  "terrain": "Arazi",
333
336
  "title": "3 Boyutlu görünüm"
@@ -136,7 +136,9 @@
136
136
  "cyclomedia.login",
137
137
  "cyclomedia.scalehint",
138
138
  "cyclomedia.title",
139
+ "draw3d.clone",
139
140
  "draw3d.cone",
141
+ "draw3d.ctrlhint",
140
142
  "draw3d.cuboid",
141
143
  "draw3d.cylinder",
142
144
  "draw3d.delete",
@@ -295,6 +297,7 @@
295
297
  "locate.statustooltip.PERMISSION_DENIED",
296
298
  "map.loading",
297
299
  "map.resetrotation",
300
+ "map3d.lockview",
298
301
  "map3d.syncview",
299
302
  "map3d.terrain",
300
303
  "map3d.title",
@@ -4,13 +4,13 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
4
4
  *
5
5
  * This source code is licensed under the BSD-style license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
- */import axios from"axios";import yaml from"js-yaml";import polygonIntersectTest from"polygon-intersect-test";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import IdentifyUtils from"./IdentifyUtils";import LocaleUtils from"./LocaleUtils";export var SearchResultType={PLACE:0,THEMELAYER:1,THEME:2,EXTERNALLAYER:3};function coordinatesSearch(text,searchParams,callback){var displaycrs=searchParams.displaycrs||"EPSG:4326";var matches=text.match(/^\s*([+-]?\d+\.?\d*)[,\s]\s*([+-]?\d+\.?\d*)\s*$/);var items=[];if(matches&&matches.length>=3){var x=parseFloat(matches[1]);var y=parseFloat(matches[2]);if(displaycrs!=="EPSG:4326"){items.push({id:"coord0",text:x+", "+y+" ("+displaycrs+")",x:x,y:y,crs:displaycrs,bbox:[x,y,x,y]})}if(x>=-180&&x<=180&&y>=-90&&y<=90){var title=Math.abs(x)+(x>=0?"\xB0E":"\xB0W")+", "+Math.abs(y)+(y>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:title,x:x,y:y,crs:"EPSG:4326",bbox:[x,y,x,y]})}if(x>=-90&&x<=90&&y>=-180&&y<=180&&x!==y){var _title=Math.abs(y)+(y>=0?"\xB0E":"\xB0W")+", "+Math.abs(x)+(x>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:_title,x:y,y:x,crs:"EPSG:4326",bbox:[y,x,y,x]})}}var results=[];if(items.length>0){results.push({id:"coords",titlemsgid:LocaleUtils.trmsg("search.coordinates"),type:SearchResultType.PLACE,items:items})}callback({results:results})}/** ************************************************************************ **/var NominatimSearch=/*#__PURE__*/function(){function NominatimSearch(){_classCallCheck(this,NominatimSearch)}return _createClass(NominatimSearch,null,[{key:"search",value:function search(text,searchParams,callback){var viewboxParams={};if(searchParams.filterBBox){viewboxParams.viewbox=CoordinatesUtils.reprojectBbox(searchParams.filterBBox,searchParams.mapcrs,"EPSG:4326").join(",");viewboxParams.bounded=1}axios.get("https://nominatim.openstreetmap.org/search",{params:_objectSpread(_objectSpread({"q":text,"addressdetails":1,"polygon_geojson":1,"limit":20,"format":"json","accept-language":searchParams.lang},viewboxParams),searchParams.cfgParams||{})}).then(function(response){var locale=searchParams.lang;if(NominatimSearch.TRANSLATIONS[locale]===undefined){NominatimSearch.TRANSLATIONS[locale]={promise:NominatimSearch.loadLocale(locale)};NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].promise){NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].strings){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)}})}},{key:"parseResults",value:function parseResults(obj,translations,callback){var results=[];var groups={};var groupcounter=0;(obj||[]).map(function(entry){if(!(entry["class"]in groups)){var title=entry.type;try{title=translations[entry["class"]][entry.type]||entry.type}catch(e){/* pass */}groups[entry["class"]]={id:"nominatimgroup"+groupcounter++,// capitalize class
7
+ */import axios from"axios";import yaml from"js-yaml";import polygonIntersectTest from"polygon-intersect-test";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import IdentifyUtils from"./IdentifyUtils";import LocaleUtils from"./LocaleUtils";export var SearchResultType={PLACE:0,THEMELAYER:1,THEME:2,EXTERNALLAYER:3};function coordinatesSearch(text,searchParams,callback){var displaycrs=searchParams.displaycrs||"EPSG:4326";var matches=text.match(/^\s*([+-]?\d+\.?\d*)[,\s]\s*([+-]?\d+\.?\d*)\s*$/);var items=[];if(matches&&matches.length>=3){var x=parseFloat(matches[1]);var y=parseFloat(matches[2]);if(displaycrs!=="EPSG:4326"){items.push({id:"coord0",text:x+", "+y+" ("+displaycrs+")",x:x,y:y,crs:displaycrs,bbox:[x,y,x,y]})}if(x>=-180&&x<=180&&y>=-90&&y<=90){var title=Math.abs(x)+(x>=0?"\xB0E":"\xB0W")+", "+Math.abs(y)+(y>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:title,x:x,y:y,crs:"EPSG:4326",bbox:[x,y,x,y]})}if(x>=-90&&x<=90&&y>=-180&&y<=180&&x!==y){var _title=Math.abs(y)+(y>=0?"\xB0E":"\xB0W")+", "+Math.abs(x)+(x>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:_title,x:y,y:x,crs:"EPSG:4326",bbox:[y,x,y,x]})}}var results=[];if(items.length>0){results.push({id:"coords",titlemsgid:LocaleUtils.trmsg("search.coordinates"),type:SearchResultType.PLACE,items:items})}callback({results:results})}/** ************************************************************************ **/var NominatimSearch=/*#__PURE__*/function(){function NominatimSearch(){_classCallCheck(this,NominatimSearch)}return _createClass(NominatimSearch,null,[{key:"search",value:function search(text,searchParams,callback){var viewboxParams={};if(searchParams.filterBBox){viewboxParams.viewbox=CoordinatesUtils.reprojectBbox(searchParams.filterBBox,searchParams.mapcrs,"EPSG:4326").join(",");viewboxParams.bounded=1}axios.get("https://nominatim.openstreetmap.org/search",{params:_objectSpread(_objectSpread({"q":text,"addressdetails":1,"polygon_geojson":1,"limit":20,"format":"json","accept-language":searchParams.lang},searchParams.cfgParams||{}),viewboxParams)}).then(function(response){var locale=searchParams.lang;if(NominatimSearch.TRANSLATIONS[locale]===undefined){NominatimSearch.TRANSLATIONS[locale]={promise:NominatimSearch.loadLocale(locale)};NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].promise){NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].strings){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)}})}},{key:"parseResults",value:function parseResults(obj,translations,callback){var results=[];var groups={};var groupcounter=0;(obj||[]).map(function(entry){if(!(entry["class"]in groups)){var title=entry.type;try{title=translations[entry["class"]][entry.type]||entry.type}catch(e){/* pass */}groups[entry["class"]]={id:"nominatimgroup"+groupcounter++,// capitalize class
8
8
  title:title,type:SearchResultType.PLACE,items:[]};results.push(groups[entry["class"]])}// shorten display_name
9
9
  var text=entry.display_name.split(", ").slice(0,3).join(", ");// map label
10
10
  var label=text;// collect address fields
11
11
  var address=[];if(entry.address.town){address.push(entry.address.town)}if(entry.address.city){address.push(entry.address.city)}if(entry.address.state){address.push(entry.address.state)}if(entry.address.country){address.push(entry.address.country)}if(address.length>0){text+="<br/><i>"+address.join(", ")+"</i>"}// reorder coords from [miny, maxy, minx, maxx] to [minx, miny, maxx, maxy]
12
12
  var b=entry.boundingbox.map(function(coord){return parseFloat(coord)});var bbox=[b[2],b[0],b[3],b[1]];groups[entry["class"]].items.push({id:entry.place_id,// shorten display_name
13
- text:text,label:label,bbox:bbox,geometry:entry.geojson,x:0.5*(bbox[0]+bbox[2]),y:0.5*(bbox[1]+bbox[3]),crs:"EPSG:4326",provider:"nominatim"})});callback({results:results})}},{key:"loadLocale",value:function loadLocale(locale){return new Promise(function(resolve){axios.get("https://raw.githubusercontent.com/openstreetmap/openstreetmap-website/master/config/locales/"+locale+".yml").then(function(resp2){NominatimSearch.TRANSLATIONS[locale]={strings:NominatimSearch.parseLocale(resp2.data,locale)};resolve(true)})["catch"](function(){NominatimSearch.TRANSLATIONS[locale]={promise:axios.get("https://raw.githubusercontent.com/openstreetmap/openstreetmap-website/master/config/locales/"+locale.slice(0,2)+".yml").then(function(resp3){NominatimSearch.TRANSLATIONS[locale]={strings:NominatimSearch.parseLocale(resp3.data,locale.slice(0,2))};resolve(true)})["catch"](function(){NominatimSearch.TRANSLATIONS[locale]={strings:{}};resolve(true)})}})})}},{key:"parseLocale",value:function parseLocale(data,locale){var doc=yaml.load(data,{json:true});try{return doc[locale].geocoder.search_osm_nominatim.prefix}catch(e){return{}}}}])}();/** ************************************************************************ **/_defineProperty(NominatimSearch,"TRANSLATIONS",{});var QgisSearch=/*#__PURE__*/function(){function QgisSearch(){_classCallCheck(this,QgisSearch)}return _createClass(QgisSearch,null,[{key:"search",value:function search(text,searchParams,callback){var filter=_objectSpread({},searchParams.cfgParams.expression);var values={TEXT:text};var params={SERVICE:"WMS",VERSION:searchParams.theme.version,REQUEST:"GetFeatureInfo",CRS:searchParams.theme.mapCrs,WIDTH:100,HEIGHT:100,LAYERS:[],FILTER:[],WITH_MAPTIP:false,WITH_GEOMETRY:true,feature_count:searchParams.cfgParams.featureCount||100,info_format:"text/xml"};Object.keys(filter).forEach(function(layer){Object.entries(values).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];filter[layer]=filter[layer].replaceAll("$".concat(key,"$"),value.replace("'","\\'"))});params.LAYERS.push(layer);params.FILTER.push(layer+":"+filter[layer])});params.QUERY_LAYERS=params.LAYERS=params.LAYERS.join(",");params.FILTER=params.FILTER.join(";");axios.get(searchParams.theme.featureInfoUrl,{params:params}).then(function(response){callback(QgisSearch.searchResults(IdentifyUtils.parseResponse(response.data,searchParams.theme,"text/xml",null,searchParams.mapcrs),searchParams.cfgParams.title,searchParams.cfgParams.resultTitle))})["catch"](function(){callback({results:[]})})}},{key:"searchResults",value:function searchResults(features,title,resultTitle){var results=[];Object.entries(features).forEach(function(_ref3){var _ref4=_slicedToArray(_ref3,2),layername=_ref4[0],layerfeatures=_ref4[1];var items=layerfeatures.map(function(feature){var values=_objectSpread(_objectSpread({},feature.properties),{},{id:feature.id,layername:layername});return{id:"qgis."+layername+"."+feature.id,text:resultTitle?resultTitle.replace(/{([^}]+)}/g,function(match){return values[match.slice(1,-1)]}):feature.displayname,x:0.5*(feature.bbox[0]+feature.bbox[2]),y:0.5*(feature.bbox[1]+feature.bbox[3]),crs:feature.crs,bbox:feature.bbox,geometry:feature.geometry}});results.push({id:"qgis."+layername,title:title+": "+layername,type:SearchResultType.PLACE,items:items})});return{results:results}}},{key:"getResultGeometry",value:function getResultGeometry(resultItem,callback){callback({geometry:resultItem.geometry,crs:resultItem.crs})}}])}();/** ************************************************************************ **/export var FulltextSearch=/*#__PURE__*/function(){function FulltextSearch(){_classCallCheck(this,FulltextSearch)}return _createClass(FulltextSearch,null,[{key:"search",value:function search(searchText,searchParams,callback){var searchServiceUrl=ConfigUtils.getConfigProp("searchServiceUrl");if(!searchServiceUrl){/* eslint-disable-next-line */console.warn("Fulltext search failed: searchServiceUrl not set");callback({results:[]})}// Compute search filter
13
+ text:text,label:label,bbox:bbox,geometry:entry.geojson,x:0.5*(bbox[0]+bbox[2]),y:0.5*(bbox[1]+bbox[3]),crs:"EPSG:4326",provider:"nominatim"})});callback({results:results})}},{key:"loadLocale",value:function loadLocale(locale){return new Promise(function(resolve){axios.get("https://raw.githubusercontent.com/openstreetmap/openstreetmap-website/master/config/locales/"+locale+".yml").then(function(resp2){NominatimSearch.TRANSLATIONS[locale]={strings:NominatimSearch.parseLocale(resp2.data,locale)};resolve(true)})["catch"](function(){NominatimSearch.TRANSLATIONS[locale]={promise:axios.get("https://raw.githubusercontent.com/openstreetmap/openstreetmap-website/master/config/locales/"+locale.slice(0,2)+".yml").then(function(resp3){NominatimSearch.TRANSLATIONS[locale]={strings:NominatimSearch.parseLocale(resp3.data,locale.slice(0,2))};resolve(true)})["catch"](function(){NominatimSearch.TRANSLATIONS[locale]={strings:{}};resolve(true)})}})})}},{key:"parseLocale",value:function parseLocale(data,locale){var doc=yaml.load(data,{json:true});try{return doc[locale].geocoder.search_osm_nominatim.prefix}catch(e){return{}}}}])}();/** ************************************************************************ **/_defineProperty(NominatimSearch,"TRANSLATIONS",{});var QgisSearch=/*#__PURE__*/function(){function QgisSearch(){_classCallCheck(this,QgisSearch)}return _createClass(QgisSearch,null,[{key:"search",value:function search(text,searchParams,callback){var filter=_objectSpread({},searchParams.cfgParams.expression);var values={TEXT:text};var params={SERVICE:"WMS",VERSION:searchParams.theme.version,REQUEST:"GetFeatureInfo",CRS:searchParams.theme.mapCrs,WIDTH:100,HEIGHT:100,LAYERS:[],FILTER:[],WITH_MAPTIP:false,WITH_GEOMETRY:true,feature_count:searchParams.cfgParams.featureCount||100,info_format:"text/xml"};Object.keys(filter).forEach(function(layer){Object.entries(values).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];filter[layer]=filter[layer].replaceAll("$".concat(key,"$"),value.replace("'","\\'"))});params.LAYERS.push(layer);params.FILTER.push(layer+":"+filter[layer])});params.QUERY_LAYERS=params.LAYERS=params.LAYERS.join(",");params.FILTER=params.FILTER.join(";");axios.get(searchParams.theme.featureInfoUrl,{params:params}).then(function(response){callback(QgisSearch.searchResults(IdentifyUtils.parseResponse(response.data,searchParams.theme,"text/xml",null,searchParams.mapcrs),searchParams.cfgParams.title,searchParams.cfgParams.resultTitle))})["catch"](function(){callback({results:[]})})}},{key:"searchResults",value:function searchResults(features,title,resultTitle){var results=[];Object.entries(features).forEach(function(_ref3){var _ref4=_slicedToArray(_ref3,2),layername=_ref4[0],layerfeatures=_ref4[1];var items=layerfeatures.map(function(feature){var values=_objectSpread(_objectSpread({},feature.properties),{},{id:feature.id,layername:layername});return{id:"qgis."+layername+"."+feature.id,text:resultTitle?resultTitle.replace(/{([^}]+)}/g,function(match){return values[match.slice(1,-1)]}):feature.displayname,x:0.5*(feature.bbox[0]+feature.bbox[2]),y:0.5*(feature.bbox[1]+feature.bbox[3]),crs:feature.crs,bbox:feature.bbox,geometry:feature.geometry,layername:layername}});results.push({id:"qgis."+layername,title:title+": "+layername,type:SearchResultType.PLACE,items:items})});return{results:results}}},{key:"getResultGeometry",value:function getResultGeometry(resultItem,callback){callback({geometry:resultItem.geometry,crs:resultItem.crs})}}])}();/** ************************************************************************ **/export var FulltextSearch=/*#__PURE__*/function(){function FulltextSearch(){_classCallCheck(this,FulltextSearch)}return _createClass(FulltextSearch,null,[{key:"search",value:function search(searchText,searchParams,callback){var searchServiceUrl=ConfigUtils.getConfigProp("searchServiceUrl");if(!searchServiceUrl){/* eslint-disable-next-line */console.warn("Fulltext search failed: searchServiceUrl not set");callback({results:[]})}// Compute search filter
14
14
  var searchFilter=new Set([].concat(_toConsumableArray(searchParams.cfgParams["default"]||[]),_toConsumableArray(searchParams.searchTerms)));var facetMap=searchParams.cfgParams.layers||{};searchParams.activeLayers.forEach(function(layername){if(facetMap[layername]){searchFilter.add(facetMap[layername])}});var params={searchtext:searchText,filter:_toConsumableArray(searchFilter).join(","),limit:searchParams.limit};var iconPath=ConfigUtils.getAssetsPath()+"/img/search/";axios.get(searchServiceUrl,{params:params}).then(function(response){var data=FulltextSearch.filterFulltextResults(response.data,searchParams.filterPoly,searchParams.mapcrs);var placeResultCount=(data.result_counts||[]).reduce(function(res,entry){if(entry.dataproduct_id==="dataproduct"){return res}else if(res===-1||entry.count===-1){return-1}else{return res+entry.count}},0);var results=[];// Layers
15
15
  var _formatLayerEntry=function formatLayerEntry(dataproduct){return{type:SearchResultType.THEMELAYER,id:dataproduct.dataproduct_id,text:dataproduct.display,thumbnail:iconPath+"dataproduct.svg",info:dataproduct.dset_info,sublayers:dataproduct.sublayers?dataproduct.sublayers.map(_formatLayerEntry):null}};results.push({id:"fulltext.layers",titlemsgid:LocaleUtils.trmsg("search.layers"),type:SearchResultType.THEMELAYER,items:data.results.filter(function(entry){return entry.dataproduct}).map(function(entry){return _formatLayerEntry(entry.dataproduct)})});// Places
16
16
  results.push({id:"fulltext.places",titlemsgid:LocaleUtils.trmsg("search.places"),resultCount:placeResultCount,type:SearchResultType.PLACE,items:data.results.filter(function(entry){return entry.feature}).map(function(entry){return{id:entry.feature.feature_id,text:entry.feature.display,x:0.5*(entry.feature.bbox[0]+entry.feature.bbox[2]),y:0.5*(entry.feature.bbox[1]+entry.feature.bbox[3]),crs:entry.feature.srid?"EPSG:"+String(entry.feature.srid).replace(/^EPSG:/,""):null,bbox:entry.feature.bbox,thumbnail:iconPath+entry.feature.dataproduct_id+".svg",// fulltext specific info
@@ -4,7 +4,7 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
4
4
  *
5
5
  * This source code is licensed under the BSD-style license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
- */import axios from"axios";import deepmerge from"deepmerge";import{XMLParser}from"fast-xml-parser";import isEmpty from"lodash.isempty";import{getWidth}from"ol/extent";import{get as getProjection}from"ol/proj";import ol from"openlayers";import randomColor from"randomcolor";import url from"url";import{LayerRole}from"../actions/layers";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import LayerUtils from"./LayerUtils";import MiscUtils from"./MiscUtils";function strcmp(a,b){var al=a.toLowerCase();var bl=b.toLowerCase();if(al<bl){return-1}else if(al>bl){return 1}return 0}var ServiceLayerUtils={getWMTSLayers:function getWMTSLayers(capabilities,capabilitiesUrl,mapCrs){var _this=this;if(!(capabilities!==null&&capabilities!==void 0&&capabilities.Contents)){return[]}var tileMatrices=capabilities.Contents.TileMatrixSet.reduce(function(res,entry){var crsMatch=entry.SupportedCRS.match(/(EPSG).*:(\d+)/i);res[entry.Identifier]={crs:crsMatch?"EPSG:"+crsMatch[2]:entry.SupportedCRS,matrix:entry.TileMatrix};return res},{});var layers=capabilities.Contents.Layer.map(function(layer){var _capabilities$Service,_capabilities$Service2,_capabilities$Service3;var styles=_this.getWMTSLayerStyles(capabilities,capabilitiesUrl,layer,tileMatrices);return{capabilitiesUrl:capabilitiesUrl,title:layer.Title,name:layer.Identifier,bbox:{crs:"EPSG:4326",bounds:layer.WGS84BoundingBox},sublayers:styles,"abstract":layer.Abstract,attribution:{Title:((_capabilities$Service=capabilities.ServiceProvider)===null||_capabilities$Service===void 0?void 0:_capabilities$Service.ProviderName)||((_capabilities$Service2=capabilities.ServiceIdentification)===null||_capabilities$Service2===void 0?void 0:_capabilities$Service2.Title)||"",OnlineResource:((_capabilities$Service3=capabilities.ServiceProvider)===null||_capabilities$Service3===void 0?void 0:_capabilities$Service3.ProviderSite)||""}}});layers.sort(function(a,b){return a.title.localeCompare(b.title)});return layers},getWMTSLayerStyles:function getWMTSLayerStyles(capabilities,capabilitiesUrl,layer,tileMatrices){var _this2=this;if(layer.Style.length===1){return this.getWMTSLayerTileMatrixSetLinks(capabilities,capabilitiesUrl,layer,tileMatrices,layer.Style[0].Identifier)}else{return layer.Style.map(function(style){return{title:style.Identifier,sublayers:_this2.getWMTSLayerTileMatrixSetLinks(capabilities,capabilitiesUrl,layer,tileMatrices,style.Identifier)}})}},getWMTSLayerTileMatrixSetLinks:function getWMTSLayerTileMatrixSetLinks(capabilities,capabilitiesUrl,layer,tileMatrices,style){var tileMatrixSetLinks=layer.TileMatrixSetLink;var layerLinks=tileMatrixSetLinks.map(function(link){var _MiscUtils$ensureArra,_capabilities$Operati,_capabilities$Service4,_capabilities$Service5,_capabilities$Service6;var tileMatrixSet=link.TileMatrixSet;var topMatrix=tileMatrices[tileMatrixSet].matrix[0];var tileMatrixPrefix=topMatrix.Identifier.includes(":")?topMatrix.Identifier.replace(/:[0-9]+$/,""):"";var origin=[topMatrix.TopLeftCorner[0],topMatrix.TopLeftCorner[1]];try{var axisOrder=CoordinatesUtils.getAxisOrder(tileMatrices[tileMatrixSet].crs).substr(0,2);if(axisOrder==="ne"){origin=[topMatrix.TopLeftCorner[1],topMatrix.TopLeftCorner[0]]}}catch(e){// eslint-disable-next-line
7
+ */import axios from"axios";import deepmerge from"deepmerge";import{XMLParser}from"fast-xml-parser";import isEmpty from"lodash.isempty";import ol from"openlayers";import randomColor from"randomcolor";import url from"url";import{LayerRole}from"../actions/layers";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import LayerUtils from"./LayerUtils";import MiscUtils from"./MiscUtils";function strcmp(a,b){var al=a.toLowerCase();var bl=b.toLowerCase();if(al<bl){return-1}else if(al>bl){return 1}return 0}var ServiceLayerUtils={getWMTSLayers:function getWMTSLayers(capabilities,capabilitiesUrl,mapCrs){var _this=this;if(!(capabilities!==null&&capabilities!==void 0&&capabilities.Contents)){return[]}var tileMatrices=capabilities.Contents.TileMatrixSet.reduce(function(res,entry){var crsMatch=entry.SupportedCRS.match(/(EPSG).*:(\d+)/i);res[entry.Identifier]={crs:crsMatch?"EPSG:"+crsMatch[2]:entry.SupportedCRS,matrix:entry.TileMatrix};return res},{});var layers=capabilities.Contents.Layer.map(function(layer){var _capabilities$Service,_capabilities$Service2,_capabilities$Service3;var styles=_this.getWMTSLayerStyles(capabilities,capabilitiesUrl,layer,tileMatrices);return{capabilitiesUrl:capabilitiesUrl,title:layer.Title,name:layer.Identifier,bbox:{crs:"EPSG:4326",bounds:layer.WGS84BoundingBox},sublayers:styles,"abstract":layer.Abstract,attribution:{Title:((_capabilities$Service=capabilities.ServiceProvider)===null||_capabilities$Service===void 0?void 0:_capabilities$Service.ProviderName)||((_capabilities$Service2=capabilities.ServiceIdentification)===null||_capabilities$Service2===void 0?void 0:_capabilities$Service2.Title)||"",OnlineResource:((_capabilities$Service3=capabilities.ServiceProvider)===null||_capabilities$Service3===void 0?void 0:_capabilities$Service3.ProviderSite)||""}}});layers.sort(function(a,b){return a.title.localeCompare(b.title)});return layers},getWMTSLayerStyles:function getWMTSLayerStyles(capabilities,capabilitiesUrl,layer,tileMatrices){var _this2=this;if(layer.Style.length===1){return this.getWMTSLayerTileMatrixSetLinks(capabilities,capabilitiesUrl,layer,tileMatrices,layer.Style[0].Identifier)}else{return layer.Style.map(function(style){return{title:style.Identifier,sublayers:_this2.getWMTSLayerTileMatrixSetLinks(capabilities,capabilitiesUrl,layer,tileMatrices,style.Identifier)}})}},getWMTSLayerTileMatrixSetLinks:function getWMTSLayerTileMatrixSetLinks(capabilities,capabilitiesUrl,layer,tileMatrices,style){var tileMatrixSetLinks=layer.TileMatrixSetLink;var layerLinks=tileMatrixSetLinks.map(function(link){var _MiscUtils$ensureArra,_capabilities$Operati,_capabilities$Service4,_capabilities$Service5,_capabilities$Service6;var tileMatrixSet=link.TileMatrixSet;var topMatrix=tileMatrices[tileMatrixSet].matrix[0];var tileMatrixPrefix=topMatrix.Identifier.includes(":")?topMatrix.Identifier.replace(/:[0-9]+$/,""):"";var origin=[topMatrix.TopLeftCorner[0],topMatrix.TopLeftCorner[1]];try{var axisOrder=CoordinatesUtils.getAxisOrder(tileMatrices[tileMatrixSet].crs).substr(0,2);if(axisOrder==="ne"){origin=[topMatrix.TopLeftCorner[1],topMatrix.TopLeftCorner[0]]}}catch(e){// eslint-disable-next-line
8
8
  console.warn("Could not determine axis order for projection "+tileMatrices[tileMatrixSet].crs);return null}var matrixIds=[];var resolutions=tileMatrices[tileMatrixSet].matrix.map(function(entry,index){// 0.00028: assumed pixel width in meters, as per WMTS standard
9
9
  matrixIds.push(entry.Identifier);return entry.ScaleDenominator*0.00028});var format=(_MiscUtils$ensureArra=MiscUtils.ensureArray(layer.Format).find(function(fmt){return fmt==="image/png"}))!==null&&_MiscUtils$ensureArra!==void 0?_MiscUtils$ensureArra:MiscUtils.ensureArray(layer.Format)[0];var getTile=MiscUtils.ensureArray((_capabilities$Operati=capabilities.OperationsMetadata)===null||_capabilities$Operati===void 0||(_capabilities$Operati=_capabilities$Operati.GetTile)===null||_capabilities$Operati===void 0||(_capabilities$Operati=_capabilities$Operati.DCP)===null||_capabilities$Operati===void 0||(_capabilities$Operati=_capabilities$Operati.HTTP)===null||_capabilities$Operati===void 0?void 0:_capabilities$Operati.Get)[0];var getEncoding=MiscUtils.ensureArray(getTile===null||getTile===void 0?void 0:getTile.Constraint).find(function(c){return c.name==="GetEncoding"});var requestEncoding=MiscUtils.ensureArray(getEncoding===null||getEncoding===void 0?void 0:getEncoding.AllowedValues.Value)[0];var serviceUrl=null;if(requestEncoding==="KVP"){serviceUrl=getTile.href}else{serviceUrl=layer.ResourceURL.find(function(u){return u.resourceType==="tile"}).template;(layer.Dimension||[]).forEach(function(dim){serviceUrl=serviceUrl.replace("{"+dim.Identifier+"}",dim.Default)})}return{type:"wmts",url:serviceUrl,capabilitiesUrl:capabilitiesUrl,title:layer.Title+" - "+tileMatrixSet,name:layer.Identifier,tileMatrixPrefix:tileMatrixPrefix,tileMatrixSet:tileMatrixSet,originX:origin[0],originY:origin[1],projection:tileMatrices[tileMatrixSet].crs,tileSize:[topMatrix.TileWidth,topMatrix.TileHeight],style:style,bbox:{crs:"EPSG:4326",bounds:layer.WGS84BoundingBox},format:format,requestEncoding:requestEncoding,resolutions:resolutions,matrixIds:matrixIds,"abstract":layer.Abstract,attribution:{Title:((_capabilities$Service4=capabilities.ServiceProvider)===null||_capabilities$Service4===void 0?void 0:_capabilities$Service4.ProviderName)||((_capabilities$Service5=capabilities.ServiceIdentification)===null||_capabilities$Service5===void 0?void 0:_capabilities$Service5.Title)||"",OnlineResource:((_capabilities$Service6=capabilities.ServiceProvider)===null||_capabilities$Service6===void 0?void 0:_capabilities$Service6.ProviderSite)||""}}}).filter(Boolean);return layerLinks},getWMSLayers:function getWMSLayers(capabilities,calledServiceUrl){var _capabilities,_capabilities2,_capabilities$WMS_Cap,_this3=this;var asGroup=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(!((_capabilities=capabilities)!==null&&_capabilities!==void 0&&_capabilities.WMS_Capabilities)&&!((_capabilities2=capabilities)!==null&&_capabilities2!==void 0&&_capabilities2.WMT_MS_Capabilities)){return[]}capabilities=(_capabilities$WMS_Cap=capabilities.WMS_Capabilities)!==null&&_capabilities$WMS_Cap!==void 0?_capabilities$WMS_Cap:capabilities.WMT_MS_Capabilities;var calledUrlParts=url.parse(calledServiceUrl,true);var extwmsparams={};calledUrlParts.query=Object.keys(calledUrlParts.query).filter(function(key){// Extract extwms params
10
10
  if(key.toUpperCase().startsWith("EXTWMS.")){extwmsparams[key.substring(7)]=calledUrlParts.query[key];return false}// Filter service and request from calledServiceUrl, but keep other parameters (i.e. MAP)
@@ -1 +0,0 @@
1
- import{createSlice}from"@reduxjs/toolkit";var initialState={center:null};var map3dSlice=createSlice({name:"map",initialState:initialState,reducers:{setCenter:function setCenter(state,action){state.center=action.payload}}});var setCenter=map3dSlice.actions.setCenter;export{setCenter};export default map3dSlice.reducer;