GeoPDF |
@@ -375,11 +447,11 @@ class Print extends React.Component {
-
+
-
+
{Object.entries(printParams).map(([key, value]) => ( ))}
@@ -396,7 +468,7 @@ class Print extends React.Component {
- {selectedFormat === "application/pdf" && this.props.allowGeoPdfExport ? ( ) : null}
+ {pdfFormatSelected && this.props.allowGeoPdfExport ? ( ) : null}
{gridIntervalX}
{gridIntervalY}
{resolutionInput}
@@ -443,7 +515,7 @@ class Print extends React.Component {
if (opts.rows || opts.cols) {
style.resize = 'none';
}
- if (opts.rows) {
+ if (opts.cols) {
style.width = 'initial';
}
return (
@@ -473,16 +545,52 @@ class Print extends React.Component {
}
}).join(" | ");
};
- renderPrintFrame = () => {
- let printFrame = null;
+ renderPrintSelection = () => {
+ let printSelection = null;
if (this.state.layout && isEmpty(this.state.atlasFeatures)) {
const frame = {
- width: this.state.scale * this.state.layout.map.width / 1000,
- height: this.state.scale * this.state.layout.map.height / 1000
+ width: this.state.layout.map.width,
+ height: this.state.layout.map.height
};
- printFrame = ( );
+ printSelection = ( );
}
- return printFrame;
+ return printSelection;
+ };
+ formatExtent = (extent) => {
+ const mapCrs = this.props.map.projection;
+ const version = this.props.theme.version;
+
+ if (CoordinatesUtils.getAxisOrder(mapCrs).substring(0, 2) === 'ne' && version === '1.3.0') {
+ return extent[1] + "," + extent[0] + "," + extent[3] + "," + extent[2];
+ }
+
+ return extent.join(',');
+ };
+ geometryChanged = (center, extents, rotation, scale) => {
+ this.setState({
+ center: center,
+ extents: extents,
+ rotation: rotation,
+ scale: scale
+ });
+ };
+ printSeriesChanged = (selected) => {
+ this.setState({
+ printSeriesSelected: selected
+ });
};
renderPrintOutputWindow = () => {
const extraControls = [{
@@ -508,7 +616,7 @@ class Print extends React.Component {
);
};
savePrintOutput = () => {
- FileSaver.saveAs(this.state.pdfData, this.props.theme.id + '.pdf');
+ FileSaver.saveAs(this.state.pdfData.content, this.state.pdfData.fileName);
};
render() {
const minMaxTooltip = this.state.minimized ? LocaleUtils.tr("print.maximize") : LocaleUtils.tr("print.minimize");
@@ -521,7 +629,7 @@ class Print extends React.Component {
{() => ({
body: this.state.minimized ? null : this.renderBody(),
extra: [
- this.renderPrintFrame()
+ this.renderPrintSelection()
]
})}
@@ -562,81 +670,141 @@ class Print extends React.Component {
changeLayout = (ev) => {
const layout = this.props.theme.print.find(item => item.name === ev.target.value);
this.setState({layout: layout, atlasFeature: null});
- this.fixedMapCenter = null;
};
changeScale = (ev) => {
- this.setState({scale: ev.target.value});
+ this.setState({scale: parseInt(ev.target.value, 10) || 0});
};
changeResolution = (ev) => {
this.setState({dpi: ev.target.value});
};
changeRotation = (ev) => {
if (!ev.target.value) {
- this.setState({rotationNull: true});
+ this.setState({rotation: 0});
} else {
- this.setState({rotationNull: false});
- let angle = parseFloat(ev.target.value) || 0;
- while (angle < 0) {
- angle += 360;
- }
- while (angle >= 360) {
- angle -= 360;
- }
- this.props.changeRotation(angle / 180 * Math.PI);
+ const angle = parseFloat(ev.target.value) || 0;
+ this.setState({rotation: (angle % 360 + 360) % 360});
}
};
+ changeSeriesOverlap = (ev) => {
+ this.setState({printSeriesOverlap: parseInt(ev.target.value, 10) || 0});
+ };
+ changeDownloadMode = (ev) => {
+ this.setState({downloadMode: ev.target.value});
+ };
formatChanged = (ev) => {
this.setState({selectedFormat: ev.target.value});
};
- computeCurrentExtent = () => {
- if (!this.props.map || !this.state.layout || !this.state.scale) {
- return [0, 0, 0, 0];
- }
- const center = this.props.map.center;
- const widthm = this.state.scale * this.state.layout.map.width / 1000;
- const heightm = this.state.scale * this.state.layout.map.height / 1000;
- const {width, height} = MapUtils.transformExtent(this.props.map.projection, center, widthm, heightm);
- const x1 = center[0] - 0.5 * width;
- const x2 = center[0] + 0.5 * width;
- const y1 = center[1] - 0.5 * height;
- const y2 = center[1] + 0.5 * height;
- return [x1, y1, x2, y2];
- };
print = (ev) => {
+ ev.preventDefault();
+ this.setState({ printing: true });
if (this.props.inlinePrintOutput) {
- this.setState({printOutputVisible: true, outputLoaded: false});
+ this.setState({ printOutputVisible: true, outputLoaded: false });
}
- ev.preventDefault();
- this.setState({printing: true});
+
const formData = formDataEntries(new FormData(this.printForm));
+ let pages = [formData];
+
+ if (this.state.printSeriesEnabled) {
+ pages = this.state.extents.map((extent, index) => {
+ const fd = structuredClone(formData);
+ fd.name = (index + 1).toString().padStart(2, '0');
+ fd[this.state.layout.map.name + ':extent'] = this.formatExtent(extent);
+ return fd;
+ });
+ }
+
+ const timestamp = dayjs(new Date()).format("YYYYMMDD_HHmmss");
+ const fileName = this.props.fileNameTemplate
+ .replace("{theme}", this.props.theme.id)
+ .replace("{timestamp}", timestamp);
+
+ // batch print all pages
+ this.batchPrint(pages, fileName)
+ .catch((e) => {
+ this.setState({ outputLoaded: true, printOutputVisible: false });
+ if (e.response) {
+ /* eslint-disable-next-line */
+ console.warn(new TextDecoder().decode(e.response.data));
+ }
+ /* eslint-disable-next-line */
+ alert('Print failed');
+ }).finally(() => {
+ this.setState({ printing: false });
+ });
+ };
+ async batchPrint(pages, fileName) {
+ // Print pages on server
+ const promises = pages.map((formData) => this.printRequest(formData));
+ // Collect printing results
+ const docs = await Promise.all(promises);
+ // Convert into downloadable files
+ const files = await this.collectFiles(docs, fileName);
+ // Download or display files
+ if (this.props.inlinePrintOutput && files.length === 1) {
+ const file = files.pop();
+ const fileURL = URL.createObjectURL(file.content);
+ this.setState({ pdfData: file, pdfDataUrl: fileURL, outputLoaded: true });
+ } else {
+ for (const file of files) {
+ FileSaver.saveAs(file.content, file.fileName);
+ }
+ }
+ }
+ async printRequest(formData) {
const data = Object.entries(formData).map((pair) =>
pair.map(entry => encodeURIComponent(entry).replace(/%20/g, '+')).join("=")
- ).join("&");
+ ).join('&');
const config = {
headers: {'Content-Type': 'application/x-www-form-urlencoded' },
- responseType: "arraybuffer"
+ responseType: 'arraybuffer'
};
- axios.post(this.props.theme.printUrl, data, config).then(response => {
- this.setState({printing: false});
- const contentType = response.headers["content-type"];
- const file = new Blob([response.data], { type: contentType });
- if (this.props.inlinePrintOutput) {
- const fileURL = URL.createObjectURL(file);
- this.setState({ pdfData: file, pdfDataUrl: fileURL, outputLoaded: true });
- } else {
- const ext = this.state.selectedFormat.split(";")[0].split("/").pop();
- FileSaver.saveAs(file, this.props.theme.id + '.' + ext);
- }
- }).catch(e => {
- this.setState({printing: false, outputLoaded: true, printOutputVisible: false});
- if (e.response) {
- /* eslint-disable-next-line */
- console.warn(new TextDecoder().decode(e.response.data));
- }
- /* eslint-disable-next-line */
- alert('Print failed');
+ const response = await axios.post(this.props.theme.printUrl, data, config);
+ const contentType = response.headers['content-type'];
+ return {
+ name: formData.name,
+ data: response.data,
+ contentType: contentType
+ };
+ }
+ async collectFiles(docs, fileName) {
+ if (docs.length > 1 && this.state.downloadMode === 'onepdf') {
+ const data = await this.collectOnePdf(docs);
+ const content = new Blob([data], { type: 'application/pdf' });
+ return [{ content, fileName: fileName + '.pdf' }];
+ }
+ if (docs.length > 1 && this.state.downloadMode === 'onezip') {
+ const data = await this.collectOneZip(docs, fileName);
+ const content = new Blob([data], { type: 'application/zip' });
+ return [{ content, fileName: fileName + '.zip' }];
+ }
+ return docs.map((doc) => {
+ const content = new Blob([doc.data], { type: doc.contentType });
+ const ext = this.state.selectedFormat.split(";")[0].split("/").pop();
+ const appendix = doc.name ? '_' + doc.name : '';
+ return { content, fileName: fileName + appendix + '.' + ext };
});
- };
+ }
+ async collectOnePdf(docs) {
+ const mergedDoc = await PDFDocument.create();
+ for (const doc of docs) {
+ const pdfBytes = await PDFDocument.load(doc.data);
+ const copiedPages = await mergedDoc.copyPages(pdfBytes, pdfBytes.getPageIndices());
+ for (const page of copiedPages) {
+ mergedDoc.addPage(page);
+ }
+ }
+ return await mergedDoc.save();
+ }
+ async collectOneZip(docs, fileName) {
+ const mergedDoc = new JSZip();
+ for (const doc of docs) {
+ const file = new Blob([doc.data], { type: doc.contentType });
+ const ext = this.state.selectedFormat.split(";")[0].split("/").pop();
+ const appendix = doc.name ? '_' + doc.name : '';
+ mergedDoc.file(fileName + appendix + '.' + ext, file);
+ }
+ return await mergedDoc.generateAsync({ type: 'arraybuffer' });
+ }
}
const selector = (state) => ({
@@ -649,6 +817,6 @@ const selector = (state) => ({
export default connect(selector, {
addLayerFeatures: addLayerFeatures,
clearLayer: clearLayer,
- changeRotation: changeRotation,
- panTo: panTo
+ setIdentifyEnabled: setIdentifyEnabled,
+ setSnappingConfig: setSnappingConfig
})(Print);
diff --git a/plugins/RasterExport.jsx b/plugins/RasterExport.jsx
deleted file mode 100644
index d81bbe16f..000000000
--- a/plugins/RasterExport.jsx
+++ /dev/null
@@ -1,377 +0,0 @@
-/**
- * Copyright 2017-2024 Sourcepole AG
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-import React from 'react';
-import {connect} from 'react-redux';
-
-import axios from 'axios';
-import FileSaver from 'file-saver';
-import formDataEntries from 'formdata-json';
-import isEmpty from 'lodash.isempty';
-import PropTypes from 'prop-types';
-
-import {LayerRole} from '../actions/layers';
-import {setCurrentTask} from '../actions/task';
-import Icon from '../components/Icon';
-import PrintFrame from '../components/PrintFrame';
-import SideBar from '../components/SideBar';
-import InputContainer from '../components/widgets/InputContainer';
-import Spinner from '../components/widgets/Spinner';
-import ConfigUtils from '../utils/ConfigUtils';
-import CoordinatesUtils from '../utils/CoordinatesUtils';
-import LayerUtils from '../utils/LayerUtils';
-import LocaleUtils from '../utils/LocaleUtils';
-import MapUtils from '../utils/MapUtils';
-import MiscUtils from '../utils/MiscUtils';
-import VectorLayerUtils from '../utils/VectorLayerUtils';
-
-import './style/RasterExport.css';
-
-
-/**
- * Allows exporting a selected portion of the map to an image ("screenshot").
- *
- * Deprecated. Use the MapExport plugin instead.
- */
-class RasterExport extends React.Component {
- static propTypes = {
- /** Whitelist of allowed export format mimetypes. If empty, supported formats are listed. */
- allowedFormats: PropTypes.arrayOf(PropTypes.string),
- /** List of scales at which to export the map. */
- allowedScales: PropTypes.arrayOf(PropTypes.number),
- /** Default export format mimetype. If empty, first available format is used. */
- defaultFormat: PropTypes.string,
- /** The factor to apply to the map scale to determine the initial export map scale. */
- defaultScaleFactor: PropTypes.number,
- /** List of dpis at which to export the map. If empty, the default server dpi is used. */
- dpis: PropTypes.arrayOf(PropTypes.number),
- /** Whether to include external layers in the image. Requires QGIS Server 3.x! */
- exportExternalLayers: PropTypes.bool,
- layers: PropTypes.array,
- map: PropTypes.object,
- /** List of image sizes to offer, in addition to the free-hand selection. The width and height are in millimeters. */
- pageSizes: PropTypes.arrayOf(PropTypes.shape({
- name: PropTypes.string,
- width: PropTypes.number,
- height: PropTypes.number
- })),
- setCurrentTask: PropTypes.func,
- /** The side of the application on which to display the sidebar. */
- side: PropTypes.string,
- theme: PropTypes.object
- };
- static defaultProps = {
- defaultScaleFactor: 0.5,
- exportExternalLayers: true,
- side: 'right',
- pageSizes: [
- {name: '15 x 15 cm', width: 150, height: 150},
- {name: '30 x 30 cm', width: 300, height: 300}
- ]
- };
- constructor(props) {
- super(props);
- this.form = null;
- this.state.dpi = props.dpis[0] || 96;
-
- /* eslint-disable-next-line */
- console.warn("The RasterExport plugin is deprecated. Use the MapExport plugin instead.");
- }
- state = {
- extent: '',
- width: 0,
- height: 0,
- exporting: false,
- availableFormats: [],
- selectedFormat: null,
- scale: '',
- pageSize: null,
- dpi: 96
- };
- componentDidUpdate(prevProps, prevState) {
- if (
- this.props.map.center !== prevProps.map.center ||
- this.state.pageSize !== prevState.pageSize ||
- this.state.scale !== prevState.scale ||
- this.state.dpi !== prevState.dpi
- ) {
- if (this.state.pageSize !== null) {
- this.setState((state) => {
- const center = this.props.map.center;
- const mapCrs = this.props.map.projection;
- const pageSize = this.props.pageSizes[state.pageSize];
- const widthm = state.scale * pageSize.width / 1000;
- const heightm = state.scale * pageSize.height / 1000;
- const {width, height} = MapUtils.transformExtent(mapCrs, center, widthm, heightm);
- let extent = [center[0] - 0.5 * width, center[1] - 0.5 * height, center[0] + 0.5 * width, center[1] + 0.5 * height];
- extent = (CoordinatesUtils.getAxisOrder(mapCrs).substr(0, 2) === 'ne' && this.props.theme.version === '1.3.0') ?
- extent[1] + "," + extent[0] + "," + extent[3] + "," + extent[2] :
- extent.join(',');
- return {
- width: Math.round(pageSize.width / 1000 * 39.3701 * state.dpi),
- height: Math.round(pageSize.height / 1000 * 39.3701 * state.dpi),
- extent: extent
- };
- });
- } else if (prevState.pageSize !== null) {
- this.setState({width: '', height: '', extent: ''});
- }
- }
- }
- formatChanged = (ev) => {
- this.setState({selectedFormat: ev.target.value});
- };
- dpiChanged = (ev) => {
- this.setState({dpi: parseInt(ev.target.value, 10)});
- };
- renderBody = () => {
- if (!this.props.theme || !this.state.selectedFormat) {
- return null;
- }
- const formatMap = {
- "image/jpeg": "JPEG",
- "image/png": "PNG",
- "image/png; mode=16bit": "PNG 16bit",
- "image/png; mode=8bit": "PNG 8bit",
- "image/png; mode=1bit": "PNG 1bit",
- "image/geotiff": "GeoTIFF",
- "image/tiff": "GeoTIFF"
- };
-
- let scaleChooser = null;
- if (!isEmpty(this.props.allowedScales)) {
- scaleChooser = (
- );
- } else {
- scaleChooser = (
- this.setState({scale: ev.target.value})} role="input" type="number" value={this.state.scale} />
- );
- }
- const filename = this.props.theme.name.split("/").pop() + "." + this.state.selectedFormat.split(";")[0].split("/").pop();
- const action = this.props.theme.url;
- const exportExternalLayers = this.props.exportExternalLayers && ConfigUtils.getConfigProp("qgisServerVersion") >= 3;
-
- const exportParams = LayerUtils.collectPrintParams(this.props.layers, this.props.theme, this.state.scale, this.props.map.projection, exportExternalLayers);
-
- // Local vector layer features
- const mapCrs = this.props.map.projection;
- const highlightParams = VectorLayerUtils.createPrintHighlighParams(this.props.layers, mapCrs, this.state.scale, this.state.dpi);
- const dimensionValues = this.props.layers.reduce((res, layer) => {
- if (layer.role === LayerRole.THEME) {
- Object.entries(layer.dimensionValues || {}).forEach(([key, value]) => {
- if (value !== undefined) {
- res[key] = value;
- }
- });
- }
- return res;
- }, {});
-
- return (
-
- );
- };
- renderFrame = () => {
- if (this.state.pageSize !== null) {
- const px2m = 1 / (this.state.dpi * 39.3701) * this.state.scale;
- const frame = {
- width: this.state.width * px2m,
- height: this.state.height * px2m
- };
- return ( );
- } else {
- return ( );
- }
- };
- render() {
- const minMaxTooltip = this.state.minimized ? LocaleUtils.tr("print.maximize") : LocaleUtils.tr("print.minimize");
- const extraTitlebarContent = ( this.setState((state) => ({minimized: !state.minimized}))} title={minMaxTooltip}/>);
- return (
-
- {() => ({
- body: this.state.minimized ? null : this.renderBody(),
- extra: [
- this.renderFrame()
- ]
- })}
-
- );
- }
- onShow = () => {
- let scale = Math.round(MapUtils.computeForZoom(this.props.map.scales, this.props.map.zoom) * this.props.defaultScaleFactor);
- if (!isEmpty(this.props.allowedScales)) {
- let closestVal = Math.abs(scale - this.props.allowedScales[0]);
- let closestIdx = 0;
- for (let i = 1; i < this.props.allowedScales.length; ++i) {
- const currVal = Math.abs(scale - this.props.allowedScales[i]);
- if (currVal < closestVal) {
- closestVal = currVal;
- closestIdx = i;
- }
- }
- scale = this.props.allowedScales[closestIdx];
- }
- let availableFormats = this.props.theme.availableFormats;
- if (!isEmpty(this.props.allowedFormats)) {
- availableFormats = availableFormats.filter(fmt => this.props.allowedFormats.includes(fmt));
- }
- const selectedFormat = this.props.defaultFormat && availableFormats.includes(this.props.defaultFormat) ? this.props.defaultFormat : availableFormats[0];
- this.setState({scale: scale, availableFormats: availableFormats, selectedFormat: selectedFormat});
- };
- onHide = () => {
- this.setState({
- extent: '',
- width: '',
- height: ''
- });
- };
- bboxSelected = (bbox, crs, pixelsize) => {
- const version = this.props.theme.version;
- let extent = '';
- if (bbox) {
- extent = (CoordinatesUtils.getAxisOrder(crs).substr(0, 2) === 'ne' && version === '1.3.0') ?
- bbox[1] + "," + bbox[0] + "," + bbox[3] + "," + bbox[2] :
- bbox.join(',');
- }
- this.setState((state) => ({
- extent: extent,
- width: Math.round(pixelsize[0] * parseInt(state.dpi || 96, 10) / 96),
- height: Math.round(pixelsize[1] * parseInt(state.dpi || 96, 10) / 96)
- }));
- };
- export = (ev) => {
- ev.preventDefault();
- this.setState({exporting: true});
- const formData = formDataEntries(new FormData(this.form));
- const data = Object.entries(formData).map((pair) =>
- pair.map(entry => encodeURIComponent(entry).replace(/%20/g, '+')).join("=")
- ).join("&");
- const config = {
- headers: {'Content-Type': 'application/x-www-form-urlencoded' },
- responseType: "arraybuffer"
- };
- axios.post(this.props.theme.url, data, config).then(response => {
- this.setState({exporting: false});
- const contentType = response.headers["content-type"];
- FileSaver.saveAs(new Blob([response.data], {type: contentType}), this.props.theme.name + '.pdf');
- }).catch(e => {
- this.setState({exporting: false});
- if (e.response) {
- /* eslint-disable-next-line */
- console.log(new TextDecoder().decode(e.response.data));
- }
- /* eslint-disable-next-line */
- alert('Export failed');
- });
- };
-}
-
-const selector = (state) => ({
- theme: state.theme.current,
- map: state.map,
- layers: state.layers.flat
-});
-
-export default connect(selector, {
- setCurrentTask: setCurrentTask
-})(RasterExport);
diff --git a/plugins/style/DxfExport.css b/plugins/style/DxfExport.css
deleted file mode 100644
index 3584b4369..000000000
--- a/plugins/style/DxfExport.css
+++ /dev/null
@@ -1,23 +0,0 @@
-.DxfExport div.help-text {
- font-style: italic;
- padding-bottom: 0.5em;
-}
-
-.DxfExport div.export-settings {
- font-size: small;
-}
-
-.DxfExport div.export-settings > span {
- margin: 0 0.25em;
-}
-
-.DxfExport div.export-settings select {
- border: 1px solid var(--border-color);
- background-color: var(--input-bg-color);
- display: inline-flex;
- align-items: center;
-}
-
-.DxfExport div.input-container input {
- width: 8ch;
-}
diff --git a/plugins/style/RasterExport.css b/plugins/style/RasterExport.css
deleted file mode 100644
index 04c3e3910..000000000
--- a/plugins/style/RasterExport.css
+++ /dev/null
@@ -1,55 +0,0 @@
-#RasterExport div.rasterexport-body {
- padding: 0.25em;
-}
-
-#RasterExport .rasterexport-minimize-maximize {
- margin-left: 1em;
- padding: 0.25em;
-}
-
-#RasterExport table.options-table {
- width: 100%;
-}
-
-#RasterExport table.options-table td {
- padding: 0.125em 0;
-}
-
-#RasterExport table.options-table td:first-child {
- max-width: 10em;
- overflow: hidden;
- text-overflow: ellipsis;
- padding-right: 0.25em;
-}
-
-#RasterExport table.options-table td:nth-child(2) {
- width: 99%;
-}
-
-#RasterExport table.options-table td:nth-child(2) > * {
- width: 100%;
-}
-
-#RasterExport table.options-table textarea {
- resize: vertical;
-}
-
-#RasterExport div.button-bar {
- margin-top: 0.5em;
-}
-
-#RasterExport div.button-bar > button {
- width: 100%;
-}
-
-#RasterExport span.rasterexport-wait {
- display: flex;
- align-items: center;
-}
-
-#RasterExport span.rasterexport-wait div.spinner {
- width: 1.25em;
- height: 1.25em;
- margin-right: 0.5em;
- flex: 0 0 auto;
-}
\ No newline at end of file
diff --git a/translations/ca-ES.json b/translations/ca-ES.json
index ba6cc6a95..2ce29b3ff 100644
--- a/translations/ca-ES.json
+++ b/translations/ca-ES.json
@@ -18,14 +18,12 @@
"MapExport": "Exportar mapa",
"MapFilter": "",
"Print": "Imprimir",
- "RasterExport": "Exportar trama",
"Reports": "",
"Settings": "Opcions",
"Share": "Compartir link",
"ThemeSwitcher": "Tema",
"AttributeTable": "Taula d'atributs",
"Cyclomedia": "",
- "DxfExport": "Exportar DXF",
"FeatureForm": "Formulari d'element",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "Capes",
- "selectinfo": "Arrossega un rectangle al voltant de la zona per exportar...",
- "symbologyscale": "Escala de la simbologia:"
- },
"editing": {
"add": "Afegir",
"attrtable": "Taula",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Graella",
"layout": "Diseny",
@@ -359,26 +356,19 @@
"nolayouts": "El tema seleccionat no admet la impresió",
"notheme": "No hi ha tema seleccionat",
"output": "Sortida d'impressió",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Resolució",
"rotation": "Rotació",
"save": "",
"scale": "Escala",
+ "series": "",
"submit": "Imprimir",
"wait": "Esperi si us plau..."
},
"qtdesignerform": {
"loading": "Carregant formulari..."
},
- "rasterexport": {
- "format": "Format:",
- "resolution": "Resolució:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Límit",
"buffer": "Buffer",
diff --git a/translations/cs-CZ.json b/translations/cs-CZ.json
index 3d8345faa..d5a0a80ad 100644
--- a/translations/cs-CZ.json
+++ b/translations/cs-CZ.json
@@ -18,14 +18,12 @@
"MapExport": "Export mapu",
"MapFilter": "",
"Print": "Tisk",
- "RasterExport": "Export rastru",
"Reports": "",
"Settings": "Nastavení",
"Share": "Sdílet odkaz",
"ThemeSwitcher": "Téma",
"AttributeTable": "Atributy",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "DXF Export",
"FeatureForm": "Editační formulář",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": "Cyclomedia"
},
- "dxfexport": {
- "layers": "Vrstvy",
- "selectinfo": "Vyberte oblast pro export...",
- "symbologyscale": "Meřítko symbolů:"
- },
"editing": {
"add": "Přidat",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formát",
"grid": "Mřížka:",
"layout": "Rovržení:",
@@ -359,26 +356,19 @@
"nolayouts": "Vybrané téma nepodporuje tisk",
"notheme": "Není vybráno téma",
"output": "",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Rozlišení",
"rotation": "Orientace",
"save": "",
"scale": "Měřítko",
+ "series": "",
"submit": "Tisk",
"wait": "Čekejte..."
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Formát:",
- "resolution": "Rozlišení:",
- "scale": "Měřítko",
- "size": "Velikost",
- "submit": "Export",
- "usersize": "Vybrat na mapě...",
- "wait": "Čekejte..."
- },
"redlining": {
"border": "Okraj",
"buffer": "",
diff --git a/translations/de-CH.json b/translations/de-CH.json
index 612b4caee..4f1db5468 100644
--- a/translations/de-CH.json
+++ b/translations/de-CH.json
@@ -18,14 +18,12 @@
"MapExport": "Karte exportieren",
"MapFilter": "Kartenfilter",
"Print": "Drucken",
- "RasterExport": "Raster-Export",
"Reports": "Berichte",
"Settings": "Einstellungen",
"Share": "Teilen",
"ThemeSwitcher": "Themen",
"AttributeTable": "Attributtabelle",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "DXF-Export",
"FeatureForm": "Objektformular",
"FeatureSearch": "Objektsuche",
"GeometryDigitizer": "Geometriedigitalisierung",
@@ -113,11 +111,6 @@
"scalehint": "Die Aufnahmen sind nur ab Massstab 1:{0} auf der Karte sichtbar.",
"title": "Cyclomedia Viewer"
},
- "dxfexport": {
- "layers": "Ebenen",
- "selectinfo": "Rechteck um die zu exportierende Region aufziehen",
- "symbologyscale": "Darstellungsmassstab"
- },
"editing": {
"add": "Hinzufügen",
"attrtable": "Tabelle",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Atlasobjekt",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Gitter",
"layout": "Format",
@@ -359,26 +356,19 @@
"nolayouts": "Das gewählte Thema stellt keine Druck-Vorlagen zur Verfügung.",
"notheme": "Kein Thema selektiert",
"output": "Druckausgabe",
+ "overlap": "",
"pickatlasfeature": "In Ebene {0} auswählen...",
"resolution": "Auflösung",
"rotation": "Rotation",
"save": "Speichern",
"scale": "Massstab",
+ "series": "",
"submit": "Erzeugen",
"wait": "Bitte warten..."
},
"qtdesignerform": {
"loading": "Formular wird geladen..."
},
- "rasterexport": {
- "format": "Format",
- "resolution": "Auflösung",
- "scale": "Massstab",
- "size": "Dimensionen",
- "submit": "Exportieren",
- "usersize": "Auf Karte auswählen...",
- "wait": "Bitte warten..."
- },
"redlining": {
"border": "Rand",
"buffer": "Puffern",
diff --git a/translations/de-DE.json b/translations/de-DE.json
index 2efb63566..97eedcfcb 100644
--- a/translations/de-DE.json
+++ b/translations/de-DE.json
@@ -18,14 +18,12 @@
"MapExport": "Karte exportieren",
"MapFilter": "Kartenfilter",
"Print": "Drucken",
- "RasterExport": "Raster-Export",
"Reports": "Berichte",
"Settings": "Einstellungen",
"Share": "Teilen",
"ThemeSwitcher": "Themen",
"AttributeTable": "Attributtabelle",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "DXF-Export",
"FeatureForm": "Objektformular",
"FeatureSearch": "Objektsuche",
"GeometryDigitizer": "Geometriedigitalisierung",
@@ -113,11 +111,6 @@
"scalehint": "Die Aufnahmen sind nur ab Maßstab 1:{0} auf der Karte sichtbar.",
"title": "Cyclomedia Viewer"
},
- "dxfexport": {
- "layers": "Ebenen",
- "selectinfo": "Rechteck um die zu exportierende Region aufziehen",
- "symbologyscale": "Darstellungsmaßstab"
- },
"editing": {
"add": "Hinzufügen",
"attrtable": "Tabelle",
@@ -350,35 +343,32 @@
},
"print": {
"atlasfeature": "Atlasobjekt",
+ "download": "Herunterladen",
+ "download_as_onepdf": "als ein PDF-Dokument",
+ "download_as_onezip": "als ein ZIP-Archiv",
+ "download_as_single": "als einzelne Dateien",
"format": "Format",
"grid": "Gitter",
- "layout": "Format",
+ "layout": "Layout",
"legend": "Legende",
"maximize": "Maximieren",
"minimize": "Minimieren",
"nolayouts": "Das gewählte Thema stellt keine Druck-Vorlagen zur Verfügung.",
"notheme": "Kein Thema selektiert",
"output": "Druckausgabe",
+ "overlap": "Überlappung",
"pickatlasfeature": "In Ebene {0} auswählen...",
"resolution": "Auflösung",
"rotation": "Rotation",
"save": "Speichern",
"scale": "Maßstab",
+ "series": "Seriendruck",
"submit": "Erzeugen",
"wait": "Bitte warten..."
},
"qtdesignerform": {
"loading": "Formular wird geladen..."
},
- "rasterexport": {
- "format": "Format",
- "resolution": "Auflösung",
- "scale": "Maßstab",
- "size": "Dimensionen",
- "submit": "Exportieren",
- "usersize": "Auf Karte auswählen...",
- "wait": "Bitte warten..."
- },
"redlining": {
"border": "Rand",
"buffer": "Puffern",
diff --git a/translations/en-US.json b/translations/en-US.json
index 9da5d2b4b..4bb96dd47 100644
--- a/translations/en-US.json
+++ b/translations/en-US.json
@@ -18,14 +18,12 @@
"MapExport": "Export map",
"MapFilter": "Map Filter",
"Print": "Print",
- "RasterExport": "Raster Export",
"Reports": "Reports",
"Settings": "Settings",
"Share": "Share Link",
"ThemeSwitcher": "Theme",
"AttributeTable": "Attribute Table",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "DXF Export",
"FeatureForm": "Feature Form",
"FeatureSearch": "Feature Search",
"GeometryDigitizer": "Geometry digitizer",
@@ -113,11 +111,6 @@
"scalehint": "The recordings are only visible on the map below scale 1:{0}.",
"title": "Cyclomedia Viewer"
},
- "dxfexport": {
- "layers": "Layers",
- "selectinfo": "Drag a rectangle around the region to export...",
- "symbologyscale": "Symbology scale"
- },
"editing": {
"add": "Add",
"attrtable": "Table",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Atlas feature",
+ "download": "Download",
+ "download_as_onepdf": "as one PDF document",
+ "download_as_onezip": "as one ZIP file",
+ "download_as_single": "as single files",
"format": "Format",
"grid": "Grid",
"layout": "Layout",
@@ -359,26 +356,19 @@
"nolayouts": "The selected theme does not support printing",
"notheme": "No theme selected",
"output": "Print output",
+ "overlap": "Overlap",
"pickatlasfeature": "Pick in layer {0}...",
"resolution": "Resolution",
"rotation": "Rotation",
"save": "Save",
"scale": "Scale",
+ "series": "Print series",
"submit": "Print",
"wait": "Please wait..."
},
"qtdesignerform": {
"loading": "Loading form..."
},
- "rasterexport": {
- "format": "Format",
- "resolution": "Resolution",
- "scale": "Scale",
- "size": "Size",
- "submit": "Export",
- "usersize": "Select on map...",
- "wait": "Please wait..."
- },
"redlining": {
"border": "Border",
"buffer": "Buffer",
diff --git a/translations/es-ES.json b/translations/es-ES.json
index 9a8a4da9c..32c0da801 100644
--- a/translations/es-ES.json
+++ b/translations/es-ES.json
@@ -18,14 +18,12 @@
"MapExport": "Exportar mapa",
"MapFilter": "",
"Print": "Imprimir",
- "RasterExport": "Exportar trama",
"Reports": "",
"Settings": "Opciones",
"Share": "Compartir enlace",
"ThemeSwitcher": "Tema",
"AttributeTable": "Tabla de Atributos",
"Cyclomedia": "",
- "DxfExport": "Exportar DXF",
"FeatureForm": "Formulario de Elemento",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "Capas",
- "selectinfo": "Arrastre un rectángulo alrededor de la zona para exportar...",
- "symbologyscale": "Escala de la simbología:"
- },
"editing": {
"add": "Añadir",
"attrtable": "Tabla",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formato:",
"grid": "Grilla:",
"layout": "Diseño:",
@@ -359,26 +356,19 @@
"nolayouts": "El tema seleccionado no admite su impresión",
"notheme": "No hay tema seleccionado",
"output": "Salida de impresión",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Resolución",
"rotation": "Rotación",
"save": "",
"scale": "Escala:",
+ "series": "",
"submit": "Imprimir",
"wait": "Por favor espere..."
},
"qtdesignerform": {
"loading": "Cargando formulario..."
},
- "rasterexport": {
- "format": "Formato:",
- "resolution": "Resolución:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Límite",
"buffer": "Bufer",
diff --git a/translations/fi-FI.json b/translations/fi-FI.json
index d21a20b8d..c4b50ea1e 100644
--- a/translations/fi-FI.json
+++ b/translations/fi-FI.json
@@ -18,14 +18,12 @@
"MapExport": "Vienti kartta",
"MapFilter": "",
"Print": "Tulosta",
- "RasterExport": "Rasterin vienti",
"Reports": "",
"Settings": "",
"Share": "Jaa linkki",
"ThemeSwitcher": "Teema",
"AttributeTable": "",
"Cyclomedia": "",
- "DxfExport": "DXF vienti",
"FeatureForm": "",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "Karttatasot",
- "selectinfo": "Piirrä suorakulmio alueen ympärille vientiä varten",
- "symbologyscale": "Symbolien mittakaava"
- },
"editing": {
"add": "",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formaatti",
"grid": "Ristikko",
"layout": "Layout",
@@ -359,26 +356,19 @@
"nolayouts": "Valittu teema ei tue tulostamista",
"notheme": "Teemaa ei ole valittu",
"output": "Tulosta tuotos",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Resoluutio",
"rotation": "Rotaatio",
"save": "",
"scale": "Mittakaava",
+ "series": "",
"submit": "Tulosta",
"wait": "Odota..."
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Formaatti:",
- "resolution": "Resoluutio:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Reunat",
"buffer": "Bufferi",
diff --git a/translations/fr-FR.json b/translations/fr-FR.json
index e85f4293f..85e126c6e 100644
--- a/translations/fr-FR.json
+++ b/translations/fr-FR.json
@@ -18,14 +18,12 @@
"MapExport": "Exporter la carte",
"MapFilter": "Filtrer la carte",
"Print": "Imprimer",
- "RasterExport": "Exporter l'image",
"Reports": "Rapports",
"Settings": "Paramètres",
"Share": "Partager",
"ThemeSwitcher": "Thèmes",
"AttributeTable": "Table d'attributs",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "Export DXF",
"FeatureForm": "Formulaire d'objet",
"FeatureSearch": "Recherche objet",
"GeometryDigitizer": "Digitalisation des géométries",
@@ -113,11 +111,6 @@
"scalehint": "Les enregistrements ne sont visibles que sur la carte sous l'échelle 1 :{0}.",
"title": "Visualiseur Cyclomedia"
},
- "dxfexport": {
- "layers": "Couches",
- "selectinfo": "Faites glisser un rectangle autour de la région à exporter..",
- "symbologyscale": "Echelle"
- },
"editing": {
"add": "Ajouter",
"attrtable": "Table",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Objet atlas",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Grille",
"layout": "Mise en page",
@@ -359,26 +356,19 @@
"nolayouts": "Il n'y a pas de mise en page disponible pour le thème choisi.",
"notheme": "Pas de thème sélectionné",
"output": "Impression",
+ "overlap": "",
"pickatlasfeature": "Choisir dans la couche {0}",
"resolution": "Résolution",
"rotation": "Rotation",
"save": "Enregistrer",
"scale": "Echelle",
+ "series": "",
"submit": "Imprimer",
"wait": "Veuillez patienter..."
},
"qtdesignerform": {
"loading": "Chargement du formulaire..."
},
- "rasterexport": {
- "format": "Format",
- "resolution": "Résolution",
- "scale": "Echelle",
- "size": "Dimension",
- "submit": "Exporter",
- "usersize": "Selectionner sur la carte...",
- "wait": "Veuillez patienter..."
- },
"redlining": {
"border": "Bordure",
"buffer": "Tampon",
diff --git a/translations/hu-HU.json b/translations/hu-HU.json
index 2d94fb425..a3eec4725 100644
--- a/translations/hu-HU.json
+++ b/translations/hu-HU.json
@@ -18,14 +18,12 @@
"MapExport": "Export térkép",
"MapFilter": "",
"Print": "Nyomtatás",
- "RasterExport": "Kép exportálása",
"Reports": "",
"Settings": "",
"Share": "Megosztható link",
"ThemeSwitcher": "Térkép",
"AttributeTable": "",
"Cyclomedia": "",
- "DxfExport": "DXF Exportálás",
"FeatureForm": "",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "",
- "selectinfo": "Rajzolj egy négyszöget az exportálni kívánt terület köré...",
- "symbologyscale": "Jel méretatarány:"
- },
"editing": {
"add": "",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formátum",
"grid": "Rács",
"layout": "Elrendezés",
@@ -359,26 +356,19 @@
"nolayouts": "A kiválasztott térkép nem támogatja a nyomtatást",
"notheme": "Nincs térkép kiválasztva",
"output": "",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Felbontás",
"rotation": "Forgatás",
"save": "",
"scale": "Méretarány",
+ "series": "",
"submit": "Nyomtatás",
"wait": ""
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Formátum:",
- "resolution": "Felbontás:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Szegély",
"buffer": "",
diff --git a/translations/it-IT.json b/translations/it-IT.json
index ae5528257..65a2cd672 100644
--- a/translations/it-IT.json
+++ b/translations/it-IT.json
@@ -18,14 +18,12 @@
"MapExport": "Esporta mappa",
"MapFilter": "Filta mappa",
"Print": "Stampa",
- "RasterExport": "Esporta su immagine",
"Reports": "Rapporti",
"Settings": "Impostazioni",
"Share": "Condividi",
"ThemeSwitcher": "Temi",
"AttributeTable": "Tabella attributi",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "Esporta su DXF",
"FeatureForm": "Formulario oggetto",
"FeatureSearch": "Ricerca oggetto",
"GeometryDigitizer": "Digitalizzazione geometrie",
@@ -113,11 +111,6 @@
"scalehint": "Le registrazioni sono solo visibili sulla mappa a partire da una scala di 1:{0}.",
"title": "Visualizzatore Cyclomedia"
},
- "dxfexport": {
- "layers": "Livelli",
- "selectinfo": "Seleziona l'area da esportare",
- "symbologyscale": "Scala per la simbologia"
- },
"editing": {
"add": "Aggiungi",
"attrtable": "Tabella",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Oggetto atlante",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formato",
"grid": "Griglia",
"layout": "Layout",
@@ -359,26 +356,19 @@
"nolayouts": "Nessun layout di stampa",
"notheme": "Nessun tema selezionato",
"output": "Stampa",
+ "overlap": "",
"pickatlasfeature": "Seleziona nel livello {1}...",
"resolution": "Risoluzione",
"rotation": "Rotazione",
"save": "Salva",
"scale": "Scala",
+ "series": "",
"submit": "Stampa",
"wait": "Attendere..."
},
"qtdesignerform": {
"loading": "Caricando formulario..."
},
- "rasterexport": {
- "format": "Formato",
- "resolution": "Risoluzione",
- "scale": "Scala",
- "size": "Dimensione",
- "submit": "Esporta",
- "usersize": "Seleziona sulla mappa...",
- "wait": "Attendere..."
- },
"redlining": {
"border": "Bordo",
"buffer": "Buffer",
diff --git a/translations/no-NO.json b/translations/no-NO.json
index 2e56d6098..1093234e9 100644
--- a/translations/no-NO.json
+++ b/translations/no-NO.json
@@ -18,14 +18,12 @@
"MapExport": "Eksport kart",
"MapFilter": "",
"Print": "Skriv ut",
- "RasterExport": "Eksporter Raster",
"Reports": "",
"Settings": "",
"Share": "Del lenke",
"ThemeSwitcher": "Tema",
"AttributeTable": "",
"Cyclomedia": "",
- "DxfExport": "Eksporter DXF",
"FeatureForm": "",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "",
- "selectinfo": "Tegn et rektangel rundt området som skal eksporteres...",
- "symbologyscale": "Symbolskala:"
- },
"editing": {
"add": "",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Rutenett",
"layout": "Layout",
@@ -359,26 +356,19 @@
"nolayouts": "Valgt tema støtter ikke utskrift",
"notheme": "Ingen tema valgt",
"output": "Utskrift",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Oppløsning",
"rotation": "Rotasjon",
"save": "",
"scale": "Skala",
+ "series": "",
"submit": "Skriv ut",
"wait": "Venter..."
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Format:",
- "resolution": "Oppløsning:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Kant",
"buffer": "Buffer",
diff --git a/translations/pl-PL.json b/translations/pl-PL.json
index 98e53c1e7..3fa4466fc 100644
--- a/translations/pl-PL.json
+++ b/translations/pl-PL.json
@@ -18,14 +18,12 @@
"MapExport": "Eksportuj mapę",
"MapFilter": "",
"Print": "Drukuj",
- "RasterExport": "Eksport Rastra",
"Reports": "",
"Settings": "",
"Share": "Udostępnij Link",
"ThemeSwitcher": "Motyw",
"AttributeTable": "",
"Cyclomedia": "",
- "DxfExport": "Eksport DXF",
"FeatureForm": "",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "",
- "selectinfo": "Narysuj prostokąt, określając obszar do eksportu...",
- "symbologyscale": "Skala symbolizacji:"
- },
"editing": {
"add": "",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Siatka",
"layout": "Layout",
@@ -359,26 +356,19 @@
"nolayouts": "Wybrany motyw nie umożliwia drukowania",
"notheme": "Brak wybranego motywu",
"output": "Drukuj output",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Rozdzielczość",
"rotation": "Obrót",
"save": "",
"scale": "Skala",
+ "series": "",
"submit": "Drukuj",
"wait": "Proszę czekać..."
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Format:",
- "resolution": "Rozdzielczość:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Obramowanie",
"buffer": "Buforuj",
diff --git a/translations/pt-BR.json b/translations/pt-BR.json
index bdfa798ab..6e19fab83 100644
--- a/translations/pt-BR.json
+++ b/translations/pt-BR.json
@@ -18,14 +18,12 @@
"MapExport": "Exportar mapa",
"MapFilter": "",
"Print": "Imprimir",
- "RasterExport": "Exportar imagem",
"Reports": "",
"Settings": "Configurações",
"Share": "Compartilhar link",
"ThemeSwitcher": "Tema",
"AttributeTable": "Tabela de atributos",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "Exportar DXF",
"FeatureForm": "Atributos da feição",
"FeatureSearch": "Procurar feição",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "Indicação de escala",
"title": "Titulo"
},
- "dxfexport": {
- "layers": "Camada",
- "selectinfo": "Arraste um retângulo ao redor da região para exportar",
- "symbologyscale": "Escala de simbologia"
- },
"editing": {
"add": "Adicionar",
"attrtable": "Tabela de atributos",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Feições do atlas",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formato",
"grid": "Grade",
"layout": "Layout",
@@ -359,26 +356,19 @@
"nolayouts": "O tema selecionado não suporta impressão",
"notheme": "Nenhum tema selecionado",
"output": "Saída de impressão",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Resolução",
"rotation": "Rotação",
"save": "",
"scale": "Escala",
+ "series": "",
"submit": "Imprimir",
"wait": "Aguarde..."
},
"qtdesignerform": {
"loading": "Carregando"
},
- "rasterexport": {
- "format": "Formato:",
- "resolution": "Resolução:",
- "scale": "Escala",
- "size": "Tamanho",
- "submit": "Enviar",
- "usersize": "Medidas do usuário",
- "wait": "Aguarde"
- },
"redlining": {
"border": "Borda",
"buffer": "Buffer",
diff --git a/translations/pt-PT.json b/translations/pt-PT.json
index a74847ba1..acbe3788d 100644
--- a/translations/pt-PT.json
+++ b/translations/pt-PT.json
@@ -18,14 +18,12 @@
"MapExport": "Exportar Mapa",
"MapFilter": "",
"Print": "Imprimir",
- "RasterExport": "Exportar Raster",
"Reports": "",
"Settings": "Configurações",
"Share": "Partilhar Link",
"ThemeSwitcher": "Tema",
"AttributeTable": "Tabela de Atributos",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "Exportar DXF",
"FeatureForm": "Formulário de Recurso",
"FeatureSearch": "Pesquisa de Recurso",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "Dica de Escala",
"title": "Cyclomedia"
},
- "dxfexport": {
- "layers": "Camadas",
- "selectinfo": "Arraste um retângulo ao redor da região para exportar...",
- "symbologyscale": "Escala de Símbolos"
- },
"editing": {
"add": "Adicionar",
"attrtable": "Tabela de Atributos",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Recurso do Atlas",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Formato",
"grid": "Grelha",
"layout": "Esquema",
@@ -359,26 +356,19 @@
"nolayouts": "O tema selecionado não suporta a impressão",
"notheme": "Nenhum tema selecionado",
"output": "Saída",
+ "overlap": "",
"pickatlasfeature": "Escolher Recurso do Atlas",
"resolution": "Resolução",
"rotation": "Rotação",
"save": "",
"scale": "Escala",
+ "series": "",
"submit": "Imprimir",
"wait": "Por favor, aguarde..."
},
"qtdesignerform": {
"loading": "A carregar..."
},
- "rasterexport": {
- "format": "Formato:",
- "resolution": "Resolução:",
- "scale": "Escala:",
- "size": "Tamanho:",
- "submit": "Enviar",
- "usersize": "Tamanho Personalizado",
- "wait": "Por favor, aguarde..."
- },
"redlining": {
"border": "Fronteira",
"buffer": "Tampão",
diff --git a/translations/ro-RO.json b/translations/ro-RO.json
index 55ce07c07..969c265b9 100644
--- a/translations/ro-RO.json
+++ b/translations/ro-RO.json
@@ -18,14 +18,12 @@
"MapExport": "",
"MapFilter": "",
"Print": "Tipărire",
- "RasterExport": "Export Raster",
"Reports": "",
"Settings": "Setări",
"Share": "Trimite Link",
"ThemeSwitcher": "Hărți tematice",
"AttributeTable": "Tabela de atribute",
"Cyclomedia": "Cyclomedia",
- "DxfExport": "Export DXF",
"FeatureForm": "Editare atribute",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "Înregistrările sunt vizibile pe hartă doar la scara 1:{0} sau mai mare",
"title": "Informații Cyclomedia"
},
- "dxfexport": {
- "layers": "Straturi",
- "selectinfo": "Încadrați într-un dreptunghi zona de exportat..",
- "symbologyscale": "Scara simbolurilor"
- },
"editing": {
"add": "Adaugă",
"attrtable": "Tabel",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Obiect în atlas",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "",
"grid": "Grid",
"layout": "Șablon",
@@ -359,26 +356,19 @@
"nolayouts": "Această temă nu permite tipărirea",
"notheme": "Nicio temă selectată",
"output": "Rezultat tipărire",
+ "overlap": "",
"pickatlasfeature": "Selectare din stratul {0}...",
"resolution": "Rezoluție",
"rotation": "Rotație",
"save": "",
"scale": "Scară",
+ "series": "",
"submit": "Tipărește",
"wait": "Vă rugăm așteptați..."
},
"qtdesignerform": {
"loading": "Formularul se încarcă"
},
- "rasterexport": {
- "format": "Format",
- "resolution": "Rezoluție",
- "scale": "Scara",
- "size": "Dimensiuni",
- "submit": "Export",
- "usersize": "Selectați în hartă...",
- "wait": "Vă rugăm așteptați..."
- },
"redlining": {
"border": "Margine",
"buffer": "Zonă tampon",
diff --git a/translations/ru-RU.json b/translations/ru-RU.json
index 01837e489..eb37f18e9 100644
--- a/translations/ru-RU.json
+++ b/translations/ru-RU.json
@@ -18,14 +18,12 @@
"MapExport": "экспортировать карту",
"MapFilter": "",
"Print": "Печать",
- "RasterExport": "Экспорт в растровый Формат бумаги",
"Reports": "",
"Settings": "",
"Share": "Поделиться ссылкой",
"ThemeSwitcher": "Тема",
"AttributeTable": "",
"Cyclomedia": "",
- "DxfExport": "Экспорт в DXF",
"FeatureForm": "",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "",
- "selectinfo": "Для экспорта обведите регион многоугольником...",
- "symbologyscale": "Масштаб символики:"
- },
"editing": {
"add": "",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Формат бумаги",
"grid": "Сетка",
"layout": "Формат бумаги",
@@ -359,26 +356,19 @@
"nolayouts": "Выбранная тема не поддерживает печать",
"notheme": "Тема не выбрана",
"output": "",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Разрешение",
"rotation": "Поворот",
"save": "",
"scale": "Масштаб",
+ "series": "",
"submit": "Печать",
"wait": ""
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Формат бумаги:",
- "resolution": "Разрешение:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Граница",
"buffer": "",
diff --git a/translations/sv-SE.json b/translations/sv-SE.json
index d2e9ec872..09a6962b5 100644
--- a/translations/sv-SE.json
+++ b/translations/sv-SE.json
@@ -18,14 +18,12 @@
"MapExport": "Exportera karta",
"MapFilter": "",
"Print": "Skriv ut",
- "RasterExport": "Raster Export",
"Reports": "",
"Settings": "",
"Share": "Dela länk",
"ThemeSwitcher": "Tema",
"AttributeTable": "",
"Cyclomedia": "",
- "DxfExport": "DXF Export",
"FeatureForm": "",
"FeatureSearch": "",
"GeometryDigitizer": "",
@@ -113,11 +111,6 @@
"scalehint": "",
"title": ""
},
- "dxfexport": {
- "layers": "",
- "selectinfo": "Rita en rektangel runt området som ska exporteras...",
- "symbologyscale": "Symbolskala:"
- },
"editing": {
"add": "",
"attrtable": "",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Rutnät",
"layout": "Layout:",
@@ -359,26 +356,19 @@
"nolayouts": "Valt tema stöder inte utskrift",
"notheme": "Inget tema valt",
"output": "Utskrift",
+ "overlap": "",
"pickatlasfeature": "",
"resolution": "Upplösning",
"rotation": "Rotation",
"save": "",
"scale": "Skala",
+ "series": "",
"submit": "Skriv ut",
"wait": "Vänta..."
},
"qtdesignerform": {
"loading": ""
},
- "rasterexport": {
- "format": "Format:",
- "resolution": "Upplösning:",
- "scale": "",
- "size": "",
- "submit": "",
- "usersize": "",
- "wait": ""
- },
"redlining": {
"border": "Kant",
"buffer": "Buffert",
diff --git a/translations/tr-TR.json b/translations/tr-TR.json
index bf7f2d178..cbd979165 100644
--- a/translations/tr-TR.json
+++ b/translations/tr-TR.json
@@ -18,14 +18,12 @@
"MapExport": "Dışarıya ver",
"MapFilter": "Harita Filtresi",
"Print": "Yazdır",
- "RasterExport": "Resim Olarak Kaydet",
"Reports": "",
"Settings": "Ayarlar",
"Share": "Bağlantı Paylaş",
"ThemeSwitcher": "Tema",
"AttributeTable": "Öznitelik Tablosu",
"Cyclomedia": "Siklomedya",
- "DxfExport": "DXF'e Veri Aktar",
"FeatureForm": "Obje Formu",
"FeatureSearch": "Obje Arama",
"GeometryDigitizer": "Geometri Sayısallaştırıcı",
@@ -113,11 +111,6 @@
"scalehint": "The recordings are only visible on the map below scale 1:{0}.",
"title": "Cyclomedia Viewer"
},
- "dxfexport": {
- "layers": "Katmanlar",
- "selectinfo": "Export edilecek alana bir dikdörtgen çizin...",
- "symbologyscale": "Sembol Ölçeği:"
- },
"editing": {
"add": "Ekle",
"attrtable": "Tablo",
@@ -350,6 +343,10 @@
},
"print": {
"atlasfeature": "Atlas Objesi",
+ "download": "",
+ "download_as_onepdf": "",
+ "download_as_onezip": "",
+ "download_as_single": "",
"format": "Format",
"grid": "Karelaj",
"layout": "Yazdırma düzeni",
@@ -359,26 +356,19 @@
"nolayouts": "Seçili tema yazdırma işlemini desteklemiyor",
"notheme": "Tema seçilmedi",
"output": "Yazıcı çıktısı",
+ "overlap": "",
"pickatlasfeature": "Katmandan seçiniz: {0}...",
"resolution": "Çözünürlük",
"rotation": "Döndürme",
"save": "",
"scale": "Ölçek:",
+ "series": "",
"submit": "Yazdır",
"wait": "Lütfen bekleyiniz..."
},
"qtdesignerform": {
"loading": "Form yükleniyor..."
},
- "rasterexport": {
- "format": "Format:",
- "resolution": "Çözünürlük:",
- "scale": "Ölçek",
- "size": "Boyut",
- "submit": "Ver",
- "usersize": "Haritadan seç...",
- "wait": "Lütfen bekleyiniz..."
- },
"redlining": {
"border": "Sınır",
"buffer": "Tampon",
diff --git a/translations/tsconfig.json b/translations/tsconfig.json
index d68bc0ea7..6816b7c83 100644
--- a/translations/tsconfig.json
+++ b/translations/tsconfig.json
@@ -22,7 +22,6 @@
"extra_strings": [
"appmenu.items.AttributeTable",
"appmenu.items.Cyclomedia",
- "appmenu.items.DxfExport",
"appmenu.items.Editing",
"appmenu.items.FeatureForm",
"appmenu.items.FeatureSearch",
@@ -42,7 +41,6 @@
"appmenu.items.MeasurePolygon",
"appmenu.items.Portal",
"appmenu.items.Print",
- "appmenu.items.RasterExport",
"appmenu.items.Reports",
"appmenu.items.MapExport",
"appmenu.items.Redlining",
@@ -68,7 +66,6 @@
"appmenu.items.MapExport",
"appmenu.items.MapFilter",
"appmenu.items.Print",
- "appmenu.items.RasterExport",
"appmenu.items.Reports",
"appmenu.items.Settings",
"appmenu.items.Share",
@@ -126,9 +123,6 @@
"cyclomedia.login",
"cyclomedia.scalehint",
"cyclomedia.title",
- "dxfexport.layers",
- "dxfexport.selectinfo",
- "dxfexport.symbologyscale",
"editing.add",
"editing.attrtable",
"editing.canceldelete",
@@ -302,6 +296,10 @@
"portal.filter",
"portal.menulabel",
"print.atlasfeature",
+ "print.download",
+ "print.download_as_onepdf",
+ "print.download_as_onezip",
+ "print.download_as_single",
"print.format",
"print.grid",
"print.layout",
@@ -311,21 +309,16 @@
"print.nolayouts",
"print.notheme",
"print.output",
+ "print.overlap",
"print.pickatlasfeature",
"print.resolution",
"print.rotation",
"print.save",
"print.scale",
+ "print.series",
"print.submit",
"print.wait",
"qtdesignerform.loading",
- "rasterexport.format",
- "rasterexport.resolution",
- "rasterexport.scale",
- "rasterexport.size",
- "rasterexport.submit",
- "rasterexport.usersize",
- "rasterexport.wait",
"redlining.border",
"redlining.buffer",
"redlining.buffercompute",
diff --git a/utils/FeatureStyles.js b/utils/FeatureStyles.js
index 26a6e0869..e32116000 100644
--- a/utils/FeatureStyles.js
+++ b/utils/FeatureStyles.js
@@ -8,6 +8,8 @@
import ol from 'openlayers';
+import minus from '../icons/minus.svg';
+import plus from '../icons/plus.svg';
import ConfigUtils from './ConfigUtils';
import ResourceRegistry from './ResourceRegistry';
import arrowhead from './img/arrowhead.svg';
@@ -17,6 +19,8 @@ import measurehead from './img/measurehead.svg';
ResourceRegistry.addResource('arrowhead', arrowhead);
ResourceRegistry.addResource('measurehead', measurehead);
ResourceRegistry.addResource('marker', markerIcon);
+ResourceRegistry.addResource('minus', minus);
+ResourceRegistry.addResource('plus', plus);
const DEFAULT_FEATURE_STYLE = {
strokeColor: [0, 0, 255, 1],
@@ -60,7 +64,12 @@ const DEFAULT_INTERACTION_STYLE = {
measurePointRadius: 6,
sketchPointFillColor: "#0099FF",
sketchPointStrokeColor: "white",
- sketchPointRadius: 6
+ sketchPointRadius: 6,
+ printStrokeColor: '#3399CC',
+ printStrokeWidth: 3,
+ printVertexColor: '#FFFFFF',
+ printVertexRadius: 6,
+ printBackgroundColor: [0, 0, 0, 0.5]
};
export const END_MARKERS = {
@@ -278,6 +287,82 @@ export default {
})
});
},
+ printInteraction: (options) => {
+ const opts = {...DEFAULT_INTERACTION_STYLE, ...ConfigUtils.getConfigProp("defaultInteractionStyle"), ...options};
+ return new ol.style.Style({
+ geometry: opts.geometryFunction,
+ fill: new ol.style.Fill({
+ color: [0, 0, 0, 0]
+ }),
+ stroke: new ol.style.Stroke({
+ color: opts.printStrokeColor,
+ width: opts.printStrokeWidth
+ })
+ });
+ },
+ printInteractionVertex: (options) => {
+ const opts = {...DEFAULT_INTERACTION_STYLE, ...ConfigUtils.getConfigProp("defaultInteractionStyle"), ...options};
+ return new ol.style.Style({
+ geometry: opts.geometryFunction,
+ image: new ol.style.Circle({
+ radius: opts.printVertexRadius,
+ fill: new ol.style.Fill({
+ color: opts.fill ? opts.printStrokeColor : opts.printVertexColor
+ }),
+ stroke: new ol.style.Stroke({
+ color: opts.printStrokeColor,
+ width: opts.printStrokeWidth
+ })
+ })
+ });
+ },
+ printInteractionBackground: (options) => {
+ const opts = {...DEFAULT_INTERACTION_STYLE, ...ConfigUtils.getConfigProp("defaultInteractionStyle"), ...options};
+ return new ol.style.Style({
+ geometry: opts.geometryFunction,
+ fill: new ol.style.Fill({
+ color: opts.printBackgroundColor
+ })
+ });
+ },
+ printInteractionSeries: (options) => {
+ const opts = {...DEFAULT_INTERACTION_STYLE, ...ConfigUtils.getConfigProp("defaultInteractionStyle"), ...options};
+ return new ol.style.Style({
+ geometry: opts.geometryFunction,
+ stroke: new ol.style.Stroke({
+ color: opts.printStrokeColor,
+ width: opts.printStrokeWidth
+ })
+ });
+ },
+ printInteractionSeriesIcon: (options) => {
+ const opts = {...DEFAULT_INTERACTION_STYLE, ...ConfigUtils.getConfigProp("defaultInteractionStyle"), ...options};
+ return [
+ new ol.style.Style({
+ geometry: opts.geometryFunction,
+ image: new ol.style.Circle({
+ radius: 20 * opts.radius,
+ fill: new ol.style.Fill({
+ color: opts.printVertexColor
+ }),
+ stroke: new ol.style.Stroke({
+ color: opts.printStrokeColor,
+ width: opts.printStrokeWidth
+ })
+ })
+ }),
+ new ol.style.Style({
+ geometry: opts.geometryFunction,
+ image: new ol.style.Icon({
+ src: ResourceRegistry.getResource(opts.img),
+ opacity: 0.5,
+ rotation: opts.rotation,
+ scale: opts.radius,
+ rotateWithView: true
+ })
+ })
+ ];
+ },
image: (feature, options) => {
return new ol.style.Style({
image: new ol.style.Icon({
|