qwc2 2025.10.7 → 2025.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/PrintSelection.js +3 -3
- package/components/SearchBox.js +7 -5
- package/components/StandardApp.js +1 -1
- package/components/style/SearchBox.css +2 -2
- package/components/widgets/LayerCatalogWidget.js +2 -2
- package/package.json +1 -1
- package/plugins/FeatureSearch.js +2 -2
- package/plugins/LayerCatalog.js +3 -3
- package/plugins/Map.js +1 -1
- package/plugins/Print.js +4 -4
- package/plugins/Redlining.js +3 -3
- package/plugins/TopBar.js +3 -3
- package/plugins/map/RedliningSupport.js +1 -1
- package/plugins/style/FeatureSearch.css +6 -1
- package/plugins/style/Redlining.css +5 -0
- package/reducers/redlining.js +1 -1
- package/resources/rotate.svg +70 -0
- package/static/translations/bg-BG.json +2 -3
- package/static/translations/ca-ES.json +2 -3
- package/static/translations/cs-CZ.json +2 -3
- package/static/translations/de-CH.json +2 -3
- package/static/translations/de-DE.json +2 -3
- package/static/translations/en-US.json +2 -3
- package/static/translations/es-ES.json +2 -3
- package/static/translations/fi-FI.json +2 -3
- package/static/translations/fr-FR.json +2 -3
- package/static/translations/hu-HU.json +2 -3
- package/static/translations/it-IT.json +3 -4
- package/static/translations/ja-JP.json +2 -3
- package/static/translations/nl-NL.json +2 -3
- package/static/translations/no-NO.json +2 -3
- package/static/translations/pl-PL.json +2 -3
- package/static/translations/pt-BR.json +2 -3
- package/static/translations/pt-PT.json +2 -3
- package/static/translations/ro-RO.json +2 -3
- package/static/translations/ru-RU.json +2 -3
- package/static/translations/sv-SE.json +2 -3
- package/static/translations/tr-TR.json +2 -3
- package/static/translations/tsconfig.json +1 -2
- package/static/translations/uk-UA.json +2 -3
- package/utils/EditingUtils.js +3 -2
- package/utils/SearchProviders.js +3 -3
- package/utils/VectorLayerUtils.js +1 -1
|
@@ -10,7 +10,7 @@ var coords=geometry.coordinates;for(var i=0;i<coords.length-1;++i){var segment={
|
|
|
10
10
|
var x=geometry.coordinates[0];var y=geometry.coordinates[1];geometry={type:"Polygon",coordinates:[[[x-0.01,y-0.01],[x+0.01,y-0.01],[x+0.01,y+0.01],[x-0.01,y+0.01],[x-0.01,y-0.01]]]};params.geoms.push(VectorLayerUtils.geoJSONGeomToWkt(geometry));params.labelFillColors.push(ensureHex(styleOptions.fillColor));params.labelOutlineColors.push(ensureHex(styleOptions.strokeColor));params.labelOutlineSizes.push(scaleFactor*styleOptions.strokeWidth*0.5);params.labelSizes.push(Math.round(10*styleOptions.strokeWidth*scaleFactor));params.labelDist.push("5");params.labelRotations.push(((properties.rotation||0)/Math.PI*180).toFixed(0))}else{params.geoms.push(VectorLayerUtils.geoJSONGeomToWkt(geometry));params.labelFillColors.push(ensureHex(styleOptions.textFill));params.labelOutlineColors.push(ensureHex(styleOptions.textStroke));params.labelOutlineSizes.push(scaleFactor);params.labelSizes.push(Math.round(10*scaleFactor));params.labelDist.push("-5");params.labelRotations.push("0")}}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}}catch(err){_iterator.e(err)}finally{_iterator.f()}return params},removeDuplicateNodes:function removeDuplicateNodes(coordinates){if(Array.isArray(coordinates[0][0])){return coordinates.map(VectorLayerUtils.removeDuplicateNodes)}else if(Array.isArray(coordinates[0])){return coordinates.filter(function(item,pos,arr){return pos===0||item[0]!==arr[pos-1][0]||item[1]!==arr[pos-1][1]})}else{return coordinates}},simplifyFeature:function simplifyFeature(feature){if(!feature.geometry){return feature}else if(feature.geometry.type==="MultiPolygon"){return feature.geometry.coordinates.map(function(part){return VectorLayerUtils.simplifyFeature(_objectSpread(_objectSpread({},feature),{},{geometry:{type:"Polygon",coordinates:part}}))}).flat()}else if(feature.geometry.type==="Polygon"){return simplepolygon(feature).features.map(function(feat,idx,features){if(feat.properties.parent>=0){features[feat.properties.parent].geometry.coordinates.push(feat.geometry.coordinates[0]);return null}return feat}).filter(function(x){return x}).map(function(feat){return _objectSpread(_objectSpread({},feature),{},{geometry:feat.geometry})})}else{return feature}},validateGeometry:function validateGeometry(geometry){if(!geometry){return false}if(geometry.type==="GeometryCollection"){return geometry.geometries.every(VectorLayerUtils.validateGeometry)}if(geometry.type==="Point"){return!isEmpty(geometry.coordinates)}var minLength=geometry.type.endsWith("LineString")?2:3;var _isDegenerate=function isDegenerate(coordinates){if(Array.isArray(coordinates[0][0])){return coordinates.map(_isDegenerate).find(function(entry){return entry===false})}else{return coordinates.length<minLength}};return!_isDegenerate(geometry.coordinates)},createSld:function createSld(geometrytype,styleName,styleOptions,layerOpacity){var dpi=arguments.length>4&&arguments[4]!==undefined?arguments[4]:96;var scaleFactor=arguments.length>5&&arguments[5]!==undefined?arguments[5]:1;var opts={};var dpiScale=dpi/96*scaleFactor;// Special cases
|
|
11
11
|
if(styleName==="text"){// Make geometry transparent
|
|
12
12
|
opts={strokeColor:[0,0,0,0],fillColor:[0,0,0,0]}}else if(styleName==="marker"){opts={strokeColor:[0,0,255,1],strokeWidth:1*dpiScale,fillColor:[255,255,255,1],circleRadius:2*dpiScale}}else{// Default style
|
|
13
|
-
opts=styleOptions}var ensureHex=function ensureHex(rgb){return!Array.isArray(rgb)?rgb:"#"+(16777216+(rgb[2]|rgb[1]<<8|rgb[0]<<16)).toString(16).slice(1)};var opacity=function opacity(rgb){if(Array.isArray(rgb)&&rgb.length>3){return rgb[3]*layerOpacity/255}return 1*layerOpacity/255};var stroke="<se:Stroke>"+"<se:SvgParameter name=\"stroke\">"+ensureHex(opts.strokeColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-opacity\">"+opacity(opts.strokeColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-width\">"+opts.strokeWidth*dpiScale+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-linejoin\">round</se:SvgParameter>"+(!isEmpty(opts.strokeDash)?"<
|
|
13
|
+
opts=styleOptions}var ensureHex=function ensureHex(rgb){return!Array.isArray(rgb)?rgb:"#"+(16777216+(rgb[2]|rgb[1]<<8|rgb[0]<<16)).toString(16).slice(1)};var opacity=function opacity(rgb){if(Array.isArray(rgb)&&rgb.length>3){return rgb[3]*layerOpacity/255}return 1*layerOpacity/255};var stroke="<se:Stroke>"+"<se:SvgParameter name=\"stroke\">"+ensureHex(opts.strokeColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-opacity\">"+opacity(opts.strokeColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-width\">"+opts.strokeWidth*dpiScale+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-linejoin\">round</se:SvgParameter>"+(!isEmpty(opts.strokeDash)?"<se:SvgParameter name=\"stroke-dasharray\">"+opts.strokeDash.map(function(x){return x*dpiScale}).join(" ")+"</se:SvgParameter>":"")+"</se:Stroke>";var fill="<se:Fill>"+"<se:SvgParameter name=\"fill\">"+ensureHex(opts.fillColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"fill-opacity\">"+opacity(opts.fillColor)+"</se:SvgParameter>"+"</se:Fill>";var rule=null;if(geometrytype.endsWith("Point")){rule="<se:PointSymbolizer>"+"<se:Graphic>"+"<se:Mark>"+"<se:WellKnownName>circle</se:WellKnownName>"+"<se:Stroke>"+"<se:SvgParameter name=\"stroke\">"+ensureHex(opts.strokeColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-opacity\">"+opacity(opts.strokeColor)+"</se:SvgParameter>"+"<se:SvgParameter name=\"stroke-width\">"+opts.strokeWidth*dpiScale+"</se:SvgParameter>"+"</se:Stroke>"+fill+"</se:Mark>"+"<se:Size>"+2*opts.circleRadius*dpiScale+"</se:Size>"+"</se:Graphic>"+"</se:PointSymbolizer>"}else if(geometrytype.endsWith("LineString")){rule="<se:LineSymbolizer>"+stroke+"</se:LineSymbolizer>"}else if(geometrytype.endsWith("Polygon")){rule="<se:PolygonSymbolizer>"+stroke+fill+"</se:PolygonSymbolizer>"}if(rule){return"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+"<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"1.1.0\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:se=\"http://www.opengis.net/se\">"+"<UserStyle>"+"<se:FeatureTypeStyle>"+"<se:Rule>"+rule+"</se:Rule>"+"</se:FeatureTypeStyle>"+"</UserStyle>"+"</StyledLayerDescriptor>"}return null},generateMarkerGeometry:function generateMarkerGeometry(params,markername,tail,feature,layer,dpi,mapScale,printCrs,scaleFactor){if(!END_MARKERS[markername]){return}var marker=END_MARKERS[markername];// Read the SVG and generate a matching WKT geometry for the marker
|
|
14
14
|
var path="";var width=0;var height=0;try{var parser=new DOMParser;var svgSrc=atob(marker.src.slice(26));var svgDoc=parser.parseFromString(svgSrc,"text/xml");width=parseInt(svgDoc.getElementsByTagName("svg")[0].getAttribute("width"),10);height=parseInt(svgDoc.getElementsByTagName("svg")[0].getAttribute("height"),10);path=svgDoc.getElementsByTagName("path")[0].getAttribute("d")}catch(e){/* eslint-disable-next-line */console.warn("Could not parse path for marker "+markername);return}// [ Same as in FeatureStyles.js ] [ pixel to map units ]
|
|
15
15
|
var markerScaleFactor=0.125*(1+feature.styleOptions.strokeWidth)/dpi*0.0254*mapScale*scaleFactor;var origin=feature.geometry.coordinates[tail?feature.geometry.coordinates.length-1:0];var p2=feature.geometry.coordinates[tail?feature.geometry.coordinates.length-2:1];var coordinates=[];var angle=0.5*Math.PI+Math.atan2(origin[0]-p2[0],origin[1]-p2[1]);var alpha=marker.baserotation/180*Math.PI+angle;var cosa=Math.cos(alpha);var sina=Math.sin(alpha);svgpath(path).iterate(function(segment,index,x,y){// Skip move instructions
|
|
16
16
|
if(["m","M"].includes(segment[0])){return}var dx=(x-marker.anchor[0]*width)*markerScaleFactor;var dy=(y-marker.anchor[1]*height)*markerScaleFactor;var rx=cosa*dx+sina*dy;var ry=-sina*dx+cosa*dy;coordinates.push([origin[0]+rx,origin[1]+ry])});// Closing coordinate
|