├── .babelrc.json
├── .eslintrc.js
├── .github
└── ISSUE_TEMPLATE
│ └── bug_report.md
├── .gitignore
├── .gitmodules
├── LICENSE
├── README.md
├── icons
└── README.md
├── index.html
├── js
├── IdentifyExtensions.js
├── app.jsx
└── appConfig.js
├── package.json
├── static
├── api_examples.js
├── assets
│ ├── css
│ │ ├── colorschemes.css
│ │ └── qwc2.css
│ ├── help.html
│ ├── img
│ │ ├── app_icon.png
│ │ ├── app_icon_114.png
│ │ ├── app_icon_144.png
│ │ ├── app_icon_72.png
│ │ ├── favicon.ico
│ │ ├── logo-mobile.svg
│ │ ├── logo.svg
│ │ ├── mapthumbs
│ │ │ ├── bluemarble.jpg
│ │ │ ├── default.jpg
│ │ │ ├── mapnik.jpg
│ │ │ └── qwc_demo.jpg
│ │ ├── qwc-logo.svg
│ │ └── search
│ │ │ ├── dataproduct.svg
│ │ │ └── feature.svg
│ ├── js
│ │ └── helloworldplugin.js
│ ├── searchProviders.js
│ └── templates
│ │ ├── heightprofileprint.html
│ │ └── legendprint.html
├── config.json
├── themesConfig.json
└── translations
│ ├── cs-CZ.json
│ ├── de-CH.json
│ ├── de-DE.json
│ ├── en-US.json
│ ├── es-ES.json
│ ├── fr-FR.json
│ ├── it-IT.json
│ ├── ja-JP.json
│ ├── pl-PL.json
│ ├── pt-BR.json
│ ├── pt-PT.json
│ ├── ro-RO.json
│ ├── ru-RU.json
│ ├── sv-SE.json
│ ├── tr-TR.json
│ └── tsconfig.json
├── webpack.config.js
└── yarn.lock
/.babelrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | "@babel/plugin-transform-class-properties",
4 | "@babel/plugin-transform-object-rest-spread"
5 | ],
6 | "presets": [
7 | [
8 | "@babel/preset-env",
9 | {
10 | "modules": false
11 | }
12 | ],
13 | "@babel/preset-react"
14 | ],
15 | "env": {
16 | "production": {
17 | "plugins": ["transform-react-remove-prop-types"]
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | parser: "@babel/eslint-parser", // https://github.com/babel/babel/tree/main/eslint/babel-eslint-parser
3 | parserOptions: {
4 | babelOptions: {
5 | configFile: "./.babelrc.json"
6 | },
7 | ecmaFeatures: {
8 | arrowFunctions: true,
9 | blockBindings: true,
10 | classes: true,
11 | defaultParams: true,
12 | destructuring: true,
13 | forOf: true,
14 | generators: false,
15 | modules: true,
16 | objectLiteralComputedProperties: true,
17 | objectLiteralDuplicateProperties: false,
18 | objectLiteralShorthandMethods: true,
19 | objectLiteralShorthandProperties: true,
20 | spread: true,
21 | superInFunctions: true,
22 | templateStrings: true,
23 | jsx: true
24 | }
25 | },
26 | plugins: [
27 | "perfectionist", // https://github.com/azat-io/eslint-plugin-perfectionist
28 | "react" // https://github.com/yannickcr/eslint-plugin-react
29 | ],
30 | extends: [
31 | "eslint:recommended",
32 | "plugin:react/recommended"
33 | ],
34 | env: { // http://eslint.org/docs/user-guide/configuring.html#specifying-environments
35 | es6: true,
36 | browser: true, // browser global variables
37 | node: true // Node.js global variables and Node.js-specific rules
38 | },
39 | settings: {
40 | react: {
41 | version: "detect"
42 | }
43 | },
44 | globals: {
45 | /* MOCHA */
46 | describe: false,
47 | it: false,
48 | before: false,
49 | beforeEach: false,
50 | after: false,
51 | afterEach: false,
52 | __DEVTOOLS__: false
53 | },
54 | rules: {
55 | /**
56 | * Strict mode
57 | */
58 | // babel inserts "use strict"; for us
59 | "strict": [2, "never"], // http://eslint.org/docs/rules/strict
60 |
61 | /**
62 | * ES6
63 | */
64 | "no-var": 2, // http://eslint.org/docs/rules/no-var
65 | "prefer-const": 2, // http://eslint.org/docs/rules/prefer-const
66 |
67 | /**
68 | * Variables
69 | */
70 | "no-shadow": 2, // http://eslint.org/docs/rules/no-shadow
71 | "no-shadow-restricted-names": 2, // http://eslint.org/docs/rules/no-shadow-restricted-names
72 | "no-unused-vars": [2, { // http://eslint.org/docs/rules/no-unused-vars
73 | vars: "local",
74 | args: "none"
75 | }],
76 | "no-use-before-define": 2, // http://eslint.org/docs/rules/no-use-before-define
77 |
78 | /**
79 | * Possible errors
80 | */
81 | "comma-dangle": [2, "never"], // http://eslint.org/docs/rules/comma-dangle
82 | "no-console": 1, // http://eslint.org/docs/rules/no-console
83 | "no-alert": 1, // http://eslint.org/docs/rules/no-alert
84 | "quote-props": [2, "consistent-as-needed"], // https://eslint.org/docs/rules/quote-props
85 | "block-scoped-var": 2, // http://eslint.org/docs/rules/block-scoped-var
86 |
87 |
88 | /**
89 | * Best practices
90 | */
91 | "consistent-return": 2, // http://eslint.org/docs/rules/consistent-return
92 | "curly": [2, "multi-line"], // http://eslint.org/docs/rules/curly
93 | "default-case": 2, // http://eslint.org/docs/rules/default-case
94 | "dot-notation": [2, { // http://eslint.org/docs/rules/dot-notation
95 | allowKeywords: true
96 | }],
97 | "eqeqeq": 2, // http://eslint.org/docs/rules/eqeqeq
98 | "guard-for-in": 2, // http://eslint.org/docs/rules/guard-for-in
99 | "no-caller": 2, // http://eslint.org/docs/rules/no-caller
100 | "no-eq-null": 2, // http://eslint.org/docs/rules/no-eq-null
101 | "no-eval": 2, // http://eslint.org/docs/rules/no-eval
102 | "no-extend-native": 2, // http://eslint.org/docs/rules/no-extend-native
103 | "no-extra-bind": 2, // http://eslint.org/docs/rules/no-extra-bind
104 | "no-extra-semi": "warn",
105 | "no-floating-decimal": 2, // http://eslint.org/docs/rules/no-floating-decimal
106 | "no-implied-eval": 2, // http://eslint.org/docs/rules/no-implied-eval
107 | "no-lone-blocks": 2, // http://eslint.org/docs/rules/no-lone-blocks
108 | "no-loop-func": 2, // http://eslint.org/docs/rules/no-loop-func
109 | "no-multi-str": 2, // http://eslint.org/docs/rules/no-multi-str
110 | "no-global-assign": 2, // http://eslint.org/docs/rules/no-global-assign
111 | "no-new": 2, // http://eslint.org/docs/rules/no-new
112 | "no-new-func": 2, // http://eslint.org/docs/rules/no-new-func
113 | "no-new-wrappers": 2, // http://eslint.org/docs/rules/no-new-wrappers
114 | "no-octal-escape": 2, // http://eslint.org/docs/rules/no-octal-escape
115 | "no-proto": 2, // http://eslint.org/docs/rules/no-proto
116 | "no-return-assign": 2, // http://eslint.org/docs/rules/no-return-assign
117 | "no-script-url": 2, // http://eslint.org/docs/rules/no-script-url
118 | "no-self-compare": 2, // http://eslint.org/docs/rules/no-self-compare
119 | "no-sequences": 2, // http://eslint.org/docs/rules/no-sequences
120 | "no-throw-literal": 2, // http://eslint.org/docs/rules/no-throw-literal
121 | "radix": 2, // http://eslint.org/docs/rules/radix
122 | "vars-on-top": 2, // http://eslint.org/docs/rules/vars-on-top
123 | "wrap-iife": [2, "any"], // http://eslint.org/docs/rules/wrap-iife
124 | "yoda": 2, // http://eslint.org/docs/rules/yoda
125 |
126 | /**
127 | * Style
128 | */
129 | "indent": [2, 4], // http://eslint.org/docs/rules/indent
130 | "brace-style": [2, // http://eslint.org/docs/rules/brace-style
131 | "1tbs", {
132 | allowSingleLine: true
133 | }],
134 | "quotes": [
135 | 0, "single", "avoid-escape" // http://eslint.org/docs/rules/quotes
136 | ],
137 | "camelcase": [2, { // http://eslint.org/docs/rules/camelcase
138 | properties: "never"
139 | }],
140 | "comma-spacing": [2, { // http://eslint.org/docs/rules/comma-spacing
141 | before: false,
142 | after: true
143 | }],
144 | "comma-style": [2, "last"], // http://eslint.org/docs/rules/comma-style
145 | "eol-last": 2, // http://eslint.org/docs/rules/eol-last
146 | "func-names": 0, // http://eslint.org/docs/rules/func-names
147 | "key-spacing": [2, { // http://eslint.org/docs/rules/key-spacing
148 | beforeColon: false,
149 | afterColon: true
150 | }],
151 | "new-cap": [2, { // http://eslint.org/docs/rules/new-cap
152 | newIsCap: true
153 | }],
154 | "no-multiple-empty-lines": [2, { // http://eslint.org/docs/rules/no-multiple-empty-lines
155 | max: 2
156 | }],
157 | "no-nested-ternary": 2, // http://eslint.org/docs/rules/no-nested-ternary
158 | "no-new-object": 2, // http://eslint.org/docs/rules/no-new-object
159 | "no-spaced-func": 2, // http://eslint.org/docs/rules/no-spaced-func
160 | "no-trailing-spaces": 2, // http://eslint.org/docs/rules/no-trailing-spaces
161 | "no-undef": 2, // https://eslint.org/docs/rules/no-undef
162 | "no-underscore-dangle": 0, // http://eslint.org/docs/rules/no-underscore-dangle
163 | "one-var": [2, "never"], // http://eslint.org/docs/rules/one-var
164 | "padded-blocks": [0, "never"], // http://eslint.org/docs/rules/padded-blocks
165 | "semi": [2, "always"], // http://eslint.org/docs/rules/semi
166 | "semi-spacing": [2, { // http://eslint.org/docs/rules/semi-spacing
167 | before: false,
168 | after: true
169 | }],
170 | "keyword-spacing": 2, // http://eslint.org/docs/rules/keyword-spacing
171 | "space-before-blocks": 2, // http://eslint.org/docs/rules/space-before-blocks
172 | "space-before-function-paren": [2, "never"], // http://eslint.org/docs/rules/space-before-function-paren
173 | "space-infix-ops": 2, // http://eslint.org/docs/rules/space-infix-ops
174 | "spaced-comment": 2, // http://eslint.org/docs/rules/spaced-comment
175 |
176 | /**
177 | * JSX style
178 | */
179 | "react/jsx-boolean-value": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md
180 | "react/jsx-sort-props": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-sort-props.md
181 | "react/sort-prop-types": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/sort-prop-types.md
182 | "react/no-did-mount-set-state": [2, "disallow-in-func"], // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-did-mount-set-state.md
183 | "react/self-closing-comp": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md
184 | "react/jsx-wrap-multilines": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-wrap-multilines.md
185 | "react/no-access-state-in-setstate": "error",
186 |
187 | /**
188 | * Perfectionist // https://github.com/azat-io/eslint-plugin-perfectionist
189 | */
190 | "perfectionist/sort-imports": [ // https://eslint-plugin-perfectionist.azat.io/rules/sort-imports
191 | "error",
192 | {
193 | "type": "natural",
194 | "order": "asc",
195 | "groups": [
196 | "type",
197 | "react",
198 | ["builtin", "external"],
199 | "internal-type",
200 | "internal",
201 | ["parent-type", "sibling-type", "index-type"],
202 | ["parent", "sibling", "index"],
203 | "side-effect",
204 | "style",
205 | "object",
206 | "unknown"
207 | ],
208 | "custom-groups": {
209 | value: {
210 | react: ["react", "react-*"]
211 | }
212 | },
213 | "newlines-between": "always"
214 | }
215 | ]
216 | }
217 | };
218 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **NOTE: Please file general issues concerning the QWC2 at [https://github.com/qgis/qwc2/issues](https://github.com/qgis/qwc2/issues). Only file issues which concern the custom application skeleton here.**
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 | prod/
4 | icons/build
5 | npm-debug.log
6 | themes.json
7 | static/assets/img/genmapthumbs/*
8 | static/assets/forms/autogen/*
9 | yarn-error.log
10 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "qwc2"]
2 | path = qwc2
3 | url = https://github.com/qgis/qwc2.git
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015-2016 GeoSolutions Sas
2 | Copyright (c) 2016-2021 Sourcepole AG
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without modification, are
6 | permitted provided that the following conditions are met:
7 |
8 | 1. Redistributions of source code must retain the above copyright notice, this list of
9 | conditions and the following disclaimer.
10 |
11 | 2. Redistributions in binary form must reproduce the above copyright notice, this list
12 | of conditions and the following disclaimer in the documentation and/or other materials
13 | provided with the distribution.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
16 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
18 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
22 | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | The views and conclusions contained in the software and documentation are those
26 | of the authors and should not be interpreted as representing official policies,
27 | either expressed or implied, of the MapStore2 Project.
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | QGIS Web Client Demo Application
2 | ================================
3 |
4 | QGIS Web Client (QWC) is a modular next generation responsive web client for QGIS Server, built with ReactJS and OpenLayers.
5 |
6 | **This repository contains an example skeleton for building a custom QWC application based on the [QWC stock application](https://github.com/qgis/qwc2).**
7 |
8 | Consult the [QWC2 README](https://github.com/qgis/qwc2/blob/master/README.md) for information about QWC, and further links to documentation, sample viewers, etc.
9 |
10 | # Quick start
11 |
12 | To build a custom application based on the QWC stock application, follow these steps:
13 |
14 | 1. Clone this repository
15 |
16 | git clone https://github.com/qgis/qwc2-demo-app
17 |
18 | 2. Install dependencies
19 |
20 | yarn install
21 |
22 | 3. Run the development server
23 |
24 | yarn start
25 |
26 | 4. Edit `js/appConfig.js` to include your custom components
27 |
28 | See [Building a custom viewer](https://qwc-services.github.io/master/configuration/ViewerConfiguration/#building-a-custom-viewer) for further information.
29 |
30 | # Issues
31 |
32 | Please report QWC issues at [issues](https://github.com/qgis/qwc2/issues).
33 |
34 | # License
35 |
36 | QWC is released under the terms of the [BSD license](https://github.com/qgis/qwc2-demo-app/blob/master/LICENSE).
37 |
--------------------------------------------------------------------------------
/icons/README.md:
--------------------------------------------------------------------------------
1 | The common qwc2 icons were moved to `qwc2/icons`. Add icons for custom components here, or add an icon with the same name as a common qwc2 icon to override it.
2 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | QGIS Web Client
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
53 |
54 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/js/IdentifyExtensions.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2017-2021 Sourcepole AG
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree.
7 | */
8 |
9 | export function customAttributeCalculator(layer, feature) {
10 | // Here you can dynamically return additional attribute values for the
11 | // identify dialog, possibly depending on the passed layer and feature.
12 | // Return a list of elements i.e.:
13 | //
14 | // return [(
15 | //
16 | // Name
17 | // Value
18 | //
19 | // )];
20 | return [];
21 | }
22 |
23 | export function attributeTransform(name, value, layer, feature) {
24 | // Here you can transform the attribute value.
25 | return value;
26 | }
27 | export const customExporters = [
28 | /*
29 | {
30 | id: "myexport",
31 | title: "My Format",
32 | allowClipboard: true,
33 | export: (features, callback) => {
34 | const data = convertToMyFormat(features);
35 | callback({
36 | data: data, type: "mime/type", filename: "export.ext"
37 | });
38 | }
39 | }
40 | */
41 | ];
42 |
--------------------------------------------------------------------------------
/js/app.jsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2016-2021 Sourcepole AG
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree.
7 | */
8 |
9 | import React from 'react';
10 | import {createRoot} from 'react-dom/client';
11 | import StandardApp from 'qwc2/components/StandardApp';
12 | import appConfig from './appConfig';
13 | import '../icons/build/qwc2-icons.css';
14 |
15 | const container = document.getElementById('container');
16 | const root = createRoot(container);
17 | root.render();
18 |
--------------------------------------------------------------------------------
/js/appConfig.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2016-2021 Sourcepole AG
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree.
7 | */
8 |
9 | import AppMenu from 'qwc2/components/AppMenu';
10 | import FullscreenSwitcher from 'qwc2/components/FullscreenSwitcher';
11 | import SearchBox from 'qwc2/components/SearchBox';
12 | import Toolbar from 'qwc2/components/Toolbar';
13 | import APIPlugin from 'qwc2/plugins/API';
14 | import AttributeTablePlugin from 'qwc2/plugins/AttributeTable';
15 | import AuthenticationPlugin from 'qwc2/plugins/Authentication';
16 | import BackgroundSwitcherPlugin from 'qwc2/plugins/BackgroundSwitcher';
17 | import BookmarkPlugin from 'qwc2/plugins/Bookmark';
18 | import BottomBarPlugin from 'qwc2/plugins/BottomBar';
19 | import CookiePopupPlugin from 'qwc2/plugins/CookiePopup';
20 | import CyclomediaPlugin from 'qwc2/plugins/Cyclomedia';
21 | import EditingPlugin from 'qwc2/plugins/Editing';
22 | import FeatureFormPlugin from 'qwc2/plugins/FeatureForm';
23 | import FeatureSearchPlugin from 'qwc2/plugins/FeatureSearch';
24 | import GeometryDigitizerPlugin from 'qwc2/plugins/GeometryDigitizer';
25 | import HeightProfilePlugin from 'qwc2/plugins/HeightProfile';
26 | import HelpPlugin from 'qwc2/plugins/Help';
27 | import HomeButtonPlugin from 'qwc2/plugins/HomeButton';
28 | import IdentifyPlugin from 'qwc2/plugins/Identify';
29 | import LayerCatalogPlugin from 'qwc2/plugins/LayerCatalog';
30 | import LayerTreePlugin from 'qwc2/plugins/LayerTree';
31 | import LocateButtonPlugin from 'qwc2/plugins/LocateButton';
32 | import MapPlugin from 'qwc2/plugins/Map';
33 | import MapComparePlugin from 'qwc2/plugins/MapCompare';
34 | import MapCopyrightPlugin from 'qwc2/plugins/MapCopyright';
35 | import MapExportPlugin from 'qwc2/plugins/MapExport';
36 | import MapFilterPlugin from 'qwc2/plugins/MapFilter';
37 | import MapInfoTooltipPlugin from 'qwc2/plugins/MapInfoTooltip';
38 | import MapLegendPlugin from 'qwc2/plugins/MapLegend';
39 | import MapTipPlugin from 'qwc2/plugins/MapTip';
40 | import MeasurePlugin from 'qwc2/plugins/Measure';
41 | import NewsPopupPlugin from 'qwc2/plugins/NewsPopup';
42 | import PortalPlugin from 'qwc2/plugins/Portal';
43 | import PrintPlugin from 'qwc2/plugins/Print';
44 | import ProcessNotificationsPlugin from 'qwc2/plugins/ProcessNotifications';
45 | import RedliningPlugin from 'qwc2/plugins/Redlining';
46 | import ReportsPlugin from 'qwc2/plugins/Reports';
47 | import RoutingPlugin from 'qwc2/plugins/Routing';
48 | import ScratchDrawingPlugin from 'qwc2/plugins/ScratchDrawing';
49 | import SettingsPlugin from 'qwc2/plugins/Settings';
50 | import SharePlugin from 'qwc2/plugins/Share';
51 | import StartupMarkerPlugin from 'qwc2/plugins/StartupMarker';
52 | import TaskButtonPlugin from 'qwc2/plugins/TaskButton';
53 | import ThemeSwitcherPlugin from 'qwc2/plugins/ThemeSwitcher';
54 | import TimeManagerPlugin from 'qwc2/plugins/TimeManager';
55 | import TopBarPlugin from 'qwc2/plugins/TopBar';
56 | import View3DPlugin from 'qwc2/plugins/View3D';
57 | import {ZoomInPlugin, ZoomOutPlugin} from 'qwc2/plugins/ZoomButtons';
58 | import EditingSupport from 'qwc2/plugins/map/EditingSupport';
59 | import LocateSupport from 'qwc2/plugins/map/LocateSupport';
60 | import MeasurementSupport from 'qwc2/plugins/map/MeasurementSupport';
61 | import OverviewSupport from 'qwc2/plugins/map/OverviewSupport';
62 | import RedliningSupport from 'qwc2/plugins/map/RedliningSupport';
63 | import ScaleBarSupport from 'qwc2/plugins/map/ScaleBarSupport';
64 | import SnappingSupport from 'qwc2/plugins/map/SnappingSupport';
65 | import BufferSupport from 'qwc2/plugins/redlining/RedliningBufferSupport';
66 |
67 | import defaultLocaleData from '../static/translations/en-US.json';
68 | import {customAttributeCalculator, attributeTransform, customExporters} from './IdentifyExtensions';
69 |
70 | export default {
71 | defaultLocaleData: defaultLocaleData,
72 | initialState: {
73 | defaultState: {},
74 | mobile: {}
75 | },
76 | pluginsDef: {
77 | plugins: {
78 | MapPlugin: MapPlugin({
79 | EditingSupport: EditingSupport,
80 | MeasurementSupport: MeasurementSupport,
81 | LocateSupport: LocateSupport,
82 | OverviewSupport: OverviewSupport,
83 | RedliningSupport: RedliningSupport,
84 | ScaleBarSupport: ScaleBarSupport,
85 | SnappingSupport: SnappingSupport
86 | }),
87 | APIPlugin: APIPlugin,
88 | AttributeTablePlugin: AttributeTablePlugin(/* CustomEditingInterface */),
89 | AuthenticationPlugin: AuthenticationPlugin,
90 | BackgroundSwitcherPlugin: BackgroundSwitcherPlugin,
91 | BookmarkPlugin: BookmarkPlugin,
92 | BottomBarPlugin: BottomBarPlugin,
93 | CookiePopupPlugin: CookiePopupPlugin,
94 | CyclomediaPlugin: CyclomediaPlugin,
95 | EditingPlugin: EditingPlugin(/* CustomEditingInterface */),
96 | FeatureFormPlugin: FeatureFormPlugin(/* CustomEditingInterface */),
97 | GeometryDigitizerPlugin: GeometryDigitizerPlugin,
98 | HeightProfilePlugin: HeightProfilePlugin,
99 | HelpPlugin: HelpPlugin(),
100 | HomeButtonPlugin: HomeButtonPlugin,
101 | IdentifyPlugin: IdentifyPlugin,
102 | LayerCatalogPlugin: LayerCatalogPlugin,
103 | LayerTreePlugin: LayerTreePlugin,
104 | LocateButtonPlugin: LocateButtonPlugin,
105 | MapComparePlugin: MapComparePlugin,
106 | MapCopyrightPlugin: MapCopyrightPlugin,
107 | MapExportPlugin: MapExportPlugin,
108 | MapFilterPlugin: MapFilterPlugin,
109 | MapInfoTooltipPlugin: MapInfoTooltipPlugin(),
110 | MapLegendPlugin: MapLegendPlugin,
111 | MapTipPlugin: MapTipPlugin,
112 | MeasurePlugin: MeasurePlugin,
113 | NewsPopupPlugin: NewsPopupPlugin,
114 | PortalPlugin: PortalPlugin,
115 | PrintPlugin: PrintPlugin,
116 | ProcessNotificationsPlugin: ProcessNotificationsPlugin,
117 | RedliningPlugin: RedliningPlugin({
118 | BufferSupport: BufferSupport
119 | }),
120 | ReportsPlugin: ReportsPlugin,
121 | RoutingPlugin: RoutingPlugin,
122 | FeatureSearchPlugin: FeatureSearchPlugin,
123 | ScratchDrawingPlugin: ScratchDrawingPlugin,
124 | SettingsPlugin: SettingsPlugin,
125 | SharePlugin: SharePlugin,
126 | StartupMarkerPlugin: StartupMarkerPlugin,
127 | TaskButtonPlugin: TaskButtonPlugin,
128 | ThemeSwitcherPlugin: ThemeSwitcherPlugin,
129 | TimeManagerPlugin: TimeManagerPlugin,
130 | TopBarPlugin: TopBarPlugin({
131 | AppMenu: AppMenu,
132 | Search: SearchBox,
133 | Toolbar: Toolbar,
134 | FullscreenSwitcher: FullscreenSwitcher
135 | }),
136 | View3DPlugin: View3DPlugin,
137 | ZoomInPlugin: ZoomInPlugin,
138 | ZoomOutPlugin: ZoomOutPlugin,
139 | },
140 | cfg: {
141 | IdentifyPlugin: {
142 | attributeCalculator: customAttributeCalculator,
143 | attributeTransform: attributeTransform,
144 | customExporters: customExporters
145 | }
146 | }
147 | },
148 | actionLogger: (action) => {
149 | /* Do something with action, i.e. Piwik/Mamoto event tracking */
150 | }
151 | /*
152 | themeLayerRestorer: (missingLayers, theme, callback) => {
153 | // Invoked for layers specified in the l url parameter which are missing in the specified theme
154 | // Could be used to query a search provider for the missing theme layers
155 |
156 | // A list of theme layers to merge into the theme
157 | const newLayers = [];
158 |
159 | // A dictionary mapping the name of the searched layer name with the resulting layer name(s) as an array, i.e.
160 | // {searchlayername: ["resultlayername1", "resultlayername2"], ...}
161 | const newLayerNames = {};
162 |
163 | callback(newLayers, newLayerNames);
164 | }*/
165 | /* externalLayerRestorer: (externalLayers, themes, callback) => {
166 | // Optional function to handle restoring of external layers from the l URL parameter
167 | // If omitted, the default handler is used which downloads capabilities for each service to restore the layer
168 | }*/
169 | };
170 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "qwc2-demo-app",
3 | "version": "2025.04.03",
4 | "description": "Demo application based on QGIS Web Client",
5 | "author": "Sourcepole",
6 | "license": "BSD-2-Clause",
7 | "repository": "git@github.com:sourcepole/qwc2-demo-app.git",
8 | "private": true,
9 | "dependencies": {
10 | "qwc2": "2025.4.3"
11 | },
12 | "devDependencies": {
13 | "@babel/core": "^7.26.0",
14 | "@babel/eslint-parser": "^7.25.9",
15 | "@babel/plugin-transform-class-properties": "^7.25.9",
16 | "@babel/plugin-transform-object-rest-spread": "^7.25.9",
17 | "@babel/preset-env": "^7.26.0",
18 | "@babel/preset-react": "^7.26.3",
19 | "@furkot/webfonts-generator": "^2.0.2",
20 | "@microsoft/eslint-formatter-sarif": "^3.1.0",
21 | "@types/react": "^18.3.1",
22 | "babel-loader": "^9.2.1",
23 | "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
24 | "clean-webpack-plugin": "^4.0.0",
25 | "copy-webpack-plugin": "^12.0.2",
26 | "css-loader": "^7.1.2",
27 | "eslint": "^8.56.0",
28 | "eslint-plugin-perfectionist": "^2.10.0",
29 | "eslint-plugin-react": "^7.37.2",
30 | "html-webpack-plugin": "^5.6.3",
31 | "mkdirp": "^3.0.1",
32 | "object-path": "^0.11.8",
33 | "react-docgen": "^5.4.3",
34 | "source-map-loader": "^5.0.0",
35 | "style-loader": "^4.0.0",
36 | "typescript": "^5.7.2",
37 | "webpack": "^5.97.1",
38 | "webpack-bundle-size-analyzer": "^3.1.0",
39 | "webpack-cli": "^5.1.4",
40 | "webpack-dev-server": "^5.1.0"
41 | },
42 | "scripts": {
43 | "prod": "npm run tsupdate && npm run themesconfig && npm run iconfont && webpack --mode production --progress",
44 | "start": "npm run tsupdate && npm run themesconfig && npm run iconfont && webpack serve --mode development --progress --host 0.0.0.0 --port 8081",
45 | "iconfont": "npx qwc_build_iconfont",
46 | "themesconfig": "npx qwc_gen_themesconfig",
47 | "tsupdate": "npx qwc_update_translations",
48 | "build": "npm run prod",
49 | "analyze": "webpack --mode production --json | webpack-bundle-size-analyzer",
50 | "release": "node -e \"process.exit(require('os').platform() === 'win32' ? 0 : 1)\" && qwc2\\scripts\\package-commands.bat release || ./qwc2/scripts/package-commands.sh release"
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/static/api_examples.js:
--------------------------------------------------------------------------------
1 | function addmarker(ev) {
2 | let layer = {
3 | id: "myselectionlayer",
4 | role: window.qwc2.LayerRole.SELECTION
5 | };
6 | let feature = {
7 | id: 'mymarker',
8 | geometry: {
9 | type: 'Point',
10 | coordinates: [2684267, 1247815]
11 | },
12 | properties: { label: "Text" },
13 | crs: "EPSG:2056",
14 | styleName: 'marker'
15 | };
16 | window.qwc2.addLayerFeatures(layer, [feature]);
17 | }
18 | function removemarker(ev) {
19 | window.qwc2.removeLayerFeatures("myselectionlayer", ["mymarker"]);
20 | }
21 | function addpoly(ev) {
22 | let layer = {
23 | id: "myselectionlayer",
24 | role: window.qwc2.LayerRole.SELECTION
25 | };
26 | let feature = {
27 | id: 'mypoly',
28 | geometry: {
29 | type: 'Polygon',
30 | coordinates: [[[2684267, 1247815], [2686897, 1246706], [2683829, 1243509], [2677152, 1245933]]]
31 | },
32 | properties: { label: "Polygon" },
33 | crs: "EPSG:2056",
34 | styleName: 'default',
35 | styleOptions: {
36 | strokeColor: [255, 0, 0, 1],
37 | strokeWidth: 4,
38 | strokeDash: [4],
39 | fillColor: [255, 255, 255, 0.33],
40 | textFill: "blue",
41 | textStroke: "white",
42 | textFont: '20pt sans-serif'
43 | }
44 | };
45 | window.qwc2.addLayerFeatures(layer, [feature]);
46 | }
47 | function removepoly(ev) {
48 | window.qwc2.removeLayerFeatures("myselectionlayer", ["mypoly"]);
49 | }
50 | function removeall(ev) {
51 | window.qwc2.removeLayer("myselectionlayer");
52 | }
53 | function pantohb(ev) {
54 | window.qwc2.panTo([2683002, 1248093], "EPSG:2056");
55 | }
56 | function zoomtohb(ev) {
57 | window.qwc2.zoomToExtent([2682576, 1247916, 2683339, 1248222], "EPSG:2056");
58 | }
59 | function drawpoint(ev) {
60 | window.qwc2.drawGeometry("Point", "Draw a point", function(result, crs) { console.log(result); console.log(crs); }, {drawMultiple: true});
61 | }
62 | function drawline(ev) {
63 | window.qwc2.drawGeometry("LineString", "Draw a line", function(result, crs) { console.log(result); console.log(crs); }, {
64 | snapping: true,
65 | drawMultiple: true,
66 | initialFeatures: [{
67 | type: "Feature",
68 | geometry: {
69 | type: "LineString",
70 | coordinates: [
71 | [2682632, 1247832],
72 | [2692632, 1247832]
73 | ]
74 | }
75 | }]
76 | });
77 | }
78 | function drawpoly(ev) {
79 | window.qwc2.drawGeometry("Polygon", "Draw a polygon", function(result, crs) { console.log(result); console.log(crs); }, {
80 | borderColor: [0, 0, 255, 1],
81 | size: 2,
82 | fillColor: [255, 255, 255, 0.5]
83 | });
84 | }
85 | function drawcircle(ev) {
86 | window.qwc2.drawGeometry("Circle", "Draw a circle", function(result, crs) { console.log(result); console.log(crs); }, {
87 | borderColor: [0, 0, 255, 1],
88 | size: 2,
89 | fillColor: [255, 255, 255, 0.5]
90 | });
91 | }
92 | function drawbox(ev) {
93 | window.qwc2.drawGeometry("Box", "Draw a box", function(result, crs) { console.log(result); console.log(crs); }, {
94 | borderColor: [0, 0, 255, 1],
95 | size: 2,
96 | fillColor: [255, 255, 255, 0.5]
97 | });
98 | }
99 |
100 | function toggleapidemo(ev) {
101 | let apidemo = document.getElementById("apidemo");
102 | apidemo.style.display = apidemo.style.display ? "" : "none";
103 | }
104 |
105 | window.onload = function() {
106 | let apiFrame = document.createElement("div");
107 | apiFrame.style.position = 'fixed';
108 | apiFrame.style.left = 0;
109 | apiFrame.style.top = '4em';
110 | apiFrame.style.zIndex = 1000;
111 | apiFrame.style.padding = '0.5em';
112 | apiFrame.style.backgroundColor = 'rgba(255, 255, 0, 0.75)';
113 |
114 | apiFrame.innerHTML = "\
115 | \
116 | \
117 |
Note: These examples work with the QWC2 Test 2056 theme
\
118 |
You can enable this box by uncommenting api_examples.js in index.html.
\
119 |
\
120 | Add marker \
121 | Add poly \
122 |
\
123 |
\
124 | Remove marker \
125 | Remove poly \
126 | Remove all \
127 |
\
128 |
\
129 | Pan to HB \
130 | Zoom to HB \
131 |
\
132 |
\
133 | Draw point \
134 | Draw line \
135 | Draw poly \
136 | Draw circle \
137 | Draw box \
138 |
\
139 |
";
140 | document.body.appendChild(apiFrame);
141 | };
142 |
--------------------------------------------------------------------------------
/static/assets/css/colorschemes.css:
--------------------------------------------------------------------------------
1 | :root.highcontrast {
2 | /* Base colors */
3 | --text-color: black;
4 | --text-color-link: blue;
5 | --text-color-disabled: #999;
6 | --container-bg-color: white;
7 | --input-bg-color: white;
8 | --input-bg-color-disabled: white;
9 | --border-color: black;
10 | --color-active: blue;
11 | --focus-outline: 2px solid black;
12 | /* Tooltips */
13 | --tooltip-bg-color: rgba(0, 0, 0, 0.75);
14 | --tooltip-text-color: white;
15 | --tooltip-border-color: black;
16 | /* Map buttons */
17 | --map-button-bg-color: black;
18 | --map-button-text-color: white;
19 | --map-button-hover-bg-color: white;
20 | --map-button-hover-text-color: black;
21 | --map-button-active-bg-color: white;
22 | --map-button-active-text-color: black;
23 | /* Panels (topbar and bottom bar) */
24 | --panel-bg-color: rgba(255, 255, 255, 0.85);
25 | --panel-text-color: black;
26 | /* Titlebars */
27 | --titlebar-bg-color: black;
28 | --titlebar-text-color: white;
29 | /* Button */
30 | --button-bg-color: white;
31 | --button-bg-color-hover: #ddd;
32 | --button-bg-color-active: black;
33 | --button-bg-color-active-hover: #222;
34 | --button-bg-color-disabled: white;
35 | --button-text-color: black;
36 | --button-text-color-hover: black;
37 | --button-text-color-active: white;
38 | --button-text-color-active-hover: white;
39 | --button-text-color-disabled: #999;
40 | /* List */
41 | --list-bg-color: white;
42 | --list-section-bg-color: black;
43 | --list-section-text-color: white;
44 | --list-item-bg-color-even: #eee;
45 | --list-item-bg-color-hover: #ddd;
46 | --list-item-bg-color-active: #aaa;
47 | --list-item-bg-color-active-hover: #bbb;
48 | --list-item-text-color-hover: black;
49 | --list-item-text-color-active: black;
50 | --list-item-text-color-active-hover: black;
51 | /* App menu */
52 | --app-menu-bg-color: white;
53 | --app-menu-text-color: black;
54 | --app-menu-bg-color-hover: #ddd;
55 | --app-menu-text-color-hover: black;
56 | --app-submenu-bg-color: black;
57 | --app-submenu-text-color: white;
58 | --app-submenu-bg-color-hover: #222;
59 | --app-submenu-text-color-hover: white;
60 | }
61 |
62 | :root.dark {
63 | /* Base colors */
64 | --text-color: white;
65 | --text-color-link: #AAAAFF;
66 | --container-bg-color: #333;
67 | --input-bg-color: #3f3f3f;
68 | --input-bg-color-disabled: #252526;
69 | --text-color-disabled: #999;
70 | --border-color: #2c2c2c;
71 | --color-active: #AAAAFF;
72 | --focus-outline: 2px solid #007acc;
73 | /* Tooltips */
74 | --tooltip-bg-color: rgba(0, 0, 0, 0.75);
75 | --tooltip-text-color: white;
76 | --tooltip-border-color: black;
77 | /* Map buttons */
78 | --map-button-bg-color: #595959;
79 | --map-button-text-color: white;
80 | --map-button-hover-bg-color: #f2f2f2;
81 | --map-button-hover-text-color: #595959;
82 | --map-button-active-bg-color: #f2f2f2;
83 | --map-button-active-text-color: #595959;
84 | /* Panels (topbar and bottom bar) */
85 | --panel-bg-color: rgba(42, 46, 50, 0.85);
86 | --panel-text-color: white;
87 | /* Titlebars */
88 | --titlebar-bg-color: #475057;
89 | --titlebar-text-color: white;
90 | /* Button */
91 | --button-bg-color: #3f3f3f;
92 | --button-bg-color-hover: #3a3a3a;
93 | --button-bg-color-active: #202020;
94 | --button-bg-color-active-hover: #1a1a1a;
95 | --button-bg-color-disabled: #333;
96 | --button-text-color: white;
97 | --button-text-color-hover: white;
98 | --button-text-color-active: white;
99 | --button-text-color-active-hover: white;
100 | --button-text-color-disabled: #666;
101 | /* List */
102 | --list-bg-color: #3f3f3f;
103 | --list-section-bg-color: black;
104 | --list-section-text-color: white;
105 | --list-item-bg-color-even: #393939;
106 | --list-item-bg-color-hover: #292929;
107 | --list-item-bg-color-active: #1f1f1f;
108 | --list-item-bg-color-active-hover: #0f0f0f;
109 | --list-item-text-color-hover: white;
110 | --list-item-text-color-active: white;
111 | --list-item-text-color-active-hover: white;
112 | /* App menu */
113 | --app-menu-bg-color: #4f4f4f;
114 | --app-menu-text-color: white;
115 | --app-menu-bg-color-hover: #666;
116 | --app-menu-text-color-hover: white;
117 | --app-submenu-bg-color: #222;
118 | --app-submenu-text-color: white;
119 | --app-submenu-bg-color-hover: #404040;
120 | --app-submenu-text-color-hover: white;
121 | }
122 |
123 |
--------------------------------------------------------------------------------
/static/assets/css/qwc2.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/css/qwc2.css
--------------------------------------------------------------------------------
/static/assets/help.html:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/static/assets/img/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/app_icon.png
--------------------------------------------------------------------------------
/static/assets/img/app_icon_114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/app_icon_114.png
--------------------------------------------------------------------------------
/static/assets/img/app_icon_144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/app_icon_144.png
--------------------------------------------------------------------------------
/static/assets/img/app_icon_72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/app_icon_72.png
--------------------------------------------------------------------------------
/static/assets/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/favicon.ico
--------------------------------------------------------------------------------
/static/assets/img/logo-mobile.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
24 |
26 |
29 |
33 |
34 |
37 |
41 |
42 |
45 |
49 |
50 |
53 |
57 |
58 |
65 |
75 |
76 |
98 |
100 |
101 |
103 | image/svg+xml
104 |
106 |
107 |
108 |
109 |
110 |
115 |
118 |
124 |
142 |
160 |
178 |
196 |
199 |
207 |
215 |
216 |
222 |
223 |
224 |
225 |
--------------------------------------------------------------------------------
/static/assets/img/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
23 |
25 |
28 |
32 |
33 |
36 |
40 |
41 |
44 |
48 |
49 |
52 |
56 |
57 |
64 |
74 |
75 |
100 |
114 |
115 |
117 |
118 |
120 | image/svg+xml
121 |
123 |
124 |
125 |
126 |
131 |
144 |
148 |
155 |
157 |
161 |
166 |
171 |
174 |
178 |
184 |
202 |
220 |
238 |
256 |
260 |
268 |
276 |
277 |
283 |
284 |
287 |
292 |
297 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
--------------------------------------------------------------------------------
/static/assets/img/mapthumbs/bluemarble.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/mapthumbs/bluemarble.jpg
--------------------------------------------------------------------------------
/static/assets/img/mapthumbs/default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/mapthumbs/default.jpg
--------------------------------------------------------------------------------
/static/assets/img/mapthumbs/mapnik.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/mapthumbs/mapnik.jpg
--------------------------------------------------------------------------------
/static/assets/img/mapthumbs/qwc_demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qgis/qwc2-demo-app/1632fd0801f3cf6bc22661e86b6de1af70bb2ebb/static/assets/img/mapthumbs/qwc_demo.jpg
--------------------------------------------------------------------------------
/static/assets/img/qwc-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
22 |
25 |
29 |
30 |
33 |
37 |
38 |
41 |
45 |
46 |
49 |
53 |
54 |
61 |
71 |
81 |
82 |
103 |
105 |
106 |
108 | image/svg+xml
109 |
111 |
112 |
113 |
114 |
118 |
121 |
128 |
146 |
154 |
172 |
190 |
208 |
216 |
217 |
218 |
219 |
--------------------------------------------------------------------------------
/static/assets/img/search/dataproduct.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/assets/img/search/feature.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/assets/js/helloworldplugin.js:
--------------------------------------------------------------------------------
1 |
2 | window.addEventListener("QWC2ApiReady", () => {
3 |
4 | const {React, PropTypes, connect} = window.qwc2.libs;
5 | const {TaskBar} = window.qwc2.components;
6 |
7 | class HelloWorld extends React.Component {
8 | static propTypes = {
9 | active: PropTypes.bool
10 | };
11 | render() {
12 | if (!this.props.active) {
13 | return null;
14 | }
15 | return React.createElement(TaskBar, {onHide: this.quit, task: "HelloWorld"},
16 | React.createElement('span', {role: 'body'}, "Hello world")
17 | );
18 | }
19 | quit = () => {
20 | window.qwc2.setCurrentTask(null);
21 | };
22 | }
23 |
24 | const HelloWorldPlugin = connect(state => ({
25 | active: state.task.id === "HelloWorld"
26 | }))(HelloWorld);
27 |
28 | window.qwc2.addPlugin("HelloWorldPlugin", HelloWorldPlugin);
29 | });
30 |
31 |
--------------------------------------------------------------------------------
/static/assets/searchProviders.js:
--------------------------------------------------------------------------------
1 | function usterSearch(text, searchParams, callback, axios) {
2 | const url = "https://webgis.uster.ch/wsgi/search.wsgi?&searchtables=&query=" + encodeURIComponent(text);
3 | axios.get(url).then(response => {
4 | const results = [];
5 | let currentgroup = null;
6 | let groupcounter = 0;
7 | let counter = 0;
8 | (response.data.results || []).map(entry => {
9 | if (!entry.bbox) {
10 | // Is group
11 | currentgroup = {
12 | id: "ustergroup" + (groupcounter++),
13 | title: entry.displaytext,
14 | items: []
15 | };
16 | results.push(currentgroup);
17 | } else if (currentgroup) {
18 | currentgroup.items.push({
19 | id: "usterresult" + (counter++),
20 | text: entry.displaytext,
21 | searchtable: entry.searchtable,
22 | bbox: entry.bbox.slice(0),
23 | x: 0.5 * (entry.bbox[0] + entry.bbox[2]),
24 | y: 0.5 * (entry.bbox[1] + entry.bbox[3]),
25 | crs: "EPSG:21781"
26 | });
27 | }
28 | });
29 | callback({results: results});
30 | });
31 | }
32 |
33 |
34 | function usterResultGeometry(resultItem, callback, axios) {
35 | const url = "https://webgis.uster.ch/wsgi/getSearchGeom.wsgi?searchtable=" + encodeURIComponent(resultItem.searchtable) + "&displaytext=" + encodeURIComponent(resultItem.text);
36 | axios.get(url).then(response => {
37 | callback({geometry: response.data, crs: "EPSG:21781", hidemarker: false});
38 | });
39 | }
40 |
41 | /** ************************************************************************ **/
42 |
43 | function geoAdminLocationSearch(text, searchParams, callback, axios) {
44 | const viewboxParams = {};
45 | if (searchParams.filterBBox) {
46 | viewboxParams.bbox = window.qwc2.CoordinatesUtils.reprojectBbox(searchParams.filterBBox, searchParams.mapcrs, "EPSG:2056").map(x => Math.round(x)).join(",");
47 | }
48 | const params = {
49 | searchText: text,
50 | type: "locations",
51 | limit: 20,
52 | sr: 2056,
53 | ...viewboxParams,
54 | ...(searchParams.cfgParams || {})
55 | };
56 | const url = "https://api3.geo.admin.ch/rest/services/api/SearchServer";
57 | axios.get(url, {params}).then(response => {
58 | const categoryMap = {
59 | gg25: "Municipalities",
60 | kantone: "Cantons",
61 | district: "Districts",
62 | sn25: "Places",
63 | zipcode: "Zip Codes",
64 | address: "Address",
65 | gazetteer: "General place name directory"
66 | };
67 | const parseItemBBox = (bboxstr) => {
68 | try {
69 | const matches = bboxstr.match(/^BOX\s*\(\s*(\d+\.?\d*)\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)\s*(\d+\.?\d*)\s*\)$/);
70 | return matches.slice(1, 5).map(x => parseFloat(x));
71 | } catch (e) {
72 | return null;
73 | }
74 | };
75 | const resultGroups = {};
76 | (response.data.results || []).map(entry => {
77 | if (resultGroups[entry.attrs.origin] === undefined) {
78 | resultGroups[entry.attrs.origin] = {
79 | id: entry.attrs.origin,
80 | title: categoryMap[entry.attrs.origin] || entry.attrs.origin,
81 | items: []
82 | };
83 | }
84 | const x = entry.attrs.y;
85 | const y = entry.attrs.x;
86 | resultGroups[entry.attrs.origin].items.push({
87 | id: entry.id,
88 | text: entry.attrs.label,
89 | x: x,
90 | y: y,
91 | crs: "EPSG:2056",
92 | bbox: parseItemBBox(entry.attrs.geom_st_box2d) || [x, y, x, y]
93 | });
94 | });
95 | const results = Object.values(resultGroups);
96 | callback({results: results});
97 | });
98 | }
99 |
100 | /** ************************************************************************ **/
101 |
102 | window.QWC2SearchProviders = {
103 | geoadmin: {
104 | label: "Swisstopo",
105 | onSearch: geoAdminLocationSearch
106 | },
107 | uster: {
108 | label: "Uster",
109 | onSearch: usterSearch,
110 | getResultGeometry: usterResultGeometry
111 | }
112 | };
113 |
--------------------------------------------------------------------------------
/static/assets/templates/heightprofileprint.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Height profile
5 |
6 |
7 | Height profile
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/static/assets/templates/legendprint.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Legend
5 |
11 |
12 |
13 | Map legend
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/static/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "searchServiceUrl": "http://localhost:8088/api/v2/search/",
3 | "searchDataServiceUrl": "http://localhost:8088/api/v2/search/geom/",
4 | "editServiceUrl": "http://localhost:8088/api/v1/data/",
5 | "mapInfoService": "http://localhost:8088/api/v1/mapinfo/",
6 | "permalinkServiceUrl": "http://localhost:8088/api/v1/permalink/",
7 | "elevationServiceUrl": "http://localhost:8088/elevation/",
8 | "featureReportService": "http://localhost:8088/api/v1/document/",
9 | "authServiceUrl": "http://localhost:8088/api/v1/auth/",
10 | "routingServiceUrl": "https://valhalla1.openstreetmap.de",
11 | "urlPositionFormat": "centerAndZoom",
12 | "urlPositionCrs": "",
13 | "loadTranslationOverrides": false,
14 | "omitUrlParameterUpdates": false,
15 | "preserveExtentOnThemeSwitch": true,
16 | "preserveBackgroundOnThemeSwitch": true,
17 | "preserveNonThemeLayersOnThemeSwitch": false,
18 | "storeAllLayersInPermalink": false,
19 | "allowReorderingLayers": true,
20 | "preventSplittingGroupsWhenReordering": false,
21 | "allowLayerTreeSeparators": false,
22 | "flattenLayerTreeGroups": false,
23 | "allowRemovingThemeLayers": true,
24 | "globallyDisableDockableDialogs": false,
25 | "globallyDisableMaximizeableDialogs": false,
26 | "searchThemes": true,
27 | "searchThemeLayers": true,
28 | "allowAddingOtherThemes": true,
29 | "allowFractionalZoom": false,
30 | "localeAwareNumbers": false,
31 | "geodesicMeasurements": true,
32 | "trustWmsCapabilityURLs": false,
33 | "identifyTool": "Identify",
34 | "wmsDpi": 96,
35 | "wmsHidpi": false,
36 | "wmsMaxGetUrlLength": 2048,
37 | "qgisServerVersion": 3,
38 | "defaultColorScheme": "default",
39 | "username": "admin",
40 | "defaultFeatureStyle": {
41 | "strokeColor": [0, 0, 255, 1],
42 | "strokeWidth": 1,
43 | "strokeDash": [4],
44 | "fillColor": [255, 0, 255, 0.33],
45 | "circleRadius": 10,
46 | "textFill": "black",
47 | "textStroke": "white",
48 | "textFont": "11pt sans-serif"
49 | },
50 | "importLayerUrlPresets": [
51 | {"label": "Swisstopo WMTS", "value": "https://wmts10.geo.admin.ch/EPSG/2056/1.0.0/WMTSCapabilities.xml"}
52 | ],
53 | "projections": [
54 | {
55 | "code": "EPSG:32632",
56 | "proj": "+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs",
57 | "label": "WGS 84 / UTM zone 32N"
58 | },
59 | {
60 | "code": "EPSG:21781",
61 | "proj": "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs",
62 | "label": "CH1903 / LV03"
63 | },
64 | {
65 | "code": "EPSG:2056",
66 | "proj": "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs",
67 | "label": "CH1903+ / LV95"
68 | },
69 | {
70 | "code": "EPSG:25832",
71 | "proj": "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",
72 | "label": "ETRS89 / UTM 32N"
73 | },
74 | {
75 | "code": "EPSG:31983",
76 | "proj": "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",
77 | "label": "SIRGAS 2000 / UTM zone 23S"
78 | }
79 | ],
80 | "plugins": {
81 | "common": [
82 | {
83 | "name": "API"
84 | },
85 | {
86 | "name": "AttributeTable"
87 | },
88 | {
89 | "name": "BackgroundSwitcher",
90 | "cfg": {
91 | "position": 0
92 | }
93 | },
94 | {
95 | "name": "Bookmark"
96 | },
97 | {
98 | "name": "BottomBar",
99 | "cfg": {
100 | "viewertitleUrl": "https://qwc-services.github.io/",
101 | "termsUrl": "https://qwc-services.github.io/",
102 | "viewertitleUrlTarget": "_blank"
103 | }
104 | },
105 | {
106 | "name": "Editing",
107 | "cfg": {
108 | "allowCloneGeometry": true
109 | }
110 | },
111 | {
112 | "name": "FeatureForm"
113 | },
114 | {
115 | "name": "FeatureSearch"
116 | },
117 | {
118 | "name": "HeightProfile",
119 | "cfg": {
120 | "heightProfilePrecision": 0
121 | }
122 | },
123 | {
124 | "name": "Help",
125 | "cfg": {
126 | "bodyContentsFragmentUrl": "assets/help.html"
127 | },
128 | "mapClickAction": "identify"
129 | },
130 | {
131 | "name": "HomeButton",
132 | "cfg": {
133 | "position": 4
134 | }
135 | },
136 | {
137 | "name": "Identify",
138 | "cfg": {
139 | "params": {
140 | "FI_POINT_TOLERANCE": 16,
141 | "FI_LINE_TOLERANCE": 8,
142 | "FI_POLYGON_TOLERANCE": 4,
143 | "feature_count": 20,
144 | "region_feature_count": 100
145 | },
146 | "enableExport": true,
147 | "exportGeometry": true,
148 | "longAttributesDisplay": "wrap",
149 | "displayResultTree": false,
150 | "featureInfoReturnsLayerName": true,
151 | "clearResultsOnClose": true,
152 | "geometry": {
153 | "initialWidth": 480,
154 | "initialHeight": 550,
155 | "initialX": 0,
156 | "initialY": 0
157 | }
158 | }
159 | },
160 | {
161 | "name": "LayerCatalog",
162 | "cfg": {
163 | "catalogUrl": "https://qwc2.sourcepole.ch/assets/catalog.json"
164 | }
165 | },
166 | {
167 | "name": "LayerTree",
168 | "cfg": {
169 | "showLegendIcons": true,
170 | "showRootEntry": true,
171 | "showQueryableIcon": true,
172 | "allowMapTips": true,
173 | "mapTipsEnabled": false,
174 | "allowCompare": true,
175 | "allowImport": true,
176 | "groupTogglesSublayers": false,
177 | "grayUnchecked": false,
178 | "layerInfoWindowSize": {"width": 480, "height": 400},
179 | "bboxDependentLegend": true,
180 | "scaleDependentLegend": "theme",
181 | "showToggleAllLayersCheckbox": true,
182 | "extraLegendParameters": ""
183 | },
184 | "mapClickAction": "identify"
185 | },
186 | {
187 | "name": "LocateButton",
188 | "cfg": {
189 | "position": 3
190 | }
191 | },
192 | {
193 | "name": "Map",
194 | "cfg": {
195 | "mapOptions": {
196 | "zoomDuration": 250,
197 | "enableRotation": true,
198 | "panStepSize": 0.25,
199 | "panPageSize": 0.1,
200 | "constrainExtent": false
201 | },
202 | "toolsOptions": {
203 | "OverviewSupport": {
204 | "tipLabel": "Overview"
205 | },
206 | "LocateSupport": {
207 | "keepCurrentZoomLevel": true,
208 | "stopFollowingOnDrag": true,
209 | "startupMode": "DISABLED"
210 | },
211 | "ScaleBarSupport": {
212 | "units": "metric"
213 | }
214 | },
215 | "swipeGeometryTypeBlacklist": [],
216 | "swipeLayerNameBlacklist": []
217 | }
218 | },
219 | {
220 | "name": "MapCompare"
221 | },
222 | {
223 | "name": "MapCopyright",
224 | "cfg": {
225 | "showThemeCopyrightOnly": false,
226 | "prefixCopyrightsWithLayerName": false
227 | }
228 | },
229 | {
230 | "name": "MapExport",
231 | "cfg": {
232 | "dpis": [96, 300],
233 | "exportExternalLayers": true,
234 | "defaultFormat": "image/png",
235 | "formatConfiguration": {
236 | "application/dxf": [
237 | {"name": "default"}
238 | ],
239 | "image/png": [
240 | {"name": "default"}
241 | ]
242 | }
243 | }
244 | },
245 | {
246 | "name": "MapFilter",
247 | "cfg": {
248 | "allowCustomFilters": true,
249 | "allowFilterByGeom": true
250 | }
251 | },
252 | {
253 | "name": "MapInfoTooltip",
254 | "cfg": {
255 | "elevationPrecision": 0,
256 | "includeWGS84": true
257 | }
258 | },
259 | {
260 | "name": "MapLegend",
261 | "cfg": {
262 | "addGroupTitles": true,
263 | "addLayerTitles": true,
264 | "bboxDependentLegend": false,
265 | "onlyVisibleLegend": false,
266 | "scaleDependentLegend": false,
267 | "extraLegendParameters": "LAYERTITLE=FALSE"
268 | }
269 | },
270 | {
271 | "name": "MapTip"
272 | },
273 | {
274 | "name": "Measure",
275 | "cfg": {
276 | "showMeasureModeSwitcher": true,
277 | "snappingActive": false,
278 | "snapping": true
279 | }
280 | },
281 | {
282 | "name": "NewsPopup",
283 | "cfg": {
284 | "newsDocument": "https://qwc-services.github.io/master/release_notes/ChangeLog/",
285 | "newsRev": "20250210"
286 | }
287 | },
288 | {
289 | "name": "Portal",
290 | "cfg": {
291 | "logo": "logo.svg",
292 | "topBarText": "",
293 | "showMenuOnStartup": true,
294 | "keepMenuOpen": true,
295 | "bottomBarLinks": [
296 | {"href": "https://qwc-services.github.io/", "label": "Homepage", "target": "iframe"},
297 | {"href": "https://qgis.org", "label": "QGIS.org"}
298 | ],
299 | "menuItems": [
300 | {"title": "Homepage", "icon": "info", "url": "https://qwc-services.github.io/", "target": "iframe"},
301 | {"key": "Tools", "icon": "tools", "title": "Links", "subitems": [
302 | {"icon": "link", "title": "qwc2", "url": "https://github.com/qgis/qwc2/"},
303 | {"icon": "link", "title": "qwc-docker", "url": "https://github.com/qwc-services/qwc-docker"},
304 | {"icon": "link", "title": "qgis.org", "url": "https://qgis.org"}
305 | ]}
306 | ]
307 | }
308 | },
309 | {
310 | "name": "Print",
311 | "cfg": {
312 | "inlinePrintOutput": false,
313 | "printExternalLayers": true,
314 | "gridInitiallyEnabled": false,
315 | "allowGeoPdfExport": true,
316 | "hideAutopopulatedFields": false
317 | }
318 | },
319 | {
320 | "name": "ProcessNotifications"
321 | },
322 | {
323 | "name": "Redlining"
324 | },
325 | {
326 | "name": "Routing"
327 | },
328 | {
329 | "name": "TopBar",
330 | "cfg": {
331 | "menuItems": [
332 | {"key": "Portal", "icon": "themes"},
333 | {"key": "ThemeSwitcher", "icon": "themes", "shortcut": "alt+shift+t"},
334 | {"key": "LayerTree", "icon": "layers", "shortcut": "alt+shift+l"},
335 | {"key": "MapLegend", "icon": "list-alt"},
336 | {"key": "LayerCatalog", "icon": "catalog", "shortcut": "alt+shift+c"},
337 | {"key": "FeatureSearch", "icon": "search"},
338 | {"key": "Share", "icon": "share", "shortcut": "alt+shift+s"},
339 | {"key": "Bookmark", "icon": "bookmark", "shortcut": "alt+shift+b"},
340 | {"key": "Tools", "icon": "tools", "subitems": [
341 | {"key": "Identify", "icon": "identify_region", "mode": "Region"},
342 | {"key": "TimeManager", "icon": "clock"},
343 | {"key": "Measure", "icon": "measure"},
344 | {"key": "Redlining", "icon": "draw"},
345 | {"key": "Editing", "icon": "editing"},
346 | {"key": "FeatureForm", "icon": "featureform"},
347 | {"key": "AttributeTable", "icon": "editing"},
348 | {"key": "MapExport", "icon": "rasterexport"},
349 | {"key": "Routing", "icon": "routing"}
350 | ]},
351 | {"key": "Print", "icon": "print", "shortcut": "alt+shift+p"},
352 | {"key": "Help", "icon": "info", "shortcut": "alt+shift+h"},
353 | {"key": "Settings", "icon": "cog"},
354 | {"title": "Homepage", "icon": "link", "url": "https://qwc-services.github.io/", "target": "iframe"}
355 | ],
356 | "searchOptions": {
357 | "allowSearchFilters": false,
358 | "hideResultLabels": false,
359 | "minScaleDenom": 1000,
360 | "zoomToLayers": false,
361 | "showProvidersInPlaceholder": false,
362 | "highlightStyle": {
363 | "strokeColor": [255, 0, 0, 1],
364 | "strokeWidth": 1,
365 | "strokeDash": [4, 1],
366 | "fillColor": [255, 0, 0, 0.33]
367 | }
368 | },
369 | "appMenuClearsTask": true,
370 | "appMenuFilterField": true,
371 | "appMenuVisibleOnStartup": false,
372 | "logoUrl": "/",
373 | "appMenuShortcut": "alt+shift+m",
374 | "toolbarItemsShortcutPrefix": "alt+shift"
375 | }
376 | },
377 | {
378 | "name": "ScratchDrawing"
379 | },
380 | {
381 | "name": "Settings",
382 | "cfg": {
383 | "languages": [
384 | {
385 | "title": "English",
386 | "value": "en-US"
387 | },
388 | {
389 | "title": "Deutsch",
390 | "value": "de-CH"
391 | },
392 | {
393 | "title": "Français",
394 | "value": "fr-FR"
395 | },
396 | {
397 | "title": "Italiano",
398 | "value": "it-IT"
399 | }
400 | ],
401 | "colorSchemes": [
402 | {
403 | "titleMsgId": "colorschemes.default",
404 | "value": "default"
405 | },
406 | {
407 | "titleMsgId": "colorschemes.highcontrast",
408 | "value": "highcontrast"
409 | },
410 | {
411 | "titleMsgId": "colorschemes.dark",
412 | "value": "dark"
413 | }
414 | ]
415 | }
416 | },
417 | {
418 | "name": "Share",
419 | "cfg": {
420 | "showSocials": true,
421 | "showLink": true,
422 | "showQRCode": true
423 | },
424 | "mapClickAction": "identify"
425 | },
426 | {
427 | "name": "StartupMarker",
428 | "cfg": {
429 | "removeMode": "onclickonmarker"
430 | }
431 | },
432 | {
433 | "name": "ThemeSwitcher",
434 | "cfg": {
435 | "collapsibleGroups": true
436 | }
437 | },
438 | {
439 | "name": "TimeManager",
440 | "mapClickAction": "identify",
441 | "cfg": {
442 | "markerConfiguration": {
443 | "markersAvailable": true,
444 | "gradient": ["#f7af7d", "#eacc6e", "#fef89a", "#c5e09b", "#a3d29c", "#7cc096", "#79c8c5", "#34afce"],
445 | "markerOffset": [0, 0],
446 | "markerPins": true
447 | },
448 | "cursorFormat": "datetime",
449 | "dateFormat": "DD.MM.YYYY[\n]HH:mm:ss",
450 | "defaultAnimationInterval": 1,
451 | "defaultStepSize": 1,
452 | "defaultStepUnit": "d",
453 | "defaultTimelineMode": "infinite",
454 | "stepUnits": ["s", "m", "h", "d", "M", "y", "10y", "100y"],
455 | "defaultTimelineDisplay": "features"
456 | }
457 | }
458 | ],
459 | "mobile": [
460 | {
461 | "name": "BottomBar",
462 | "cfg": {
463 | "displayCoordinates": false,
464 | "displayScales": false
465 | }
466 | }
467 | ],
468 | "desktop": [
469 | {
470 | "name": "TaskButton",
471 | "cfg": {
472 | "position": 5,
473 | "task": "LayerTree",
474 | "icon": "layers"
475 | }
476 | },
477 | {
478 | "name": "TaskButton",
479 | "cfg": {
480 | "position": 6,
481 | "task": "Editing",
482 | "icon": "editing"
483 | }
484 | },
485 | {
486 | "name": "ZoomIn",
487 | "cfg": {
488 | "position": 2
489 | }
490 | },
491 | {
492 | "name": "ZoomOut",
493 | "cfg": {
494 | "position": 1
495 | }
496 | },
497 | {
498 | "name": "TopBar",
499 | "cfg": {
500 | "toolbarItems": [
501 | {"key": "Measure", "mode": "LineString", "icon": "measure_line"},
502 | {"key": "Measure", "mode": "Polygon", "icon": "measure_polygon"},
503 | {"key": "Print", "icon": "print"},
504 | {"key": "Identify", "icon": "identify_region", "mode": "Region"}
505 | ]
506 | }
507 | }
508 | ]
509 | }
510 | }
511 |
--------------------------------------------------------------------------------
/static/themesConfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "defaultScales": [100000000, 50000000, 25000000, 10000000, 4000000, 2000000, 1000000, 400000, 200000, 80000, 40000, 20000, 10000, 8000, 6000, 4000, 2000, 1000, 500, 250, 100],
3 | "defaultPrintGrid": [
4 | {"s": 10000000, "x": 1000000, "y": 1000000},
5 | {"s": 1000000, "x": 100000, "y": 100000},
6 | {"s": 100000, "x": 10000, "y": 10000},
7 | {"s": 10000, "x": 1000, "y": 1000},
8 | {"s": 1000, "x": 100, "y": 100},
9 | {"s": 100, "x": 10, "y": 10}
10 | ],
11 | "defaultWMSVersion": "1.3.0",
12 | "defaultBackgroundLayers": [],
13 | "defaultSearchProviders": ["coordinates"],
14 | "defaultMapCrs": "EPSG:3857",
15 | "defaultTheme": "qwc_demo",
16 | "themes": {
17 | "items": [
18 | {
19 | "id": "qwc_demo",
20 | "title": "QWC Demo Theme",
21 | "url": "http://qwc2.sourcepole.ch/ows/qwc_demo",
22 | "attribution": "Demo attribution",
23 | "attributionUrl": "https://example.com/",
24 | "backgroundLayers": [
25 | {"name": "bluemarble", "printLayer": "bluemarble_bg", "visibility": true},
26 | {"name": "mapnik", "printLayer": "osm_bg"}
27 | ],
28 | "searchProviders": [
29 | "coordinates",
30 | "nominatim",
31 | {
32 | "provider": "fulltext",
33 | "params": {
34 | "default": ["ne_10m_admin_0_countries"]
35 | }
36 | }
37 | ],
38 | "mapCrs": "EPSG:3857",
39 | "additionalMouseCrs": [],
40 | "extent": [-1000000,4000000,3000000,8000000],
41 | "printResolutions": [100, 300],
42 | "thumbnail": "qwc_demo.jpg",
43 | "featureReport": {
44 | "countries": "Country"
45 | },
46 | "predefinedFilters": [{
47 | "id": "continent_filter",
48 | "title": "Continent",
49 | "filter": {
50 | "countries": ["continent", "=", "$continent$"]
51 | },
52 | "fields": [{
53 | "id": "continent",
54 | "title": "Name",
55 | "defaultValue": "",
56 | "inputConfig": {"type": "select", "options": ["Africa", "Asia", "Europe", "Oceania"]}
57 | }]
58 | }],
59 | "extraLegendParameters": "LAYERTITLE=FALSE",
60 | "defaultPrintLayout": "A4 Landscape"
61 | }
62 | ],
63 | "backgroundLayers": [
64 | {
65 | "name": "mapnik",
66 | "title": "Open Street Map",
67 | "type": "osm",
68 | "source": "osm",
69 | "attribution": "OpenStreetMap contributors",
70 | "attributionUrl": "https://www.openstreetmap.org/copyright",
71 | "thumbnail": "img/mapthumbs/mapnik.jpg"
72 | },
73 | {
74 | "type": "wmts",
75 | "url": "http://gibs.earthdata.nasa.gov/wmts/epsg3857/best/BlueMarble_ShadedRelief/default/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg",
76 | "title": "Blue Marble",
77 | "name": "bluemarble",
78 | "tileMatrixPrefix": "",
79 | "tileMatrixSet": "GoogleMapsCompatible_Level8",
80 | "originX": -20037508.34278925,
81 | "originY": 20037508.34278925,
82 | "projection:": "EPSG:3857",
83 | "resolutions": [156543.03390625,78271.516953125,39135.7584765625,19567.87923828125,9783.939619140625,4891.9698095703125,2445.9849047851562,1222.9924523925781],
84 | "tileSize": [256,256],
85 | "thumbnail": "img/mapthumbs/bluemarble.jpg"
86 | }
87 | ]
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/static/translations/cs-CZ.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "cs-CZ",
3 | "messages": {
4 | "appmenu": {
5 | "items": {
6 | "ExternalLink": "",
7 | "Bookmark": "Záložky",
8 | "Compare3D": "",
9 | "Editing": "Úpravy",
10 | "ExportObjects3D": "",
11 | "Help": "Nápověda",
12 | "HideObjects3D": "",
13 | "LayerTree": "Vrstvy & legenda",
14 | "LayerTree3D": "",
15 | "MapExport": "Export mapu",
16 | "MapExport3D": "",
17 | "MapFilter": "",
18 | "MapLight3D": "",
19 | "Print": "Tisk",
20 | "Reports": "",
21 | "Settings": "Nastavení",
22 | "Share": "Sdílet odkaz",
23 | "ThemeSwitcher": "Téma",
24 | "AttributeTable": "Atributy",
25 | "AuthenticationLogin": "Přihlášení",
26 | "AuthenticationLogout": "Odhlášení",
27 | "Cyclomedia": "Cyclomedia",
28 | "Draw3D": "",
29 | "FeatureForm": "Editační formulář",
30 | "FeatureSearch": "",
31 | "GeometryDigitizer": "",
32 | "IdentifyPoint": "Informace o bodu",
33 | "IdentifyRegion": "Informace o oblasti",
34 | "LayerCatalog": "Katalog vrstev",
35 | "Login": "Přihlášení",
36 | "Logout": "Odhlášení",
37 | "MapLegend": "Legenda",
38 | "Measure": "Měření",
39 | "Measure3D": "",
40 | "MeasureLineString": "Změřit úsek",
41 | "MeasurePolygon": "Měřit mnohoúhelník",
42 | "NewsPopup": "",
43 | "Panoramax": "",
44 | "Portal": "",
45 | "PrintScreen3D": "",
46 | "Redlining": "Připomínkování",
47 | "Routing": "Trasy",
48 | "Tools": "Nástroje mapy",
49 | "TimeManager": "",
50 | "View3D": ""
51 | },
52 | "filter": "Hledat v menu...",
53 | "menulabel": "Mapa & Nástroje"
54 | },
55 | "search": {
56 | "coordinates": "",
57 | "all": "Vše",
58 | "circleradius": "",
59 | "clearfilter": "",
60 | "existinglayer": "Vrstva v mapě již existuje",
61 | "filter": "Filtrovat výsledky",
62 | "layers": "",
63 | "limittoarea": "",
64 | "more": "{0} další výsledky",
65 | "nodescription": "",
66 | "none": "",
67 | "noresults": "Nenalezeno",
68 | "placeholder": "Hledat místo nebo přidat vrstvu...",
69 | "places": "",
70 | "providerselection": "Poskytovatelé vyhledávání",
71 | "recent": "Nedávná hledání",
72 | "search": "Hledat",
73 | "themelayers": "",
74 | "themes": "Témata",
75 | "unknownmore": ""
76 | },
77 | "colorschemes": {
78 | "default": "",
79 | "dark": "",
80 | "highcontrast": ""
81 | },
82 | "app": {
83 | "missingbg": "",
84 | "missinglayers": "",
85 | "missingpermalink": "",
86 | "missingprojection": "",
87 | "missingtheme": ""
88 | },
89 | "attribtable": {
90 | "addfeature": "Přidat prvek",
91 | "commit": "Uložit změněný řádek",
92 | "csvexport": "",
93 | "delete": "Smazat",
94 | "deletefailed": "Chyba při mazání jednoho nebo více prvků",
95 | "deletefeatures": "Smazat vybrané prvky",
96 | "deleting": "Mazání prvků...",
97 | "discard": "Zahodit změny v řádku",
98 | "formeditmode": "Otevřít editační formulář pro vybrané prvky",
99 | "geomnoadd": "Pro přidání nových prvků do této vrstvy použijte editační formulář",
100 | "limittoextent": "",
101 | "loadfailed": "Chyba při načítání prvků",
102 | "loading": "Načítání...",
103 | "nodelete": "Nemazat",
104 | "nogeomnoform": "Editační formulář není dostupný pro vrstvy bez geometrie",
105 | "pleasereload": "Kliknutím na 'Obnovit' načtete tabulku atributů",
106 | "reload": "Obnovit",
107 | "selectlayer": "Vybrat vrstvu",
108 | "title": "Tabulka atributů",
109 | "zoomtoselection": "Přiblížit na vybrané prvky"
110 | },
111 | "bgswitcher": {
112 | "nobg": "Bez podkladu"
113 | },
114 | "bookmark": {
115 | "add": "Vytvořit novou záložku",
116 | "addfailed": "Vytváření záložky selhalo",
117 | "description": "Popis záložky",
118 | "lastUpdate": "Naposledy upraveno",
119 | "manage": "Správa záložek",
120 | "nobookmarks": "Zatím žádné záložky",
121 | "notloggedin": "Pro vytvoření záložky se musíte přihlásit",
122 | "open": "Otevřít záložku",
123 | "openTab": "Otevřít záložku v novém okně",
124 | "remove": "Smazat",
125 | "removefailed": "Mazání záložky selhalo",
126 | "savefailed": "Ukládání záložky selhalo",
127 | "update": "Upravit",
128 | "zoomToExtent": ""
129 | },
130 | "bottombar": {
131 | "mousepos_label": "Souřadnice",
132 | "scale_label": "Měřítko",
133 | "terms_label": "Podmínky použití",
134 | "viewertitle_label": ""
135 | },
136 | "compare3d": {
137 | "clipplane": "",
138 | "compare_objects": "",
139 | "toggleall": ""
140 | },
141 | "cookiepopup": {
142 | "accept": "",
143 | "message": ""
144 | },
145 | "copybtn": {
146 | "click_to_copy": "Zkopírovat do schránky",
147 | "copied": "Zkopírováno",
148 | "copyfailed": ""
149 | },
150 | "cyclomedia": {
151 | "clickonmap": "",
152 | "initializing": "",
153 | "loaderror": "",
154 | "loading": "Načítání...",
155 | "login": "",
156 | "scalehint": "",
157 | "title": "Cyclomedia"
158 | },
159 | "draw3d": {
160 | "cone": "",
161 | "cuboid": "",
162 | "cylinder": "",
163 | "delete": "",
164 | "drawings": "",
165 | "intersect": "",
166 | "newgroupprompt": "",
167 | "numericinput": "",
168 | "pick": "",
169 | "position": "",
170 | "pyramid": "",
171 | "rotate": "",
172 | "rotation": "",
173 | "scale": "",
174 | "sphere": "",
175 | "subtract": "",
176 | "thescale": "",
177 | "translate": "",
178 | "undoBool": "",
179 | "union": "",
180 | "wedge": ""
181 | },
182 | "editing": {
183 | "add": "Přidat",
184 | "attrtable": "",
185 | "canceldelete": "Neodstraňovat",
186 | "clearpicture": "",
187 | "commit": "Potvrdit",
188 | "commitfailed": "",
189 | "contraintviolation": "",
190 | "create": "Vytvořit",
191 | "delete": "Odstranit",
192 | "discard": "Vyřadit",
193 | "draw": "Kreslit",
194 | "feature": "Prvek",
195 | "geomreadonly": "",
196 | "invalidform": "",
197 | "maximize": "Maximální",
198 | "minimize": "Minimální",
199 | "noeditablelayers": "Needitovatelná vrstva.",
200 | "paint": "",
201 | "pick": "Výběr",
202 | "pickdrawfeature": "",
203 | "reallydelete": "Odstranit",
204 | "relationcommitfailed": "",
205 | "select": "Vybrat",
206 | "takepicture": "",
207 | "unsavedchanged": ""
208 | },
209 | "featureform": {
210 | "feature": "Prvek",
211 | "noresults": "Žádné výsledky",
212 | "querying": "Načítání...",
213 | "title": "Editační formulář"
214 | },
215 | "featuresearch": {
216 | "noresults": "",
217 | "query": "",
218 | "select": "",
219 | "title": ""
220 | },
221 | "fileselector": {
222 | "files": "Soubory",
223 | "placeholder": "Vybrat soubor..."
224 | },
225 | "geomdigitizer": {
226 | "applink": "",
227 | "bufferlayername": "",
228 | "chooselink": "",
229 | "clear": "",
230 | "identifypick": "",
231 | "identifypickregion": "",
232 | "layername": "",
233 | "line_buffer": "",
234 | "point_buffer": "",
235 | "selfinter": "",
236 | "send": "",
237 | "wait": ""
238 | },
239 | "heightprofile": {
240 | "asl": "m n. m.",
241 | "distance": "Vzdálenost",
242 | "drawnodes": "",
243 | "error": "",
244 | "export": "Export výškového profilu",
245 | "height": "Výška",
246 | "loading": "Výpočet výškového profilu...",
247 | "loadingimage": "",
248 | "print": "",
249 | "title": ""
250 | },
251 | "hideobjects3d": {
252 | "clickonmap": "",
253 | "object": "",
254 | "restore": "",
255 | "restoreall": ""
256 | },
257 | "identify": {
258 | "aggregatedreport": "",
259 | "clipboard": "Zkopírovat do schránky",
260 | "download": "",
261 | "export": "Exportovat",
262 | "featureReport": "Report prvku",
263 | "featurecount": "",
264 | "layerall": "",
265 | "link": "Odkaz",
266 | "noattributes": "Bez atributů",
267 | "noresults": "V tomto bodu nejsou k dispozici informace o žádném prvku",
268 | "querying": "Dotazování...",
269 | "reportfail": "",
270 | "selectlayer": "",
271 | "title": "Informace o prvku"
272 | },
273 | "imageeditor": {
274 | "confirmclose": "",
275 | "title": ""
276 | },
277 | "importlayer": {
278 | "addfailed": "Přidání vrstvy selhalo",
279 | "addlayer": "Přidat vrstvu",
280 | "asgroup": "",
281 | "connect": "Připojit",
282 | "filter": "Filtr...",
283 | "loading": "Načítání...",
284 | "localfile": "Soubor z počítače",
285 | "nofeatures": "Žádné prvku nebyly importovány.",
286 | "noresults": "Bez výsledku nebo nevalidní URL",
287 | "notgeopdf": "",
288 | "shpreprojectionerror": "",
289 | "supportedformats": "",
290 | "unknownproj": "",
291 | "url": "URL",
292 | "urlplaceholder": "Vložit URL pro WMS, WMTS, WFS..."
293 | },
294 | "infotool": {
295 | "clickhelpPoint": "Klikněte na bod, o kterém chcete zobrazit další informace.",
296 | "clickhelpPolygon": "Nakreslete polygon okolo prvků, ke kterým chcete zobrazit další informace.",
297 | "clickhelpRadius": "Nastavte velikost okruhu a klikněte na místo, okolo kterého chcete načíst informace o prvcích.",
298 | "radius": "Velikost okruhu"
299 | },
300 | "layercatalog": {
301 | "windowtitle": "Katalog vrstev"
302 | },
303 | "layerinfo": {
304 | "abstract": "Abstraktní",
305 | "attribution": "Vlastník",
306 | "dataUrl": "Data URL",
307 | "keywords": "Klíčová slova",
308 | "legend": "Legenda",
309 | "maxscale": "Největší měřítko",
310 | "metadataUrl": "Metadata URL",
311 | "minscale": "Nejmenší měřítko",
312 | "title": "Informace o vrstvě"
313 | },
314 | "layertree": {
315 | "compare": "Porovnat vrchní vrstvy",
316 | "deletealllayers": "Odstranit všechny vrstvy",
317 | "importlayer": "Importovat vrstvu",
318 | "maptip": "Zobrazovat bubliny nad mapou",
319 | "printlegend": "Tisk legendy",
320 | "separator": "",
321 | "separatortooltip": "",
322 | "transparency": "Průhlednost",
323 | "visiblefilter": "Skrýt nezobrazující se vrstvy",
324 | "zoomtolayer": "Vycentrovat na vrstvu"
325 | },
326 | "layertree3d": {
327 | "import": "",
328 | "importobjects": "",
329 | "layers": "",
330 | "objects": "",
331 | "supportedformats": "",
332 | "zoomtoobject": ""
333 | },
334 | "linkfeatureform": {
335 | "cancel": "",
336 | "close": "",
337 | "drawhint": "",
338 | "pickhint": ""
339 | },
340 | "locate": {
341 | "feetUnit": "stopy",
342 | "metersUnit": "metry",
343 | "popup": "Jste uvnitř {distance} {unit} z tohoto bodu",
344 | "statustooltip": {
345 | "DISABLED": "Poloha: vypnuta",
346 | "ENABLED": "Poloha: zapnuta",
347 | "FOLLOWING": "Poloha: následující",
348 | "LOCATING": "Poloha: načítá se...",
349 | "PERMISSION_DENIED": "Poloha: nepovoleno"
350 | }
351 | },
352 | "map": {
353 | "loading": "Načítání...",
354 | "resetrotation": "Obnovit orientaci mapy"
355 | },
356 | "map3d": {
357 | "syncview": "",
358 | "terrain": "",
359 | "title": ""
360 | },
361 | "mapexport": {
362 | "configuration": "",
363 | "format": "Formát:",
364 | "resolution": "Rozlišení:",
365 | "scale": "Měřítko",
366 | "size": "Velikost",
367 | "submit": "Export",
368 | "usersize": "Vybrat na mapě...",
369 | "wait": "Čekejte..."
370 | },
371 | "mapfilter": {
372 | "addcustomfilter": "",
373 | "brokenrendering": "",
374 | "cancel": "",
375 | "geomfilter": "",
376 | "hidefiltergeom": "",
377 | "invalidfilter": "",
378 | "save": "",
379 | "select": "",
380 | "selectlayer": "",
381 | "timefilter": "",
382 | "timefrom": "",
383 | "timeto": ""
384 | },
385 | "mapinfotooltip": {
386 | "elevation": "Nadmořská výška",
387 | "title": "Poloha"
388 | },
389 | "maplegend": {
390 | "bboxdependent": "Pouze pro prvky v zobrazující se oblasti",
391 | "onlyvisible": "Pouze pro zobrazené vrstvy",
392 | "scaledependent": "Pouze pro prvky v současném přiblížení",
393 | "windowtitle": "Legenda"
394 | },
395 | "maplight3d": {
396 | "ambientLightIntensity": "",
397 | "animationstep": "",
398 | "date": "",
399 | "dayspersec": "",
400 | "directionalLightIntensity": "",
401 | "helpersVisible": "",
402 | "minspersec": "",
403 | "normalBias": "",
404 | "shadowBias": "",
405 | "shadowMapSize": "",
406 | "shadowType": "",
407 | "shadowVolumeFar": "",
408 | "shadowVolumeNear": "",
409 | "shadowintensity": "",
410 | "shadows": "",
411 | "showadvanced": "",
412 | "time": "",
413 | "zFactor": ""
414 | },
415 | "measureComponent": {
416 | "absolute": "",
417 | "areaLabel": "Plocha",
418 | "bearingLabel": "Střed",
419 | "ground": "",
420 | "imperial": "Imperiálně",
421 | "lengthLabel": "Délka",
422 | "metric": "Metricky",
423 | "pointLabel": "Poloha"
424 | },
425 | "misc": {
426 | "ctrlclickhint": ""
427 | },
428 | "navbar": {
429 | "perpage": "na stránku"
430 | },
431 | "newspopup": {
432 | "dialogclose": "Zavřít",
433 | "dontshowagain": "Znovu nezobrazovat",
434 | "title": "Novinky"
435 | },
436 | "numericinput": {
437 | "angle": "",
438 | "featureunsupported": "",
439 | "height": "",
440 | "nofeature": "",
441 | "side": "",
442 | "width": "",
443 | "windowtitle": ""
444 | },
445 | "panoramax": {
446 | "notfound": "",
447 | "title": ""
448 | },
449 | "pickfeature": {
450 | "querying": ""
451 | },
452 | "portal": {
453 | "filter": "",
454 | "menulabel": ""
455 | },
456 | "print": {
457 | "atlasfeature": "",
458 | "download": "",
459 | "download_as_onepdf": "",
460 | "download_as_onezip": "",
461 | "download_as_single": "",
462 | "format": "Formát",
463 | "grid": "Mřížka:",
464 | "layout": "Rovržení:",
465 | "legend": "Legenda",
466 | "maximize": "Maximální",
467 | "minimize": "Minimální",
468 | "nolayouts": "Vybrané téma nepodporuje tisk",
469 | "notheme": "Není vybráno téma",
470 | "output": "",
471 | "overlap": "",
472 | "pickatlasfeature": "",
473 | "resolution": "Rozlišení",
474 | "rotation": "Orientace",
475 | "save": "",
476 | "scale": "Měřítko",
477 | "series": "",
478 | "submit": "Tisk",
479 | "wait": "Čekejte..."
480 | },
481 | "qtdesignerform": {
482 | "loading": ""
483 | },
484 | "redlining": {
485 | "border": "Okraj",
486 | "buffer": "",
487 | "buffercompute": "",
488 | "bufferdistance": "",
489 | "bufferlayer": "",
490 | "bufferlayername": "",
491 | "bufferselectfeature": "",
492 | "circle": "",
493 | "delete": "",
494 | "draw": "",
495 | "edit": "",
496 | "ellipse": "",
497 | "export": "",
498 | "freehand": "",
499 | "label": "Popisek",
500 | "layer": "Vrstva",
501 | "layertitle": "",
502 | "line": "Linie",
503 | "markers": "",
504 | "measurements": "",
505 | "numericinput": "",
506 | "pick": "Výběr",
507 | "point": "Bod",
508 | "polygon": "Polygon",
509 | "rectangle": "",
510 | "size": "Velikost",
511 | "square": "",
512 | "text": "Text",
513 | "transform": "",
514 | "width": "Šířka"
515 | },
516 | "reports": {
517 | "all": "",
518 | "download": "",
519 | "pick": "",
520 | "region": "",
521 | "selectlayer": ""
522 | },
523 | "routing": {
524 | "add": "",
525 | "addviapoint": "Přes tento bod",
526 | "arriveat": "",
527 | "clear": "",
528 | "computefailed": "",
529 | "computing": "",
530 | "excludepolygons": "",
531 | "export": "",
532 | "fastest": "",
533 | "fromhere": "Odtud",
534 | "importerror": "",
535 | "importhint": "",
536 | "importpoints": "",
537 | "iso_intervals": "",
538 | "iso_mode": "",
539 | "iso_mode_distance": "",
540 | "iso_mode_time": "",
541 | "isocenter": "Centrum",
542 | "isoextracenter": "Širší centrum",
543 | "leaveat": "",
544 | "leavenow": "",
545 | "maxspeed": "",
546 | "method": "",
547 | "mode_auto": "",
548 | "mode_bicycle": "",
549 | "mode_heavyvehicle": "",
550 | "mode_transit": "",
551 | "mode_walking": "",
552 | "optimized_route": "",
553 | "reachability": "Dostupnost",
554 | "roundtrip": "",
555 | "route": "Trasa",
556 | "shortest": "",
557 | "tohere": "Sem",
558 | "useferries": "",
559 | "usehighways": "",
560 | "usetollways": "",
561 | "windowtitle": ""
562 | },
563 | "scratchdrawing": {
564 | "finish": ""
565 | },
566 | "serviceinfo": {
567 | "abstract": "Abstrakt",
568 | "contactEmail": "Kontaktní e-mail",
569 | "contactOrganization": "Organizace",
570 | "contactPerson": "Kontaktní osoba",
571 | "contactPhone": "Kontaktní telefon",
572 | "contactPosition": "Pozice",
573 | "keywords": "Klíčová slova",
574 | "onlineResource": "Odkaz",
575 | "title": "Informace o tématu"
576 | },
577 | "settings": {
578 | "bookmarks": "",
579 | "colorscheme": "Barevné schéma",
580 | "confirmlang": "Pro změnu jazyka je třeba aplikaci znovu načíst. Pokračovat?",
581 | "default": "",
582 | "defaulttheme": "",
583 | "defaultthemefailed": "",
584 | "language": "Jazyk",
585 | "systemlang": "Systémový jazyk",
586 | "themes": ""
587 | },
588 | "share": {
589 | "QRCodeLinkTitle": "QR kód",
590 | "directLinkTitle": "Přes přímý odkaz",
591 | "expires": "",
592 | "norestriction": "",
593 | "refresh": "Generovat odkaz",
594 | "restricttogroup": "",
595 | "shareTitle": "QWC2",
596 | "showpin": "Zobrazit bod",
597 | "socialIntro": "Na sociální síti"
598 | },
599 | "snapping": {
600 | "edge": "",
601 | "loading": "Načítání...",
602 | "snappingenabled": "",
603 | "vertex": ""
604 | },
605 | "themelayerslist": {
606 | "addlayer": "Přidat vrstvu",
607 | "addlayerstotheme": "Přidat vrstvy do aktuálního tématu",
608 | "addselectedlayers": "Přidat vybrané vrstvy",
609 | "existinglayers": ""
610 | },
611 | "themeswitcher": {
612 | "addlayerstotheme": "Přidat vrstvy do aktuálního tématu",
613 | "addtotheme": "Přidat k aktuálnímu tématu",
614 | "changedefaulttheme": "",
615 | "confirmswitch": "Vrstvy které nejsou součástí tématu budou při přepnutí tématu ztraceny. Pokračovat?",
616 | "filter": "Filtr...",
617 | "match": {
618 | "abstract": "Abstrakt",
619 | "keywords": "Klíčová slova",
620 | "title": "Název"
621 | },
622 | "openintab": "Otevřít v novém okně",
623 | "restrictedthemeinfo": ""
624 | },
625 | "timemanager": {
626 | "animationinterval": "",
627 | "classify": "",
628 | "classifynone": "",
629 | "displayfeatures": "",
630 | "displaylayers": "",
631 | "displayminimal": "",
632 | "edit": "",
633 | "endtime": "",
634 | "filterwarning": "",
635 | "future": "",
636 | "group": "",
637 | "groupnone": "",
638 | "home": "",
639 | "loading": "Načítání...",
640 | "loop": "",
641 | "markers": "",
642 | "notemporaldata": "",
643 | "now": "",
644 | "past": "",
645 | "play": "",
646 | "playrev": "",
647 | "rewind": "",
648 | "starttime": "",
649 | "stepback": "",
650 | "stepfwd": "",
651 | "stepsize": "",
652 | "stop": "",
653 | "timeline": "",
654 | "timeline_fixed": "",
655 | "timeline_infinite": "",
656 | "timelinedisplay": "",
657 | "timelinescale": "",
658 | "title": "",
659 | "toggle": "",
660 | "unit": {
661 | "century": "",
662 | "days": "",
663 | "decade": "",
664 | "hours": "",
665 | "milliseconds": "",
666 | "minutes": "",
667 | "months": "",
668 | "seconds": "",
669 | "years": ""
670 | },
671 | "zoomin": "Přiblížit",
672 | "zoomout": "Oddálit"
673 | },
674 | "tooltip": {
675 | "background": "Podkladové mapy",
676 | "fullscreendisable": "Ukončit režim celé obrazovky",
677 | "fullscreenenable": "Na celou obrazovku",
678 | "home": "Výchozí zobrazení mapy",
679 | "zoomin": "Přiblížit",
680 | "zoomout": "Oddálit"
681 | },
682 | "valuetool": {
683 | "all": "",
684 | "allbands": "",
685 | "alllayers": "",
686 | "bands": "",
687 | "graph": "",
688 | "layer": "",
689 | "nodata": "",
690 | "options": "",
691 | "selectedbands": "",
692 | "selectedlayers": "",
693 | "selectlayersbands": "",
694 | "showbands": "",
695 | "showlayers": "",
696 | "table": "",
697 | "title": "",
698 | "visiblelayers": ""
699 | },
700 | "vectorlayerpicker": {
701 | "none": "Žádná",
702 | "prompt": "Zadejte název vrstvy"
703 | },
704 | "window": {
705 | "close": "Zavřít",
706 | "detach": "",
707 | "dock": "Přichytit",
708 | "embed": "",
709 | "maximize": "Maximalizovat",
710 | "minimize": "Minimalizovat",
711 | "undock": "Zrušit přichycení",
712 | "unmaximize": "Obnovit velikost okna",
713 | "unminimize": "Obnovit velikost okna"
714 | }
715 | }
716 | }
717 |
--------------------------------------------------------------------------------
/static/translations/ja-JP.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "ja-JP",
3 | "messages": {
4 | "appmenu": {
5 | "items": {
6 | "ExternalLink": "",
7 | "Bookmark": "ブックマーク",
8 | "Compare3D": "比較",
9 | "Editing": "編集",
10 | "ExportObjects3D": "オブジェクトをエクスポート",
11 | "Help": "ヘルプ",
12 | "HideObjects3D": "オブジェクトを非表示",
13 | "LayerTree": "レイヤ & 凡例",
14 | "LayerTree3D": "レイヤ",
15 | "MapExport": "地図をエクスポート",
16 | "MapExport3D": "地図をエクスポート",
17 | "MapFilter": "マップ・フィルタ",
18 | "MapLight3D": "光と影",
19 | "Print": "印刷",
20 | "Reports": "レポート",
21 | "Settings": "設定",
22 | "Share": "リンクを共有",
23 | "ThemeSwitcher": "テーマ",
24 | "AttributeTable": "属性テーブル",
25 | "AuthenticationLogin": "ログイン",
26 | "AuthenticationLogout": "ログアウト",
27 | "Cyclomedia": "Cyclomedia",
28 | "Draw3D": "作図",
29 | "FeatureForm": "地物フォーム",
30 | "FeatureSearch": "地物検索",
31 | "GeometryDigitizer": "ジオメトリ・デジタイザ",
32 | "IdentifyPoint": "点で地物を確認",
33 | "IdentifyRegion": "領域内の地物を確認",
34 | "LayerCatalog": "レイヤ・カタログ",
35 | "Login": "ログイン",
36 | "Logout": "ログアウト",
37 | "MapLegend": "凡例",
38 | "Measure": "計測",
39 | "Measure3D": "計測",
40 | "MeasureLineString": "ラインを測る",
41 | "MeasurePolygon": "ポリゴンを測る",
42 | "NewsPopup": "ニュース",
43 | "Panoramax": "Panoramax",
44 | "Portal": "ポータル",
45 | "PrintScreen3D": "ラスタ・エクスポート",
46 | "Redlining": "スケッチ",
47 | "Routing": "ルート探索",
48 | "Tools": "地図ツール",
49 | "TimeManager": "タイム・マネージャ",
50 | "View3D": "3D 表示"
51 | },
52 | "filter": "メニューをフィルタ...",
53 | "menulabel": "地図 & ツール"
54 | },
55 | "search": {
56 | "coordinates": "",
57 | "all": "全て",
58 | "circleradius": "円の半径",
59 | "clearfilter": "クリア",
60 | "existinglayer": "レイヤは既に地図の中に存在します",
61 | "filter": "検索を詳細化",
62 | "layers": "レイヤ",
63 | "limittoarea": "領域に限定",
64 | "more": "その他 {0} の検索結果",
65 | "nodescription": "説明がありません",
66 | "none": "無し",
67 | "noresults": "検索結果無し",
68 | "placeholder": "場所を検索、または地図を追加...",
69 | "places": "場所",
70 | "providerselection": "検索プロバイダ",
71 | "recent": "最近の検索",
72 | "search": "検索",
73 | "themelayers": "テーマのレイヤ",
74 | "themes": "テーマ",
75 | "unknownmore": "更なる結果"
76 | },
77 | "colorschemes": {
78 | "default": "",
79 | "dark": "",
80 | "highcontrast": ""
81 | },
82 | "app": {
83 | "missingbg": "背景が見付かりません \"{0}\", デフォルトの背景を表示します。",
84 | "missinglayers": "以下のレイヤが見付かりません: {0}。",
85 | "missingpermalink": "指定された永続リンクは無効または期限切れです。",
86 | "missingprojection": "テーマをロード出来ません \"{0}\": 投影法 {1} は定義されていません。",
87 | "missingtheme": "テーマが見付かりません \"{0}\"、デフォルトのテーマをロードします。"
88 | },
89 | "attribtable": {
90 | "addfeature": "地物を追加",
91 | "commit": "変更された行をコミット",
92 | "csvexport": "CSV エクスポート",
93 | "delete": "削除",
94 | "deletefailed": "一つ以上の地物を削除できませんでした",
95 | "deletefeatures": "選択された地物を削除",
96 | "deleting": "地物を削除中...",
97 | "discard": "変更された行を元に戻す",
98 | "formeditmode": "選択された地物を編集フォームで開く",
99 | "geomnoadd": "編集フォームを使ってこのレイヤに新しい地物を追加して下さい",
100 | "limittoextent": "地図の範囲に限定",
101 | "loadfailed": "地物のデータをロード出来ませんでした",
102 | "loading": "ロード中...",
103 | "nodelete": "削除しない",
104 | "nogeomnoform": "ジオメトリの無いレイヤに対して編集フォームは使用できません",
105 | "pleasereload": "「再ロード」を押して属性テーブルをロードして下さい...",
106 | "reload": "再ロード",
107 | "selectlayer": "レイヤを選択...",
108 | "title": "属性テーブル",
109 | "zoomtoselection": "選択された地物にズーム"
110 | },
111 | "bgswitcher": {
112 | "nobg": "背景無し"
113 | },
114 | "bookmark": {
115 | "add": "新しいブックマークを作成",
116 | "addfailed": "ブックマークを作成出来ませんでした",
117 | "description": "説明を入力...",
118 | "lastUpdate": "最後の保存",
119 | "manage": "ブックマークを管理",
120 | "nobookmarks": "ブックマーク無し",
121 | "notloggedin": "ブックマークを保存するためにはログインする必要があります",
122 | "open": "ブックマークを現在のタブで開く",
123 | "openTab": "ブックマークをタブで開く",
124 | "remove": "ブックマークを削除",
125 | "removefailed": "ブックマークを削除出来ませんでした",
126 | "savefailed": "ブックマークを更新出来ませんでした",
127 | "update": "ブックマークを更新",
128 | "zoomToExtent": "領域にズーム"
129 | },
130 | "bottombar": {
131 | "mousepos_label": "座標",
132 | "scale_label": "縮尺",
133 | "terms_label": "使用許諾条件",
134 | "viewertitle_label": "QWC2 デモ"
135 | },
136 | "compare3d": {
137 | "clipplane": "クリッピング平面",
138 | "compare_objects": "オブジェクトを比較",
139 | "toggleall": "全てトグル"
140 | },
141 | "cookiepopup": {
142 | "accept": "許容する",
143 | "message": "当ウェブサイトはクッキーを使用します。"
144 | },
145 | "copybtn": {
146 | "click_to_copy": "クリップボードにコピー",
147 | "copied": "コピーしました",
148 | "copyfailed": "コピー出来ませんでした"
149 | },
150 | "cyclomedia": {
151 | "clickonmap": "地図上のレコーディングをクリック",
152 | "initializing": "Cyclomedia を初期設定中...",
153 | "loaderror": "Cyclomedia を初期設定出来ませんでした",
154 | "loading": "ビューをロード中...",
155 | "login": "ログイン",
156 | "scalehint": "レコーディングは、縮尺 1:{0} 未満の地図でしか見ることが出来ません。",
157 | "title": "Cyclomedia ビューワ"
158 | },
159 | "draw3d": {
160 | "cone": "円錐",
161 | "cuboid": "直方体",
162 | "cylinder": "円柱",
163 | "delete": "削除",
164 | "drawings": "作図",
165 | "intersect": "交差",
166 | "newgroupprompt": "新しい作図グループ",
167 | "numericinput": "数値入力",
168 | "pick": "選択",
169 | "position": "位置",
170 | "pyramid": "四角錐",
171 | "rotate": "回転",
172 | "rotation": "回転角",
173 | "scale": "スケール",
174 | "sphere": "球体",
175 | "subtract": "差分",
176 | "thescale": "スケール",
177 | "translate": "移動",
178 | "undoBool": "ブーリアン操作を取り消し",
179 | "union": "合成(和)",
180 | "wedge": "くさび形"
181 | },
182 | "editing": {
183 | "add": "追加",
184 | "attrtable": "テーブル",
185 | "canceldelete": "削除しない",
186 | "clearpicture": "クリア",
187 | "commit": "コミット",
188 | "commitfailed": "コミット出来ませんでした",
189 | "contraintviolation": "制約違反",
190 | "create": "作成",
191 | "delete": "削除",
192 | "discard": "中止",
193 | "draw": "作図",
194 | "feature": "地物",
195 | "geomreadonly": "ジオメトリが 0 でない Z 値を含んでいるため、リード・オンリーです。",
196 | "invalidform": "無効なフォーム",
197 | "maximize": "最大化",
198 | "minimize": "最小化",
199 | "noeditablelayers": "編集可能なレイヤが有りません。",
200 | "paint": "修正",
201 | "pick": "選択",
202 | "pickdrawfeature": "既存のジオメトリをクローンして作図",
203 | "reallydelete": "削除",
204 | "relationcommitfailed": "関連する値にコミット出来ないものがありました。詳細はアイコンのツールチップを参照して下さい。",
205 | "select": "選択",
206 | "takepicture": "撮影する",
207 | "unsavedchanged": "保存されていない変更があります。それでもこのページを離れますか?"
208 | },
209 | "featureform": {
210 | "feature": "地物",
211 | "noresults": "検索結果無し",
212 | "querying": "検索中...",
213 | "title": "地物フォーム"
214 | },
215 | "featuresearch": {
216 | "noresults": "検索結果無し",
217 | "query": "検索",
218 | "select": "選択...",
219 | "title": "地物検索"
220 | },
221 | "fileselector": {
222 | "files": "ファイル",
223 | "placeholder": "ファイルを選択..."
224 | },
225 | "geomdigitizer": {
226 | "applink": "アプリケーション",
227 | "bufferlayername": "デジタイズ・バッファ",
228 | "chooselink": "選択...",
229 | "clear": "レイヤをクリア",
230 | "identifypick": "地物をピック",
231 | "identifypickregion": "領域内の地物をピック",
232 | "layername": "デジタイズ",
233 | "line_buffer": "線を描く (バッファに)",
234 | "point_buffer": "点を描く (バッファに)",
235 | "selfinter": "一つ以上のポリゴンが自己交差を持っています",
236 | "send": "スキャン",
237 | "wait": "ロード中..."
238 | },
239 | "heightprofile": {
240 | "asl": "a.s.l.",
241 | "distance": "距離",
242 | "drawnodes": "ノードを作図",
243 | "error": "標高プロファイルを計算できませんでした",
244 | "export": "プロファイルをエクスポート",
245 | "height": "標高",
246 | "loading": "標高プロファイルを計算中...",
247 | "loadingimage": "地図画像をロード中...",
248 | "print": "標高プロファイルを印刷",
249 | "title": "標高プロファイル"
250 | },
251 | "hideobjects3d": {
252 | "clickonmap": "非表示にするオブジェクトをクリック...",
253 | "object": "オブジェクト",
254 | "restore": "オブジェクトを元に戻す",
255 | "restoreall": "すべて元に戻す"
256 | },
257 | "identify": {
258 | "aggregatedreport": "集合レポート",
259 | "clipboard": "クリップボードにコピー",
260 | "download": "ダウンロード",
261 | "export": "エクスポート",
262 | "featureReport": "地物レポート",
263 | "featurecount": "地物数",
264 | "layerall": "全てのレイヤ",
265 | "link": "リンク",
266 | "noattributes": "属性無し",
267 | "noresults": "選択された点には情報がありません",
268 | "querying": "検索中...",
269 | "reportfail": "レポートを生成することが出来ませんでした",
270 | "selectlayer": "レイヤを選択...",
271 | "title": "地物情報"
272 | },
273 | "imageeditor": {
274 | "confirmclose": "保存せずに閉じますか?",
275 | "title": "イメージ・エディタ"
276 | },
277 | "importlayer": {
278 | "addfailed": "レイヤを追加できませんでした。",
279 | "addlayer": "レイヤを追加",
280 | "asgroup": "グループとして追加",
281 | "connect": "接続",
282 | "filter": "フィルタ...",
283 | "loading": "ロード中...",
284 | "localfile": "ローカル・ファイル",
285 | "nofeatures": "地物をインポート出来ませんでした。",
286 | "noresults": "検索結果無し、または無効な URL",
287 | "notgeopdf": "選択されたファイルは GeoPDF ではないようです。",
288 | "shpreprojectionerror": "シェープファイルのジオメトリを投影できませんでした。間違った場所に置かれたかも知れません。",
289 | "supportedformats": "サポートされている形式: KML, GeoJSON, GeoPDF, SHP (zip形式)",
290 | "unknownproj": "選択された GeoPDF は未知の投影法を使っています: {0}。",
291 | "url": "URL",
292 | "urlplaceholder": "WMS, WMTS, WFS の URL を入力..."
293 | },
294 | "infotool": {
295 | "clickhelpPoint": "確認したい地点をクリック...",
296 | "clickhelpPolygon": "確認したい領域をポリゴンで囲む...",
297 | "clickhelpRadius": "中心をクリックして半径を指定し、円内を確認...",
298 | "radius": "半径"
299 | },
300 | "layercatalog": {
301 | "windowtitle": "レイヤ・カタログ"
302 | },
303 | "layerinfo": {
304 | "abstract": "概要",
305 | "attribution": "帰属",
306 | "dataUrl": "データ URL",
307 | "keywords": "キーワード",
308 | "legend": "凡例",
309 | "maxscale": "最大描画縮尺",
310 | "metadataUrl": "メタデータ URL",
311 | "minscale": "最小描画縮尺",
312 | "title": "レイヤ情報"
313 | },
314 | "layertree": {
315 | "compare": "トップ・レイヤを比較",
316 | "deletealllayers": "全てのレイヤを削除",
317 | "importlayer": "レイヤをインポート",
318 | "maptip": "レイヤのマップ・チップを表示",
319 | "printlegend": "凡例を印刷",
320 | "separator": "区切り",
321 | "separatortooltip": "区切りを追加",
322 | "transparency": "透明度",
323 | "visiblefilter": "不可視のレイヤをフィルタ",
324 | "zoomtolayer": "レイヤにズーム"
325 | },
326 | "layertree3d": {
327 | "import": "インポート",
328 | "importobjects": "オブジェクトをインポート",
329 | "layers": "レイヤ",
330 | "objects": "オブジェクト",
331 | "supportedformats": "サポートされている形式",
332 | "zoomtoobject": "オブジェクトにズーム"
333 | },
334 | "linkfeatureform": {
335 | "cancel": "キャンセル",
336 | "close": "閉じる",
337 | "drawhint": "地図上の地物を作図...",
338 | "pickhint": "地図上の地物を選択..."
339 | },
340 | "locate": {
341 | "feetUnit": "フィート",
342 | "metersUnit": "メートル",
343 | "popup": "あなたはこの点から {distance} {unit} 内にいます",
344 | "statustooltip": {
345 | "DISABLED": "位置情報: 無効",
346 | "ENABLED": "位置情報: 有効",
347 | "FOLLOWING": "位置情報: 追跡中",
348 | "LOCATING": "位置情報: 取得中...",
349 | "PERMISSION_DENIED": "位置情報: 許可無し"
350 | }
351 | },
352 | "map": {
353 | "loading": "ロード中...",
354 | "resetrotation": "回転をリセット"
355 | },
356 | "map3d": {
357 | "syncview": "ビューを同期",
358 | "terrain": "地形",
359 | "title": "3D ビュー"
360 | },
361 | "mapexport": {
362 | "configuration": "構成",
363 | "format": "形式",
364 | "resolution": "解像度",
365 | "scale": "縮尺",
366 | "size": "サイズ",
367 | "submit": "エクスポート",
368 | "usersize": "マップ上で選択...",
369 | "wait": "しばらくお待ちください..."
370 | },
371 | "mapfilter": {
372 | "addcustomfilter": "カスタム・フィルタを追加",
373 | "brokenrendering": "無効なフィルタ式によって地図の表示が崩れることがあります",
374 | "cancel": "キャンセル",
375 | "geomfilter": "ジオメトリ",
376 | "hidefiltergeom": "フィルタ・ジオメトリを隠す",
377 | "invalidfilter": "無効なフィルタ式",
378 | "save": "保存",
379 | "select": "選択...",
380 | "selectlayer": "レイヤを選択",
381 | "timefilter": "Time",
382 | "timefrom": "From",
383 | "timeto": "To"
384 | },
385 | "mapinfotooltip": {
386 | "elevation": "標高",
387 | "title": "位置"
388 | },
389 | "maplegend": {
390 | "bboxdependent": "領域依存の凡例",
391 | "onlyvisible": "可視レイヤのみ",
392 | "scaledependent": "縮尺依存の凡例",
393 | "windowtitle": "凡例"
394 | },
395 | "maplight3d": {
396 | "ambientLightIntensity": "環境光強度",
397 | "animationstep": "アニメーション・ステップ",
398 | "date": "日付",
399 | "dayspersec": "日数 / 秒",
400 | "directionalLightIntensity": "平行光源強度",
401 | "helpersVisible": "補助オブジェクト表示",
402 | "minspersec": "分 / 秒",
403 | "normalBias": "ノーマル・バイアス",
404 | "shadowBias": "シャドウ・バイアス",
405 | "shadowMapSize": "シャドウ・マップ・サイズ",
406 | "shadowType": "シャドウ・タイプ",
407 | "shadowVolumeFar": "シャドウ・ボリューム遠端",
408 | "shadowVolumeNear": "シャドウ・ボリューム近端",
409 | "shadowintensity": "影の強度",
410 | "shadows": "シャドウを有効化",
411 | "showadvanced": "詳細設定を表示",
412 | "time": "時刻",
413 | "zFactor": "Zファクター"
414 | },
415 | "measureComponent": {
416 | "absolute": "m (海抜)",
417 | "areaLabel": "領域",
418 | "bearingLabel": "方角",
419 | "ground": "m (地上高)",
420 | "imperial": "ヤード・ポンド法",
421 | "lengthLabel": "長さ",
422 | "metric": "メートル法",
423 | "pointLabel": "位置"
424 | },
425 | "misc": {
426 | "ctrlclickhint": "Ctrl+クリックで開く"
427 | },
428 | "navbar": {
429 | "perpage": "/ page"
430 | },
431 | "newspopup": {
432 | "dialogclose": "閉じる",
433 | "dontshowagain": "再び表示しない",
434 | "title": "ニュース"
435 | },
436 | "numericinput": {
437 | "angle": "角度",
438 | "featureunsupported": "このジオメトリに対しては数値入力は使用できません",
439 | "height": "高さ",
440 | "nofeature": "アクティブな地物がありません",
441 | "side": "サイド",
442 | "width": "幅",
443 | "windowtitle": "数値入力"
444 | },
445 | "panoramax": {
446 | "notfound": "この場所には表示できる画像がありません。",
447 | "title": "Panoramax Viewer"
448 | },
449 | "pickfeature": {
450 | "querying": "検索中..."
451 | },
452 | "portal": {
453 | "filter": "テーマをフィルタ...",
454 | "menulabel": "メニュー"
455 | },
456 | "print": {
457 | "atlasfeature": "地図帳機能",
458 | "download": "ダウンロード",
459 | "download_as_onepdf": "1個の PDF 文書として",
460 | "download_as_onezip": "1個の ZIP ファイルとして",
461 | "download_as_single": "as single files",
462 | "format": "形式",
463 | "grid": "グリッド",
464 | "layout": "レイアウト",
465 | "legend": "凡例",
466 | "maximize": "最大化",
467 | "minimize": "最小化",
468 | "nolayouts": "選択されたテーマは印刷をサポートしていません",
469 | "notheme": "テーマが選択されていません",
470 | "output": "出力を印刷",
471 | "overlap": "オーバーラップ",
472 | "pickatlasfeature": "レイヤ {0} で選択...",
473 | "resolution": "解像度",
474 | "rotation": "回転",
475 | "save": "保存",
476 | "scale": "縮尺",
477 | "series": "シリーズを印刷",
478 | "submit": "印刷",
479 | "wait": "しばらくお待ち下さい..."
480 | },
481 | "qtdesignerform": {
482 | "loading": "フォームをロード中..."
483 | },
484 | "redlining": {
485 | "border": "境界線",
486 | "buffer": "バッファ",
487 | "buffercompute": "計算",
488 | "bufferdistance": "距離",
489 | "bufferlayer": "出力先",
490 | "bufferlayername": "バッファ",
491 | "bufferselectfeature": "バッファを適用する地物を選択...",
492 | "circle": "円",
493 | "delete": "削除",
494 | "draw": "作図",
495 | "edit": "編集",
496 | "ellipse": "楕円",
497 | "export": "エクスポート",
498 | "freehand": "フリーハンド描画",
499 | "label": "ラベル",
500 | "layer": "レイヤ",
501 | "layertitle": "スケッチ",
502 | "line": "線",
503 | "markers": "マーカー",
504 | "measurements": "計測結果を表示",
505 | "numericinput": "数値入力",
506 | "pick": "ピック",
507 | "point": "点",
508 | "polygon": "ポリゴン",
509 | "rectangle": "四角形",
510 | "size": "サイズ",
511 | "square": "四角形",
512 | "text": "テキスト",
513 | "transform": "変形",
514 | "width": "幅"
515 | },
516 | "reports": {
517 | "all": "全て",
518 | "download": "ダウンロード",
519 | "pick": "ピック",
520 | "region": "領域を選択",
521 | "selectlayer": "レポート・レイヤを選択..."
522 | },
523 | "routing": {
524 | "add": "点を追加",
525 | "addviapoint": "ここを経由",
526 | "arriveat": "目的地点",
527 | "clear": "クリア",
528 | "computefailed": "計算できませんでした",
529 | "computing": "計算中...",
530 | "excludepolygons": "領域を除外",
531 | "export": "エクスポート",
532 | "fastest": "最速",
533 | "fromhere": "出発地点",
534 | "importerror": "インポート出来ませんでした。ファイルの中身は点地物の GeoJSON FeatureCollection でなければなりません。",
535 | "importhint": "点地物の GeoJSON FeatureCollection を持つファイル",
536 | "importpoints": "インポート",
537 | "iso_intervals": "間隔",
538 | "iso_mode": "モード",
539 | "iso_mode_distance": "距離",
540 | "iso_mode_time": "時間",
541 | "isocenter": "中心",
542 | "isoextracenter": "追加の中心",
543 | "leaveat": "出発時刻",
544 | "leavenow": "今出発する",
545 | "maxspeed": "最大速度",
546 | "method": "方法",
547 | "mode_auto": "車",
548 | "mode_bicycle": "自転車",
549 | "mode_heavyvehicle": "大型車両",
550 | "mode_transit": "乗り換え",
551 | "mode_walking": "徒歩",
552 | "optimized_route": "最適化されたルート",
553 | "reachability": "到達可能性",
554 | "roundtrip": "往復",
555 | "route": "ルート",
556 | "shortest": "最短",
557 | "tohere": "ここへ行く",
558 | "useferries": "フェリーを使う",
559 | "usehighways": "高速道路を使う",
560 | "usetollways": "有料道路を使う",
561 | "windowtitle": "ルート探索"
562 | },
563 | "scratchdrawing": {
564 | "finish": "完了"
565 | },
566 | "serviceinfo": {
567 | "abstract": "概要",
568 | "contactEmail": "メール",
569 | "contactOrganization": "組織",
570 | "contactPerson": "担当者",
571 | "contactPhone": "電話",
572 | "contactPosition": "肩書き",
573 | "keywords": "キーワード",
574 | "onlineResource": "オンライン・リソース",
575 | "title": "テーマの情報"
576 | },
577 | "settings": {
578 | "bookmarks": "ブックマーク",
579 | "colorscheme": "カラー・スキーム",
580 | "confirmlang": "言語を変更するためにアプリケーションを再ロードします。よろしいか?",
581 | "default": "デフォルト",
582 | "defaulttheme": "デフォルト・テーマ",
583 | "defaultthemefailed": "デフォルト・テーマを設定出来ませんでした: {0}",
584 | "language": "言語",
585 | "systemlang": "システム言語",
586 | "themes": "テーマ"
587 | },
588 | "share": {
589 | "QRCodeLinkTitle": "QR コード",
590 | "directLinkTitle": "直接リンクで",
591 | "expires": "この永続リンクは {0} まで有効です。",
592 | "norestriction": "限定無し",
593 | "refresh": "永続リンクを生成",
594 | "restricttogroup": "グループに限定",
595 | "shareTitle": "QWC2",
596 | "showpin": "ピンを表示",
597 | "socialIntro": "あなたの好みの SNS で"
598 | },
599 | "snapping": {
600 | "edge": "周縁にスナップ",
601 | "loading": "スナップしたジオメトリをロード中...",
602 | "snappingenabled": "スナップ有効",
603 | "vertex": "頂点にスナップ"
604 | },
605 | "themelayerslist": {
606 | "addlayer": "レイヤを追加",
607 | "addlayerstotheme": "現在の地図にレイヤを追加",
608 | "addselectedlayers": "選択されたレイヤを追加",
609 | "existinglayers": "以下のレイヤは既に地図の中に存在します"
610 | },
611 | "themeswitcher": {
612 | "addlayerstotheme": "現在の地図にレイヤを追加",
613 | "addtotheme": "現在のテーマに追加",
614 | "changedefaulttheme": "このテーマをデフォルト・テーマとして選択する",
615 | "confirmswitch": "テーマに無いレイヤはテーマを切替えると失われます。よろしいか?",
616 | "filter": "フィルタ...",
617 | "match": {
618 | "abstract": "概要",
619 | "keywords": "キーワード",
620 | "title": "タイトル"
621 | },
622 | "openintab": "タブで開く",
623 | "restrictedthemeinfo": "テーマを閲覧する権限がありません。ログインして下さい。"
624 | },
625 | "timemanager": {
626 | "animationinterval": "アニメーション間隔",
627 | "classify": "定義属性",
628 | "classifynone": "無し",
629 | "displayfeatures": "タイムラインと地物",
630 | "displaylayers": "タイムラインとレイヤ",
631 | "displayminimal": "タイムラインのみ",
632 | "edit": "編集",
633 | "endtime": "終了",
634 | "filterwarning": "マップ・フィルタがアクティブです",
635 | "future": "地物",
636 | "group": "グループ化属性",
637 | "groupnone": "無し",
638 | "home": "タイムラインをリセット",
639 | "loading": "ロード中...",
640 | "loop": "ループ",
641 | "markers": "マーカー",
642 | "notemporaldata": "マップの中に時間軸を持つ可視レイヤがありません。",
643 | "now": "現在",
644 | "past": "過去",
645 | "play": "再生",
646 | "playrev": "逆再生",
647 | "rewind": "巻き戻し",
648 | "starttime": "開始",
649 | "stepback": "後へステップ",
650 | "stepfwd": "前へステップ",
651 | "stepsize": "ステップ・サイズ",
652 | "stop": "停止",
653 | "timeline": "タイムライン",
654 | "timeline_fixed": "固定",
655 | "timeline_infinite": "無限",
656 | "timelinedisplay": "表示",
657 | "timelinescale": "タイムスケール (非直線性)",
658 | "title": "タイム・マネージャ",
659 | "toggle": "時間ナビゲーション",
660 | "unit": {
661 | "century": "世紀",
662 | "days": "日",
663 | "decade": "10年",
664 | "hours": "時間",
665 | "milliseconds": "ミリ秒",
666 | "minutes": "分",
667 | "months": "月",
668 | "seconds": "秒",
669 | "years": "年"
670 | },
671 | "zoomin": "ズーム・イン",
672 | "zoomout": "ズーム・アウト"
673 | },
674 | "tooltip": {
675 | "background": "背景を切り替える",
676 | "fullscreendisable": "全画面モードを終了",
677 | "fullscreenenable": "全画面モードにする",
678 | "home": "地図の初期領域を表示",
679 | "zoomin": "ズーム・イン",
680 | "zoomout": "ズーム・アウト"
681 | },
682 | "valuetool": {
683 | "all": "",
684 | "allbands": "",
685 | "alllayers": "",
686 | "bands": "",
687 | "graph": "",
688 | "layer": "",
689 | "nodata": "",
690 | "options": "",
691 | "selectedbands": "",
692 | "selectedlayers": "",
693 | "selectlayersbands": "",
694 | "showbands": "",
695 | "showlayers": "",
696 | "table": "",
697 | "title": "",
698 | "visiblelayers": ""
699 | },
700 | "vectorlayerpicker": {
701 | "none": "無し",
702 | "prompt": "レイヤ名を入力"
703 | },
704 | "window": {
705 | "close": "閉じる",
706 | "detach": "切り離す",
707 | "dock": "ドック",
708 | "embed": "埋め込み",
709 | "maximize": "最大化",
710 | "minimize": "最小化",
711 | "undock": "アンドック",
712 | "unmaximize": "元のサイズに戻す",
713 | "unminimize": "元のサイズに戻す"
714 | }
715 | }
716 | }
717 |
--------------------------------------------------------------------------------
/static/translations/pl-PL.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "pl-PL",
3 | "messages": {
4 | "appmenu": {
5 | "items": {
6 | "ExternalLink": "",
7 | "Bookmark": "",
8 | "Compare3D": "",
9 | "Editing": "Edycja",
10 | "ExportObjects3D": "",
11 | "Help": "Pomoc",
12 | "HideObjects3D": "",
13 | "LayerTree": "Warstwy i ich legendy",
14 | "LayerTree3D": "",
15 | "MapExport": "Eksportuj mapę",
16 | "MapExport3D": "",
17 | "MapFilter": "",
18 | "MapLight3D": "",
19 | "Print": "Drukuj",
20 | "Reports": "",
21 | "Settings": "",
22 | "Share": "Udostępnij Link",
23 | "ThemeSwitcher": "Motyw",
24 | "AttributeTable": "",
25 | "AuthenticationLogin": "Zaloguj",
26 | "AuthenticationLogout": "Wyloguj",
27 | "Cyclomedia": "",
28 | "Draw3D": "",
29 | "FeatureForm": "",
30 | "FeatureSearch": "",
31 | "GeometryDigitizer": "",
32 | "IdentifyPoint": "",
33 | "IdentifyRegion": "Identifikuj Obszar",
34 | "LayerCatalog": "",
35 | "Login": "Zaloguj",
36 | "Logout": "Wyloguj",
37 | "MapLegend": "",
38 | "Measure": "Pomiary",
39 | "Measure3D": "",
40 | "MeasureLineString": "Zmierzyć linię",
41 | "MeasurePolygon": "Zmierzyć wielokąt",
42 | "NewsPopup": "",
43 | "Panoramax": "",
44 | "Portal": "",
45 | "PrintScreen3D": "",
46 | "Redlining": "Redlining",
47 | "Routing": "",
48 | "Tools": "Narzędzia Mapy",
49 | "TimeManager": "",
50 | "View3D": ""
51 | },
52 | "filter": "",
53 | "menulabel": "Zawartość mapy i narzędzia"
54 | },
55 | "search": {
56 | "coordinates": "",
57 | "all": "Wszystko",
58 | "circleradius": "",
59 | "clearfilter": "",
60 | "existinglayer": "",
61 | "filter": "",
62 | "layers": "",
63 | "limittoarea": "",
64 | "more": "",
65 | "nodescription": "",
66 | "none": "",
67 | "noresults": "",
68 | "placeholder": "",
69 | "places": "",
70 | "providerselection": "",
71 | "recent": "",
72 | "search": "Szukaj",
73 | "themelayers": "",
74 | "themes": "Motywy",
75 | "unknownmore": ""
76 | },
77 | "colorschemes": {
78 | "default": "",
79 | "dark": "",
80 | "highcontrast": ""
81 | },
82 | "app": {
83 | "missingbg": "",
84 | "missinglayers": "",
85 | "missingpermalink": "",
86 | "missingprojection": "",
87 | "missingtheme": ""
88 | },
89 | "attribtable": {
90 | "addfeature": "",
91 | "commit": "",
92 | "csvexport": "",
93 | "delete": "",
94 | "deletefailed": "",
95 | "deletefeatures": "",
96 | "deleting": "",
97 | "discard": "",
98 | "formeditmode": "",
99 | "geomnoadd": "",
100 | "limittoextent": "",
101 | "loadfailed": "",
102 | "loading": "",
103 | "nodelete": "",
104 | "nogeomnoform": "",
105 | "pleasereload": "",
106 | "reload": "",
107 | "selectlayer": "",
108 | "title": "",
109 | "zoomtoselection": ""
110 | },
111 | "bgswitcher": {
112 | "nobg": "Bez tła"
113 | },
114 | "bookmark": {
115 | "add": "",
116 | "addfailed": "",
117 | "description": "",
118 | "lastUpdate": "",
119 | "manage": "",
120 | "nobookmarks": "",
121 | "notloggedin": "",
122 | "open": "",
123 | "openTab": "",
124 | "remove": "",
125 | "removefailed": "",
126 | "savefailed": "",
127 | "update": "",
128 | "zoomToExtent": ""
129 | },
130 | "bottombar": {
131 | "mousepos_label": "Współrzędne",
132 | "scale_label": "Skala",
133 | "terms_label": "Warunki korzystania",
134 | "viewertitle_label": ""
135 | },
136 | "compare3d": {
137 | "clipplane": "",
138 | "compare_objects": "",
139 | "toggleall": ""
140 | },
141 | "cookiepopup": {
142 | "accept": "",
143 | "message": ""
144 | },
145 | "copybtn": {
146 | "click_to_copy": "Kliknij, aby skopiować",
147 | "copied": "Skopiowano",
148 | "copyfailed": ""
149 | },
150 | "cyclomedia": {
151 | "clickonmap": "",
152 | "initializing": "",
153 | "loaderror": "",
154 | "loading": "",
155 | "login": "",
156 | "scalehint": "",
157 | "title": ""
158 | },
159 | "draw3d": {
160 | "cone": "",
161 | "cuboid": "",
162 | "cylinder": "",
163 | "delete": "",
164 | "drawings": "",
165 | "intersect": "",
166 | "newgroupprompt": "",
167 | "numericinput": "",
168 | "pick": "",
169 | "position": "",
170 | "pyramid": "",
171 | "rotate": "",
172 | "rotation": "",
173 | "scale": "",
174 | "sphere": "",
175 | "subtract": "",
176 | "thescale": "",
177 | "translate": "",
178 | "undoBool": "",
179 | "union": "",
180 | "wedge": ""
181 | },
182 | "editing": {
183 | "add": "",
184 | "attrtable": "",
185 | "canceldelete": "Nie usuwaj",
186 | "clearpicture": "",
187 | "commit": "Zatwierdź",
188 | "commitfailed": "",
189 | "contraintviolation": "",
190 | "create": "",
191 | "delete": "Usuń",
192 | "discard": "Odrzuć",
193 | "draw": "Rysuj",
194 | "feature": "",
195 | "geomreadonly": "",
196 | "invalidform": "",
197 | "maximize": "Maksymalizuj",
198 | "minimize": "Minimalizuj",
199 | "noeditablelayers": "Brak edytowalnych warstw.",
200 | "paint": "",
201 | "pick": "Wybierz",
202 | "pickdrawfeature": "",
203 | "reallydelete": "Usuń",
204 | "relationcommitfailed": "",
205 | "select": "Zaznacz",
206 | "takepicture": "",
207 | "unsavedchanged": ""
208 | },
209 | "featureform": {
210 | "feature": "",
211 | "noresults": "",
212 | "querying": "",
213 | "title": ""
214 | },
215 | "featuresearch": {
216 | "noresults": "",
217 | "query": "",
218 | "select": "",
219 | "title": ""
220 | },
221 | "fileselector": {
222 | "files": "",
223 | "placeholder": "Wybierz plik..."
224 | },
225 | "geomdigitizer": {
226 | "applink": "",
227 | "bufferlayername": "",
228 | "chooselink": "",
229 | "clear": "",
230 | "identifypick": "",
231 | "identifypickregion": "",
232 | "layername": "",
233 | "line_buffer": "",
234 | "point_buffer": "",
235 | "selfinter": "",
236 | "send": "",
237 | "wait": ""
238 | },
239 | "heightprofile": {
240 | "asl": "a.s.l.",
241 | "distance": "Odległość",
242 | "drawnodes": "",
243 | "error": "",
244 | "export": "",
245 | "height": "Wysokość",
246 | "loading": "Obliczanie profilu wysokości...",
247 | "loadingimage": "",
248 | "print": "",
249 | "title": ""
250 | },
251 | "hideobjects3d": {
252 | "clickonmap": "",
253 | "object": "",
254 | "restore": "",
255 | "restoreall": ""
256 | },
257 | "identify": {
258 | "aggregatedreport": "",
259 | "clipboard": "",
260 | "download": "",
261 | "export": "Eksport",
262 | "featureReport": "Feature report",
263 | "featurecount": "",
264 | "layerall": "",
265 | "link": "Link",
266 | "noattributes": "Brak atrybutów",
267 | "noresults": "Brak dostępnych danych dla wybranego punktu",
268 | "querying": "Przetwarzam zapytanie...",
269 | "reportfail": "",
270 | "selectlayer": "",
271 | "title": "Feature Info"
272 | },
273 | "imageeditor": {
274 | "confirmclose": "",
275 | "title": ""
276 | },
277 | "importlayer": {
278 | "addfailed": "",
279 | "addlayer": "Dodaj warstwę",
280 | "asgroup": "",
281 | "connect": "Połącz",
282 | "filter": "Filtruj...",
283 | "loading": "",
284 | "localfile": "Plik lokalny",
285 | "nofeatures": "Elementy nie mogły zostać zaimportowane",
286 | "noresults": "Brak wyników lub błędny adres URL",
287 | "notgeopdf": "",
288 | "shpreprojectionerror": "",
289 | "supportedformats": "",
290 | "unknownproj": "",
291 | "url": "URL",
292 | "urlplaceholder": "Podaj URL do WMS, WFS, WMTS..."
293 | },
294 | "infotool": {
295 | "clickhelpPoint": "",
296 | "clickhelpPolygon": "Narysuj poligon wokół obiektów, aby zidentyfikować...",
297 | "clickhelpRadius": "",
298 | "radius": ""
299 | },
300 | "layercatalog": {
301 | "windowtitle": ""
302 | },
303 | "layerinfo": {
304 | "abstract": "Abstrakt",
305 | "attribution": "Właściwości",
306 | "dataUrl": "URL danych",
307 | "keywords": "Słowa kluczowe",
308 | "legend": "Legenda",
309 | "maxscale": "",
310 | "metadataUrl": "URL metadanych",
311 | "minscale": "",
312 | "title": "Informacja o warstwie"
313 | },
314 | "layertree": {
315 | "compare": "Porównaj najwyższą warstwę",
316 | "deletealllayers": "Usuń wszystkie warstwy",
317 | "importlayer": "Importuj warstwę",
318 | "maptip": "Pokaż wskazówki dla warstwy",
319 | "printlegend": "Drukuj legendę",
320 | "separator": "",
321 | "separatortooltip": "",
322 | "transparency": "",
323 | "visiblefilter": "",
324 | "zoomtolayer": ""
325 | },
326 | "layertree3d": {
327 | "import": "",
328 | "importobjects": "",
329 | "layers": "",
330 | "objects": "",
331 | "supportedformats": "",
332 | "zoomtoobject": ""
333 | },
334 | "linkfeatureform": {
335 | "cancel": "",
336 | "close": "",
337 | "drawhint": "",
338 | "pickhint": ""
339 | },
340 | "locate": {
341 | "feetUnit": "stopy",
342 | "metersUnit": "metry",
343 | "popup": "Jesteś w odległości {distance} {unit} od tego punktu",
344 | "statustooltip": {
345 | "DISABLED": "Pozycja: wyłączona",
346 | "ENABLED": "Pozycja: włączona",
347 | "FOLLOWING": "Pozycja: following",
348 | "LOCATING": "Pozycja: lokalizowanie...",
349 | "PERMISSION_DENIED": "Pozycja: dostęp zabroniony"
350 | }
351 | },
352 | "map": {
353 | "loading": "Ładowanie...",
354 | "resetrotation": ""
355 | },
356 | "map3d": {
357 | "syncview": "",
358 | "terrain": "",
359 | "title": ""
360 | },
361 | "mapexport": {
362 | "configuration": "",
363 | "format": "Format:",
364 | "resolution": "Rozdzielczość:",
365 | "scale": "",
366 | "size": "",
367 | "submit": "",
368 | "usersize": "",
369 | "wait": ""
370 | },
371 | "mapfilter": {
372 | "addcustomfilter": "",
373 | "brokenrendering": "",
374 | "cancel": "",
375 | "geomfilter": "",
376 | "hidefiltergeom": "",
377 | "invalidfilter": "",
378 | "save": "",
379 | "select": "",
380 | "selectlayer": "",
381 | "timefilter": "",
382 | "timefrom": "",
383 | "timeto": ""
384 | },
385 | "mapinfotooltip": {
386 | "elevation": "Wysokość",
387 | "title": "Pozycja"
388 | },
389 | "maplegend": {
390 | "bboxdependent": "",
391 | "onlyvisible": "",
392 | "scaledependent": "",
393 | "windowtitle": ""
394 | },
395 | "maplight3d": {
396 | "ambientLightIntensity": "",
397 | "animationstep": "",
398 | "date": "",
399 | "dayspersec": "",
400 | "directionalLightIntensity": "",
401 | "helpersVisible": "",
402 | "minspersec": "",
403 | "normalBias": "",
404 | "shadowBias": "",
405 | "shadowMapSize": "",
406 | "shadowType": "",
407 | "shadowVolumeFar": "",
408 | "shadowVolumeNear": "",
409 | "shadowintensity": "",
410 | "shadows": "",
411 | "showadvanced": "",
412 | "time": "",
413 | "zFactor": ""
414 | },
415 | "measureComponent": {
416 | "absolute": "",
417 | "areaLabel": "Obszar",
418 | "bearingLabel": "Bearing",
419 | "ground": "",
420 | "imperial": "",
421 | "lengthLabel": "Odległość",
422 | "metric": "",
423 | "pointLabel": "Pozycja"
424 | },
425 | "misc": {
426 | "ctrlclickhint": ""
427 | },
428 | "navbar": {
429 | "perpage": ""
430 | },
431 | "newspopup": {
432 | "dialogclose": "",
433 | "dontshowagain": "",
434 | "title": ""
435 | },
436 | "numericinput": {
437 | "angle": "",
438 | "featureunsupported": "",
439 | "height": "",
440 | "nofeature": "",
441 | "side": "",
442 | "width": "",
443 | "windowtitle": ""
444 | },
445 | "panoramax": {
446 | "notfound": "",
447 | "title": ""
448 | },
449 | "pickfeature": {
450 | "querying": ""
451 | },
452 | "portal": {
453 | "filter": "",
454 | "menulabel": ""
455 | },
456 | "print": {
457 | "atlasfeature": "",
458 | "download": "",
459 | "download_as_onepdf": "",
460 | "download_as_onezip": "",
461 | "download_as_single": "",
462 | "format": "Format",
463 | "grid": "Siatka",
464 | "layout": "Layout",
465 | "legend": "",
466 | "maximize": "Maksymalizuj",
467 | "minimize": "Minimalizuj",
468 | "nolayouts": "Wybrany motyw nie umożliwia drukowania",
469 | "notheme": "Brak wybranego motywu",
470 | "output": "Drukuj output",
471 | "overlap": "",
472 | "pickatlasfeature": "",
473 | "resolution": "Rozdzielczość",
474 | "rotation": "Obrót",
475 | "save": "",
476 | "scale": "Skala",
477 | "series": "",
478 | "submit": "Drukuj",
479 | "wait": "Proszę czekać..."
480 | },
481 | "qtdesignerform": {
482 | "loading": ""
483 | },
484 | "redlining": {
485 | "border": "Obramowanie",
486 | "buffer": "Buforuj",
487 | "buffercompute": "Oblicz",
488 | "bufferdistance": "Odległość",
489 | "bufferlayer": "Destynacja",
490 | "bufferlayername": "Buforuj",
491 | "bufferselectfeature": "Wybierz element do buforowania",
492 | "circle": "",
493 | "delete": "Usuń",
494 | "draw": "Rysuj",
495 | "edit": "Edytuj",
496 | "ellipse": "",
497 | "export": "",
498 | "freehand": "",
499 | "label": "Etykieta",
500 | "layer": "Warstwa",
501 | "layertitle": "",
502 | "line": "Linia",
503 | "markers": "",
504 | "measurements": "",
505 | "numericinput": "",
506 | "pick": "Wybierz",
507 | "point": "Punkt",
508 | "polygon": "Poligon",
509 | "rectangle": "",
510 | "size": "Rozmiar",
511 | "square": "",
512 | "text": "Tekst",
513 | "transform": "",
514 | "width": "Szerokość"
515 | },
516 | "reports": {
517 | "all": "",
518 | "download": "",
519 | "pick": "",
520 | "region": "",
521 | "selectlayer": ""
522 | },
523 | "routing": {
524 | "add": "",
525 | "addviapoint": "",
526 | "arriveat": "",
527 | "clear": "",
528 | "computefailed": "",
529 | "computing": "",
530 | "excludepolygons": "",
531 | "export": "",
532 | "fastest": "",
533 | "fromhere": "",
534 | "importerror": "",
535 | "importhint": "",
536 | "importpoints": "",
537 | "iso_intervals": "",
538 | "iso_mode": "",
539 | "iso_mode_distance": "",
540 | "iso_mode_time": "",
541 | "isocenter": "",
542 | "isoextracenter": "",
543 | "leaveat": "",
544 | "leavenow": "",
545 | "maxspeed": "",
546 | "method": "",
547 | "mode_auto": "",
548 | "mode_bicycle": "",
549 | "mode_heavyvehicle": "",
550 | "mode_transit": "",
551 | "mode_walking": "",
552 | "optimized_route": "",
553 | "reachability": "",
554 | "roundtrip": "",
555 | "route": "",
556 | "shortest": "",
557 | "tohere": "",
558 | "useferries": "",
559 | "usehighways": "",
560 | "usetollways": "",
561 | "windowtitle": ""
562 | },
563 | "scratchdrawing": {
564 | "finish": ""
565 | },
566 | "serviceinfo": {
567 | "abstract": "",
568 | "contactEmail": "",
569 | "contactOrganization": "",
570 | "contactPerson": "",
571 | "contactPhone": "",
572 | "contactPosition": "",
573 | "keywords": "",
574 | "onlineResource": "",
575 | "title": ""
576 | },
577 | "settings": {
578 | "bookmarks": "",
579 | "colorscheme": "",
580 | "confirmlang": "",
581 | "default": "",
582 | "defaulttheme": "",
583 | "defaultthemefailed": "",
584 | "language": "",
585 | "systemlang": "",
586 | "themes": ""
587 | },
588 | "share": {
589 | "QRCodeLinkTitle": "QR code",
590 | "directLinkTitle": "Poprzez link bezpośredni",
591 | "expires": "",
592 | "norestriction": "",
593 | "refresh": "",
594 | "restricttogroup": "",
595 | "shareTitle": "QWC2",
596 | "showpin": "",
597 | "socialIntro": "W twoich ulubionych mediach społecznościowych"
598 | },
599 | "snapping": {
600 | "edge": "",
601 | "loading": "",
602 | "snappingenabled": "",
603 | "vertex": ""
604 | },
605 | "themelayerslist": {
606 | "addlayer": "",
607 | "addlayerstotheme": "",
608 | "addselectedlayers": "",
609 | "existinglayers": ""
610 | },
611 | "themeswitcher": {
612 | "addlayerstotheme": "",
613 | "addtotheme": "Dodaj do obecnego motywu",
614 | "changedefaulttheme": "",
615 | "confirmswitch": "",
616 | "filter": "Filtruj...",
617 | "match": {
618 | "abstract": "",
619 | "keywords": "",
620 | "title": ""
621 | },
622 | "openintab": "",
623 | "restrictedthemeinfo": ""
624 | },
625 | "timemanager": {
626 | "animationinterval": "",
627 | "classify": "",
628 | "classifynone": "",
629 | "displayfeatures": "",
630 | "displaylayers": "",
631 | "displayminimal": "",
632 | "edit": "",
633 | "endtime": "",
634 | "filterwarning": "",
635 | "future": "",
636 | "group": "",
637 | "groupnone": "",
638 | "home": "",
639 | "loading": "",
640 | "loop": "",
641 | "markers": "",
642 | "notemporaldata": "",
643 | "now": "",
644 | "past": "",
645 | "play": "",
646 | "playrev": "",
647 | "rewind": "",
648 | "starttime": "",
649 | "stepback": "",
650 | "stepfwd": "",
651 | "stepsize": "",
652 | "stop": "",
653 | "timeline": "",
654 | "timeline_fixed": "",
655 | "timeline_infinite": "",
656 | "timelinedisplay": "",
657 | "timelinescale": "",
658 | "title": "",
659 | "toggle": "",
660 | "unit": {
661 | "century": "",
662 | "days": "",
663 | "decade": "",
664 | "hours": "",
665 | "milliseconds": "",
666 | "minutes": "",
667 | "months": "",
668 | "seconds": "",
669 | "years": ""
670 | },
671 | "zoomin": "",
672 | "zoomout": ""
673 | },
674 | "tooltip": {
675 | "background": "Zmień podkład map",
676 | "fullscreendisable": "",
677 | "fullscreenenable": "",
678 | "home": "Pokaż całą mapę",
679 | "zoomin": "Przybliż",
680 | "zoomout": "Oddal"
681 | },
682 | "valuetool": {
683 | "all": "",
684 | "allbands": "",
685 | "alllayers": "",
686 | "bands": "",
687 | "graph": "",
688 | "layer": "",
689 | "nodata": "",
690 | "options": "",
691 | "selectedbands": "",
692 | "selectedlayers": "",
693 | "selectlayersbands": "",
694 | "showbands": "",
695 | "showlayers": "",
696 | "table": "",
697 | "title": "",
698 | "visiblelayers": ""
699 | },
700 | "vectorlayerpicker": {
701 | "none": "",
702 | "prompt": ""
703 | },
704 | "window": {
705 | "close": "",
706 | "detach": "",
707 | "dock": "",
708 | "embed": "",
709 | "maximize": "",
710 | "minimize": "",
711 | "undock": "",
712 | "unmaximize": "",
713 | "unminimize": ""
714 | }
715 | }
716 | }
717 |
--------------------------------------------------------------------------------
/static/translations/ru-RU.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "ru-RU",
3 | "messages": {
4 | "appmenu": {
5 | "items": {
6 | "ExternalLink": "",
7 | "Bookmark": "",
8 | "Compare3D": "",
9 | "Editing": "Правка",
10 | "ExportObjects3D": "",
11 | "Help": "Помощь",
12 | "HideObjects3D": "",
13 | "LayerTree": "Слои и легенда",
14 | "LayerTree3D": "",
15 | "MapExport": "экспортировать карту",
16 | "MapExport3D": "",
17 | "MapFilter": "",
18 | "MapLight3D": "",
19 | "Print": "Печать",
20 | "Reports": "",
21 | "Settings": "",
22 | "Share": "Поделиться ссылкой",
23 | "ThemeSwitcher": "Тема",
24 | "AttributeTable": "",
25 | "AuthenticationLogin": "",
26 | "AuthenticationLogout": "",
27 | "Cyclomedia": "",
28 | "Draw3D": "",
29 | "FeatureForm": "",
30 | "FeatureSearch": "",
31 | "GeometryDigitizer": "",
32 | "IdentifyPoint": "",
33 | "IdentifyRegion": "Определить регион",
34 | "LayerCatalog": "",
35 | "Login": "",
36 | "Logout": "",
37 | "MapLegend": "",
38 | "Measure": "Измерения",
39 | "Measure3D": "",
40 | "MeasureLineString": "измерить линию",
41 | "MeasurePolygon": "измерить многоугольник",
42 | "NewsPopup": "",
43 | "Panoramax": "",
44 | "Portal": "",
45 | "PrintScreen3D": "",
46 | "Redlining": "Обводка",
47 | "Routing": "",
48 | "Tools": "Средства картографии",
49 | "TimeManager": "",
50 | "View3D": ""
51 | },
52 | "filter": "",
53 | "menulabel": "Карта и инструменты"
54 | },
55 | "search": {
56 | "coordinates": "",
57 | "all": "Всё",
58 | "circleradius": "",
59 | "clearfilter": "",
60 | "existinglayer": "",
61 | "filter": "",
62 | "layers": "",
63 | "limittoarea": "",
64 | "more": "",
65 | "nodescription": "",
66 | "none": "",
67 | "noresults": "",
68 | "placeholder": "",
69 | "places": "",
70 | "providerselection": "",
71 | "recent": "",
72 | "search": "Поиск",
73 | "themelayers": "",
74 | "themes": "",
75 | "unknownmore": ""
76 | },
77 | "colorschemes": {
78 | "default": "",
79 | "dark": "",
80 | "highcontrast": ""
81 | },
82 | "app": {
83 | "missingbg": "",
84 | "missinglayers": "",
85 | "missingpermalink": "",
86 | "missingprojection": "",
87 | "missingtheme": ""
88 | },
89 | "attribtable": {
90 | "addfeature": "",
91 | "commit": "",
92 | "csvexport": "",
93 | "delete": "",
94 | "deletefailed": "",
95 | "deletefeatures": "",
96 | "deleting": "",
97 | "discard": "",
98 | "formeditmode": "",
99 | "geomnoadd": "",
100 | "limittoextent": "",
101 | "loadfailed": "",
102 | "loading": "",
103 | "nodelete": "",
104 | "nogeomnoform": "",
105 | "pleasereload": "",
106 | "reload": "",
107 | "selectlayer": "",
108 | "title": "",
109 | "zoomtoselection": ""
110 | },
111 | "bgswitcher": {
112 | "nobg": "Фон отсутствует"
113 | },
114 | "bookmark": {
115 | "add": "",
116 | "addfailed": "",
117 | "description": "",
118 | "lastUpdate": "",
119 | "manage": "",
120 | "nobookmarks": "",
121 | "notloggedin": "",
122 | "open": "",
123 | "openTab": "",
124 | "remove": "",
125 | "removefailed": "",
126 | "savefailed": "",
127 | "update": "",
128 | "zoomToExtent": ""
129 | },
130 | "bottombar": {
131 | "mousepos_label": "Координаты",
132 | "scale_label": "Масштаб",
133 | "terms_label": "Условия использования",
134 | "viewertitle_label": "Домашняя страница"
135 | },
136 | "compare3d": {
137 | "clipplane": "",
138 | "compare_objects": "",
139 | "toggleall": ""
140 | },
141 | "cookiepopup": {
142 | "accept": "",
143 | "message": ""
144 | },
145 | "copybtn": {
146 | "click_to_copy": "Копировать",
147 | "copied": "Скопировано",
148 | "copyfailed": ""
149 | },
150 | "cyclomedia": {
151 | "clickonmap": "",
152 | "initializing": "",
153 | "loaderror": "",
154 | "loading": "",
155 | "login": "",
156 | "scalehint": "",
157 | "title": ""
158 | },
159 | "draw3d": {
160 | "cone": "",
161 | "cuboid": "",
162 | "cylinder": "",
163 | "delete": "",
164 | "drawings": "",
165 | "intersect": "",
166 | "newgroupprompt": "",
167 | "numericinput": "",
168 | "pick": "",
169 | "position": "",
170 | "pyramid": "",
171 | "rotate": "",
172 | "rotation": "",
173 | "scale": "",
174 | "sphere": "",
175 | "subtract": "",
176 | "thescale": "",
177 | "translate": "",
178 | "undoBool": "",
179 | "union": "",
180 | "wedge": ""
181 | },
182 | "editing": {
183 | "add": "",
184 | "attrtable": "",
185 | "canceldelete": "Не удалять",
186 | "clearpicture": "",
187 | "commit": "Подтвердить изменения",
188 | "commitfailed": "",
189 | "contraintviolation": "",
190 | "create": "",
191 | "delete": "Удалить",
192 | "discard": "Отменить изменения",
193 | "draw": "Нарисовать",
194 | "feature": "",
195 | "geomreadonly": "",
196 | "invalidform": "",
197 | "maximize": "Развернуть",
198 | "minimize": "Свернуть",
199 | "noeditablelayers": "Отсутствуют доступные для редактирования слои.",
200 | "paint": "",
201 | "pick": "Выбрать",
202 | "pickdrawfeature": "",
203 | "reallydelete": "Удалить",
204 | "relationcommitfailed": "",
205 | "select": "Выберите...",
206 | "takepicture": "",
207 | "unsavedchanged": ""
208 | },
209 | "featureform": {
210 | "feature": "",
211 | "noresults": "",
212 | "querying": "",
213 | "title": ""
214 | },
215 | "featuresearch": {
216 | "noresults": "",
217 | "query": "",
218 | "select": "",
219 | "title": ""
220 | },
221 | "fileselector": {
222 | "files": "",
223 | "placeholder": "Выберите файл..."
224 | },
225 | "geomdigitizer": {
226 | "applink": "",
227 | "bufferlayername": "",
228 | "chooselink": "",
229 | "clear": "",
230 | "identifypick": "",
231 | "identifypickregion": "",
232 | "layername": "",
233 | "line_buffer": "",
234 | "point_buffer": "",
235 | "selfinter": "",
236 | "send": "",
237 | "wait": ""
238 | },
239 | "heightprofile": {
240 | "asl": "над у.м.",
241 | "distance": "Дистанция",
242 | "drawnodes": "",
243 | "error": "",
244 | "export": "",
245 | "height": "Высота",
246 | "loading": "Расчет высоты профиля...",
247 | "loadingimage": "",
248 | "print": "",
249 | "title": ""
250 | },
251 | "hideobjects3d": {
252 | "clickonmap": "",
253 | "object": "",
254 | "restore": "",
255 | "restoreall": ""
256 | },
257 | "identify": {
258 | "aggregatedreport": "",
259 | "clipboard": "",
260 | "download": "",
261 | "export": "Экспорт",
262 | "featureReport": "Отчёт об объекте",
263 | "featurecount": "",
264 | "layerall": "",
265 | "link": "гиперссылка",
266 | "noattributes": "Аттрибуты отсутствуют",
267 | "noresults": "Для выбранной точки нет доступной информации",
268 | "querying": "Выполняется запрос...",
269 | "reportfail": "",
270 | "selectlayer": "",
271 | "title": "Информация об объекте"
272 | },
273 | "imageeditor": {
274 | "confirmclose": "",
275 | "title": ""
276 | },
277 | "importlayer": {
278 | "addfailed": "",
279 | "addlayer": "Добавить слой",
280 | "asgroup": "",
281 | "connect": "Подключиться",
282 | "filter": "Фильтровать...",
283 | "loading": "",
284 | "localfile": "",
285 | "nofeatures": "Нет объектов, доступных для импорта",
286 | "noresults": "",
287 | "notgeopdf": "",
288 | "shpreprojectionerror": "",
289 | "supportedformats": "",
290 | "unknownproj": "",
291 | "url": "",
292 | "urlplaceholder": "Введите URL для WMS, WMTS, WFS..."
293 | },
294 | "infotool": {
295 | "clickhelpPoint": "",
296 | "clickhelpPolygon": "Для получения информации обведите регион многоугольником...",
297 | "clickhelpRadius": "",
298 | "radius": ""
299 | },
300 | "layercatalog": {
301 | "windowtitle": ""
302 | },
303 | "layerinfo": {
304 | "abstract": "Abstract",
305 | "attribution": "Автор",
306 | "dataUrl": "URL данных",
307 | "keywords": "Ключевые слова",
308 | "legend": "Легенда",
309 | "maxscale": "",
310 | "metadataUrl": "URL метаданных",
311 | "minscale": "",
312 | "title": "Информация о слое"
313 | },
314 | "layertree": {
315 | "compare": "Сравнить верхний слой",
316 | "deletealllayers": "",
317 | "importlayer": "Импортировать слой",
318 | "maptip": "Показывать подписи",
319 | "printlegend": "Распечатать легенду",
320 | "separator": "",
321 | "separatortooltip": "",
322 | "transparency": "",
323 | "visiblefilter": "",
324 | "zoomtolayer": ""
325 | },
326 | "layertree3d": {
327 | "import": "",
328 | "importobjects": "",
329 | "layers": "",
330 | "objects": "",
331 | "supportedformats": "",
332 | "zoomtoobject": ""
333 | },
334 | "linkfeatureform": {
335 | "cancel": "",
336 | "close": "",
337 | "drawhint": "",
338 | "pickhint": ""
339 | },
340 | "locate": {
341 | "feetUnit": "футов",
342 | "metersUnit": "метров",
343 | "popup": "Вы на расстоянии {distance} {unit} от этой точки",
344 | "statustooltip": {
345 | "DISABLED": "Геолокация: отключена",
346 | "ENABLED": "Геолокация: включена",
347 | "FOLLOWING": "Геолокация: следование",
348 | "LOCATING": "Геолокация: определение местоположения...",
349 | "PERMISSION_DENIED": "Геолокация: доступ воспрещен"
350 | }
351 | },
352 | "map": {
353 | "loading": "Загрузка...",
354 | "resetrotation": ""
355 | },
356 | "map3d": {
357 | "syncview": "",
358 | "terrain": "",
359 | "title": ""
360 | },
361 | "mapexport": {
362 | "configuration": "",
363 | "format": "Формат бумаги:",
364 | "resolution": "Разрешение:",
365 | "scale": "",
366 | "size": "",
367 | "submit": "",
368 | "usersize": "",
369 | "wait": ""
370 | },
371 | "mapfilter": {
372 | "addcustomfilter": "",
373 | "brokenrendering": "",
374 | "cancel": "",
375 | "geomfilter": "",
376 | "hidefiltergeom": "",
377 | "invalidfilter": "",
378 | "save": "",
379 | "select": "",
380 | "selectlayer": "",
381 | "timefilter": "",
382 | "timefrom": "",
383 | "timeto": ""
384 | },
385 | "mapinfotooltip": {
386 | "elevation": "Высота над уровнем моря",
387 | "title": "Позиция"
388 | },
389 | "maplegend": {
390 | "bboxdependent": "",
391 | "onlyvisible": "",
392 | "scaledependent": "",
393 | "windowtitle": ""
394 | },
395 | "maplight3d": {
396 | "ambientLightIntensity": "",
397 | "animationstep": "",
398 | "date": "",
399 | "dayspersec": "",
400 | "directionalLightIntensity": "",
401 | "helpersVisible": "",
402 | "minspersec": "",
403 | "normalBias": "",
404 | "shadowBias": "",
405 | "shadowMapSize": "",
406 | "shadowType": "",
407 | "shadowVolumeFar": "",
408 | "shadowVolumeNear": "",
409 | "shadowintensity": "",
410 | "shadows": "",
411 | "showadvanced": "",
412 | "time": "",
413 | "zFactor": ""
414 | },
415 | "measureComponent": {
416 | "absolute": "",
417 | "areaLabel": "Площадь",
418 | "bearingLabel": "Пеленг",
419 | "ground": "",
420 | "imperial": "",
421 | "lengthLabel": "Длина",
422 | "metric": "",
423 | "pointLabel": "Позиция"
424 | },
425 | "misc": {
426 | "ctrlclickhint": ""
427 | },
428 | "navbar": {
429 | "perpage": ""
430 | },
431 | "newspopup": {
432 | "dialogclose": "",
433 | "dontshowagain": "",
434 | "title": ""
435 | },
436 | "numericinput": {
437 | "angle": "",
438 | "featureunsupported": "",
439 | "height": "",
440 | "nofeature": "",
441 | "side": "",
442 | "width": "",
443 | "windowtitle": ""
444 | },
445 | "panoramax": {
446 | "notfound": "",
447 | "title": ""
448 | },
449 | "pickfeature": {
450 | "querying": ""
451 | },
452 | "portal": {
453 | "filter": "",
454 | "menulabel": ""
455 | },
456 | "print": {
457 | "atlasfeature": "",
458 | "download": "",
459 | "download_as_onepdf": "",
460 | "download_as_onezip": "",
461 | "download_as_single": "",
462 | "format": "Формат бумаги",
463 | "grid": "Сетка",
464 | "layout": "Формат бумаги",
465 | "legend": "",
466 | "maximize": "Развернуть",
467 | "minimize": "Свернуть",
468 | "nolayouts": "Выбранная тема не поддерживает печать",
469 | "notheme": "Тема не выбрана",
470 | "output": "",
471 | "overlap": "",
472 | "pickatlasfeature": "",
473 | "resolution": "Разрешение",
474 | "rotation": "Поворот",
475 | "save": "",
476 | "scale": "Масштаб",
477 | "series": "",
478 | "submit": "Печать",
479 | "wait": ""
480 | },
481 | "qtdesignerform": {
482 | "loading": ""
483 | },
484 | "redlining": {
485 | "border": "Граница",
486 | "buffer": "",
487 | "buffercompute": "",
488 | "bufferdistance": "",
489 | "bufferlayer": "",
490 | "bufferlayername": "",
491 | "bufferselectfeature": "",
492 | "circle": "",
493 | "delete": "",
494 | "draw": "",
495 | "edit": "",
496 | "ellipse": "",
497 | "export": "",
498 | "freehand": "",
499 | "label": "Надпись",
500 | "layer": "",
501 | "layertitle": "",
502 | "line": "Линия",
503 | "markers": "",
504 | "measurements": "",
505 | "numericinput": "",
506 | "pick": "Выбрать",
507 | "point": "Точка",
508 | "polygon": "Полигон",
509 | "rectangle": "",
510 | "size": "Размер",
511 | "square": "",
512 | "text": "Текст",
513 | "transform": "",
514 | "width": "Ширина"
515 | },
516 | "reports": {
517 | "all": "",
518 | "download": "",
519 | "pick": "",
520 | "region": "",
521 | "selectlayer": ""
522 | },
523 | "routing": {
524 | "add": "",
525 | "addviapoint": "",
526 | "arriveat": "",
527 | "clear": "",
528 | "computefailed": "",
529 | "computing": "",
530 | "excludepolygons": "",
531 | "export": "",
532 | "fastest": "",
533 | "fromhere": "",
534 | "importerror": "",
535 | "importhint": "",
536 | "importpoints": "",
537 | "iso_intervals": "",
538 | "iso_mode": "",
539 | "iso_mode_distance": "",
540 | "iso_mode_time": "",
541 | "isocenter": "",
542 | "isoextracenter": "",
543 | "leaveat": "",
544 | "leavenow": "",
545 | "maxspeed": "",
546 | "method": "",
547 | "mode_auto": "",
548 | "mode_bicycle": "",
549 | "mode_heavyvehicle": "",
550 | "mode_transit": "",
551 | "mode_walking": "",
552 | "optimized_route": "",
553 | "reachability": "",
554 | "roundtrip": "",
555 | "route": "",
556 | "shortest": "",
557 | "tohere": "",
558 | "useferries": "",
559 | "usehighways": "",
560 | "usetollways": "",
561 | "windowtitle": ""
562 | },
563 | "scratchdrawing": {
564 | "finish": ""
565 | },
566 | "serviceinfo": {
567 | "abstract": "",
568 | "contactEmail": "",
569 | "contactOrganization": "",
570 | "contactPerson": "",
571 | "contactPhone": "",
572 | "contactPosition": "",
573 | "keywords": "",
574 | "onlineResource": "",
575 | "title": ""
576 | },
577 | "settings": {
578 | "bookmarks": "",
579 | "colorscheme": "",
580 | "confirmlang": "",
581 | "default": "",
582 | "defaulttheme": "",
583 | "defaultthemefailed": "",
584 | "language": "",
585 | "systemlang": "",
586 | "themes": ""
587 | },
588 | "share": {
589 | "QRCodeLinkTitle": "QR-код",
590 | "directLinkTitle": "По прямой ссылке",
591 | "expires": "",
592 | "norestriction": "",
593 | "refresh": "",
594 | "restricttogroup": "",
595 | "shareTitle": "QWC2",
596 | "showpin": "",
597 | "socialIntro": "В Вашей любимой соцсети"
598 | },
599 | "snapping": {
600 | "edge": "",
601 | "loading": "",
602 | "snappingenabled": "",
603 | "vertex": ""
604 | },
605 | "themelayerslist": {
606 | "addlayer": "",
607 | "addlayerstotheme": "",
608 | "addselectedlayers": "",
609 | "existinglayers": ""
610 | },
611 | "themeswitcher": {
612 | "addlayerstotheme": "",
613 | "addtotheme": "",
614 | "changedefaulttheme": "",
615 | "confirmswitch": "",
616 | "filter": "Фильтр...",
617 | "match": {
618 | "abstract": "",
619 | "keywords": "",
620 | "title": ""
621 | },
622 | "openintab": "",
623 | "restrictedthemeinfo": ""
624 | },
625 | "timemanager": {
626 | "animationinterval": "",
627 | "classify": "",
628 | "classifynone": "",
629 | "displayfeatures": "",
630 | "displaylayers": "",
631 | "displayminimal": "",
632 | "edit": "",
633 | "endtime": "",
634 | "filterwarning": "",
635 | "future": "",
636 | "group": "",
637 | "groupnone": "",
638 | "home": "",
639 | "loading": "",
640 | "loop": "",
641 | "markers": "",
642 | "notemporaldata": "",
643 | "now": "",
644 | "past": "",
645 | "play": "",
646 | "playrev": "",
647 | "rewind": "",
648 | "starttime": "",
649 | "stepback": "",
650 | "stepfwd": "",
651 | "stepsize": "",
652 | "stop": "",
653 | "timeline": "",
654 | "timeline_fixed": "",
655 | "timeline_infinite": "",
656 | "timelinedisplay": "",
657 | "timelinescale": "",
658 | "title": "",
659 | "toggle": "",
660 | "unit": {
661 | "century": "",
662 | "days": "",
663 | "decade": "",
664 | "hours": "",
665 | "milliseconds": "",
666 | "minutes": "",
667 | "months": "",
668 | "seconds": "",
669 | "years": ""
670 | },
671 | "zoomin": "",
672 | "zoomout": ""
673 | },
674 | "tooltip": {
675 | "background": "Сменить фон",
676 | "fullscreendisable": "",
677 | "fullscreenenable": "",
678 | "home": "Показать всю карту",
679 | "zoomin": "Увеличить",
680 | "zoomout": "Уменьшить"
681 | },
682 | "valuetool": {
683 | "all": "",
684 | "allbands": "",
685 | "alllayers": "",
686 | "bands": "",
687 | "graph": "",
688 | "layer": "",
689 | "nodata": "",
690 | "options": "",
691 | "selectedbands": "",
692 | "selectedlayers": "",
693 | "selectlayersbands": "",
694 | "showbands": "",
695 | "showlayers": "",
696 | "table": "",
697 | "title": "",
698 | "visiblelayers": ""
699 | },
700 | "vectorlayerpicker": {
701 | "none": "",
702 | "prompt": ""
703 | },
704 | "window": {
705 | "close": "",
706 | "detach": "",
707 | "dock": "",
708 | "embed": "",
709 | "maximize": "",
710 | "minimize": "",
711 | "undock": "",
712 | "unmaximize": "",
713 | "unminimize": ""
714 | }
715 | }
716 | }
717 |
--------------------------------------------------------------------------------
/static/translations/sv-SE.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "sv-SE",
3 | "messages": {
4 | "appmenu": {
5 | "items": {
6 | "ExternalLink": "",
7 | "Bookmark": "",
8 | "Compare3D": "",
9 | "Editing": "Redigera",
10 | "ExportObjects3D": "",
11 | "Help": "Hjälp",
12 | "HideObjects3D": "",
13 | "LayerTree": "Lager & teckenförklaring",
14 | "LayerTree3D": "",
15 | "MapExport": "Exportera karta",
16 | "MapExport3D": "",
17 | "MapFilter": "",
18 | "MapLight3D": "",
19 | "Print": "Skriv ut",
20 | "Reports": "",
21 | "Settings": "",
22 | "Share": "Dela länk",
23 | "ThemeSwitcher": "Tema",
24 | "AttributeTable": "",
25 | "AuthenticationLogin": "Logga in",
26 | "AuthenticationLogout": "Logga ut",
27 | "Cyclomedia": "",
28 | "Draw3D": "",
29 | "FeatureForm": "",
30 | "FeatureSearch": "",
31 | "GeometryDigitizer": "",
32 | "IdentifyPoint": "",
33 | "IdentifyRegion": "Identifiera med område",
34 | "LayerCatalog": "",
35 | "Login": "Logga in",
36 | "Logout": "Logga ut",
37 | "MapLegend": "",
38 | "Measure": "Mät",
39 | "Measure3D": "",
40 | "MeasureLineString": "Mäta en linje",
41 | "MeasurePolygon": "Mäta en polygon",
42 | "NewsPopup": "",
43 | "Panoramax": "",
44 | "Portal": "",
45 | "PrintScreen3D": "",
46 | "Redlining": "Rita",
47 | "Routing": "",
48 | "Tools": "Kartverktyg",
49 | "TimeManager": "",
50 | "View3D": ""
51 | },
52 | "filter": "",
53 | "menulabel": "Karta & Verktyg"
54 | },
55 | "search": {
56 | "coordinates": "Koordinater",
57 | "all": "",
58 | "circleradius": "",
59 | "clearfilter": "",
60 | "existinglayer": "",
61 | "filter": "",
62 | "layers": "",
63 | "limittoarea": "",
64 | "more": "",
65 | "nodescription": "",
66 | "none": "",
67 | "noresults": "",
68 | "placeholder": "",
69 | "places": "",
70 | "providerselection": "",
71 | "recent": "",
72 | "search": "",
73 | "themelayers": "",
74 | "themes": "",
75 | "unknownmore": ""
76 | },
77 | "colorschemes": {
78 | "default": "",
79 | "dark": "",
80 | "highcontrast": ""
81 | },
82 | "app": {
83 | "missingbg": "",
84 | "missinglayers": "",
85 | "missingpermalink": "",
86 | "missingprojection": "",
87 | "missingtheme": ""
88 | },
89 | "attribtable": {
90 | "addfeature": "",
91 | "commit": "",
92 | "csvexport": "",
93 | "delete": "",
94 | "deletefailed": "",
95 | "deletefeatures": "",
96 | "deleting": "",
97 | "discard": "",
98 | "formeditmode": "",
99 | "geomnoadd": "",
100 | "limittoextent": "",
101 | "loadfailed": "",
102 | "loading": "",
103 | "nodelete": "",
104 | "nogeomnoform": "",
105 | "pleasereload": "",
106 | "reload": "",
107 | "selectlayer": "",
108 | "title": "",
109 | "zoomtoselection": ""
110 | },
111 | "bgswitcher": {
112 | "nobg": "Ingen bakgrund"
113 | },
114 | "bookmark": {
115 | "add": "",
116 | "addfailed": "",
117 | "description": "",
118 | "lastUpdate": "",
119 | "manage": "",
120 | "nobookmarks": "",
121 | "notloggedin": "",
122 | "open": "",
123 | "openTab": "",
124 | "remove": "",
125 | "removefailed": "",
126 | "savefailed": "",
127 | "update": "",
128 | "zoomToExtent": ""
129 | },
130 | "bottombar": {
131 | "mousepos_label": "Koordinater",
132 | "scale_label": "Skala",
133 | "terms_label": "Villkor",
134 | "viewertitle_label": ""
135 | },
136 | "compare3d": {
137 | "clipplane": "",
138 | "compare_objects": "",
139 | "toggleall": ""
140 | },
141 | "cookiepopup": {
142 | "accept": "",
143 | "message": ""
144 | },
145 | "copybtn": {
146 | "click_to_copy": "Klicka för att kopiera",
147 | "copied": "Kopierade",
148 | "copyfailed": ""
149 | },
150 | "cyclomedia": {
151 | "clickonmap": "",
152 | "initializing": "",
153 | "loaderror": "",
154 | "loading": "",
155 | "login": "",
156 | "scalehint": "",
157 | "title": ""
158 | },
159 | "draw3d": {
160 | "cone": "",
161 | "cuboid": "",
162 | "cylinder": "",
163 | "delete": "",
164 | "drawings": "",
165 | "intersect": "",
166 | "newgroupprompt": "",
167 | "numericinput": "",
168 | "pick": "",
169 | "position": "",
170 | "pyramid": "",
171 | "rotate": "",
172 | "rotation": "",
173 | "scale": "",
174 | "sphere": "",
175 | "subtract": "",
176 | "thescale": "",
177 | "translate": "",
178 | "undoBool": "",
179 | "union": "",
180 | "wedge": ""
181 | },
182 | "editing": {
183 | "add": "",
184 | "attrtable": "",
185 | "canceldelete": "Radera inte",
186 | "clearpicture": "",
187 | "commit": "Skicka",
188 | "commitfailed": "",
189 | "contraintviolation": "",
190 | "create": "",
191 | "delete": "Radera",
192 | "discard": "Förkasta",
193 | "draw": "Rita",
194 | "feature": "Objekt",
195 | "geomreadonly": "",
196 | "invalidform": "",
197 | "maximize": "Maximera",
198 | "minimize": "Minimera",
199 | "noeditablelayers": "Inga redigerbara lager",
200 | "paint": "",
201 | "pick": "Välj",
202 | "pickdrawfeature": "",
203 | "reallydelete": "Verkligen radera",
204 | "relationcommitfailed": "",
205 | "select": "Välj",
206 | "takepicture": "",
207 | "unsavedchanged": ""
208 | },
209 | "featureform": {
210 | "feature": "",
211 | "noresults": "",
212 | "querying": "",
213 | "title": ""
214 | },
215 | "featuresearch": {
216 | "noresults": "",
217 | "query": "",
218 | "select": "",
219 | "title": ""
220 | },
221 | "fileselector": {
222 | "files": "",
223 | "placeholder": "Välj fil..."
224 | },
225 | "geomdigitizer": {
226 | "applink": "",
227 | "bufferlayername": "",
228 | "chooselink": "",
229 | "clear": "",
230 | "identifypick": "",
231 | "identifypickregion": "",
232 | "layername": "",
233 | "line_buffer": "",
234 | "point_buffer": "",
235 | "selfinter": "",
236 | "send": "",
237 | "wait": ""
238 | },
239 | "heightprofile": {
240 | "asl": "m.ö.h.",
241 | "distance": "Avstånd",
242 | "drawnodes": "",
243 | "error": "",
244 | "export": "",
245 | "height": "Höjd",
246 | "loading": "Beräknar höjdprofil...",
247 | "loadingimage": "",
248 | "print": "",
249 | "title": ""
250 | },
251 | "hideobjects3d": {
252 | "clickonmap": "",
253 | "object": "",
254 | "restore": "",
255 | "restoreall": ""
256 | },
257 | "identify": {
258 | "aggregatedreport": "",
259 | "clipboard": "",
260 | "download": "",
261 | "export": "Exportera",
262 | "featureReport": "Objektrapport",
263 | "featurecount": "",
264 | "layerall": "",
265 | "link": "Länk",
266 | "noattributes": "Inga attribut",
267 | "noresults": "Ingen information för vald punkt",
268 | "querying": "Frågar...",
269 | "reportfail": "",
270 | "selectlayer": "",
271 | "title": "Objektinformation"
272 | },
273 | "imageeditor": {
274 | "confirmclose": "",
275 | "title": ""
276 | },
277 | "importlayer": {
278 | "addfailed": "",
279 | "addlayer": "Lägg till lager",
280 | "asgroup": "",
281 | "connect": "Anslut",
282 | "filter": "Filter...",
283 | "loading": "",
284 | "localfile": "Lokal fil",
285 | "nofeatures": "Inga objekt kunde importeras",
286 | "noresults": "Inget svar eller ogiltig URL",
287 | "notgeopdf": "",
288 | "shpreprojectionerror": "",
289 | "supportedformats": "",
290 | "unknownproj": "",
291 | "url": "URL",
292 | "urlplaceholder": "Skriv in URL till WMS, WMTS, WFS..."
293 | },
294 | "infotool": {
295 | "clickhelpPoint": "",
296 | "clickhelpPolygon": "Rita en polygon runt objektn som ska identifieras",
297 | "clickhelpRadius": "",
298 | "radius": ""
299 | },
300 | "layercatalog": {
301 | "windowtitle": ""
302 | },
303 | "layerinfo": {
304 | "abstract": "Sammanfattning",
305 | "attribution": "Källa",
306 | "dataUrl": "Datalänk",
307 | "keywords": "Nyckelord",
308 | "legend": "Teckenförklaring",
309 | "maxscale": "",
310 | "metadataUrl": "Metadatalänk",
311 | "minscale": "",
312 | "title": "Information om lager"
313 | },
314 | "layertree": {
315 | "compare": "Jämför översta lagret",
316 | "deletealllayers": "Ta bort alla lager",
317 | "importlayer": "Importera lager",
318 | "maptip": "Visa karttips för lager",
319 | "printlegend": "Skriv ut teckenförklaring",
320 | "separator": "",
321 | "separatortooltip": "",
322 | "transparency": "",
323 | "visiblefilter": "",
324 | "zoomtolayer": ""
325 | },
326 | "layertree3d": {
327 | "import": "",
328 | "importobjects": "",
329 | "layers": "",
330 | "objects": "",
331 | "supportedformats": "",
332 | "zoomtoobject": ""
333 | },
334 | "linkfeatureform": {
335 | "cancel": "",
336 | "close": "",
337 | "drawhint": "",
338 | "pickhint": ""
339 | },
340 | "locate": {
341 | "feetUnit": "fot",
342 | "metersUnit": "meter",
343 | "popup": "Du är inom {distance} {unit} från denna punkt",
344 | "statustooltip": {
345 | "DISABLED": "Position: avaktiverat",
346 | "ENABLED": "Position: aktiverat",
347 | "FOLLOWING": "Position: följer gps",
348 | "LOCATING": "Position: bestäms...",
349 | "PERMISSION_DENIED": "Position: tillåts inte"
350 | }
351 | },
352 | "map": {
353 | "loading": "Laddar...",
354 | "resetrotation": ""
355 | },
356 | "map3d": {
357 | "syncview": "",
358 | "terrain": "",
359 | "title": ""
360 | },
361 | "mapexport": {
362 | "configuration": "",
363 | "format": "Format:",
364 | "resolution": "Upplösning:",
365 | "scale": "",
366 | "size": "",
367 | "submit": "",
368 | "usersize": "",
369 | "wait": ""
370 | },
371 | "mapfilter": {
372 | "addcustomfilter": "",
373 | "brokenrendering": "",
374 | "cancel": "",
375 | "geomfilter": "",
376 | "hidefiltergeom": "",
377 | "invalidfilter": "",
378 | "save": "",
379 | "select": "",
380 | "selectlayer": "",
381 | "timefilter": "",
382 | "timefrom": "",
383 | "timeto": ""
384 | },
385 | "mapinfotooltip": {
386 | "elevation": "Höjd",
387 | "title": "Position"
388 | },
389 | "maplegend": {
390 | "bboxdependent": "",
391 | "onlyvisible": "",
392 | "scaledependent": "",
393 | "windowtitle": ""
394 | },
395 | "maplight3d": {
396 | "ambientLightIntensity": "",
397 | "animationstep": "",
398 | "date": "",
399 | "dayspersec": "",
400 | "directionalLightIntensity": "",
401 | "helpersVisible": "",
402 | "minspersec": "",
403 | "normalBias": "",
404 | "shadowBias": "",
405 | "shadowMapSize": "",
406 | "shadowType": "",
407 | "shadowVolumeFar": "",
408 | "shadowVolumeNear": "",
409 | "shadowintensity": "",
410 | "shadows": "",
411 | "showadvanced": "",
412 | "time": "",
413 | "zFactor": ""
414 | },
415 | "measureComponent": {
416 | "absolute": "",
417 | "areaLabel": "Area",
418 | "bearingLabel": "Bäring",
419 | "ground": "",
420 | "imperial": "",
421 | "lengthLabel": "Längd",
422 | "metric": "",
423 | "pointLabel": "Position"
424 | },
425 | "misc": {
426 | "ctrlclickhint": ""
427 | },
428 | "navbar": {
429 | "perpage": ""
430 | },
431 | "newspopup": {
432 | "dialogclose": "",
433 | "dontshowagain": "",
434 | "title": ""
435 | },
436 | "numericinput": {
437 | "angle": "",
438 | "featureunsupported": "",
439 | "height": "",
440 | "nofeature": "",
441 | "side": "",
442 | "width": "",
443 | "windowtitle": ""
444 | },
445 | "panoramax": {
446 | "notfound": "",
447 | "title": ""
448 | },
449 | "pickfeature": {
450 | "querying": ""
451 | },
452 | "portal": {
453 | "filter": "",
454 | "menulabel": ""
455 | },
456 | "print": {
457 | "atlasfeature": "",
458 | "download": "",
459 | "download_as_onepdf": "",
460 | "download_as_onezip": "",
461 | "download_as_single": "",
462 | "format": "Format",
463 | "grid": "Rutnät",
464 | "layout": "Layout:",
465 | "legend": "",
466 | "maximize": "Maximera",
467 | "minimize": "Minimera",
468 | "nolayouts": "Valt tema stöder inte utskrift",
469 | "notheme": "Inget tema valt",
470 | "output": "Utskrift",
471 | "overlap": "",
472 | "pickatlasfeature": "",
473 | "resolution": "Upplösning",
474 | "rotation": "Rotation",
475 | "save": "",
476 | "scale": "Skala",
477 | "series": "",
478 | "submit": "Skriv ut",
479 | "wait": "Vänta..."
480 | },
481 | "qtdesignerform": {
482 | "loading": ""
483 | },
484 | "redlining": {
485 | "border": "Kant",
486 | "buffer": "Buffert",
487 | "buffercompute": "Beräkna",
488 | "bufferdistance": "Avstånd",
489 | "bufferlayer": "Mållager",
490 | "bufferlayername": "Buffert",
491 | "bufferselectfeature": "Välj ett objekt att buffra",
492 | "circle": "",
493 | "delete": "Radera",
494 | "draw": "Rita",
495 | "edit": "Redigera",
496 | "ellipse": "",
497 | "export": "",
498 | "freehand": "",
499 | "label": "Etikett",
500 | "layer": "Lager",
501 | "layertitle": "",
502 | "line": "Linje",
503 | "markers": "",
504 | "measurements": "",
505 | "numericinput": "",
506 | "pick": "Välj",
507 | "point": "Punkt",
508 | "polygon": "Yta",
509 | "rectangle": "",
510 | "size": "Storlek",
511 | "square": "",
512 | "text": "Text",
513 | "transform": "",
514 | "width": "Bredd"
515 | },
516 | "reports": {
517 | "all": "",
518 | "download": "",
519 | "pick": "",
520 | "region": "",
521 | "selectlayer": ""
522 | },
523 | "routing": {
524 | "add": "",
525 | "addviapoint": "",
526 | "arriveat": "",
527 | "clear": "",
528 | "computefailed": "",
529 | "computing": "",
530 | "excludepolygons": "",
531 | "export": "",
532 | "fastest": "",
533 | "fromhere": "",
534 | "importerror": "",
535 | "importhint": "",
536 | "importpoints": "",
537 | "iso_intervals": "",
538 | "iso_mode": "",
539 | "iso_mode_distance": "",
540 | "iso_mode_time": "",
541 | "isocenter": "",
542 | "isoextracenter": "",
543 | "leaveat": "",
544 | "leavenow": "",
545 | "maxspeed": "",
546 | "method": "",
547 | "mode_auto": "",
548 | "mode_bicycle": "",
549 | "mode_heavyvehicle": "",
550 | "mode_transit": "",
551 | "mode_walking": "",
552 | "optimized_route": "",
553 | "reachability": "",
554 | "roundtrip": "",
555 | "route": "",
556 | "shortest": "",
557 | "tohere": "",
558 | "useferries": "",
559 | "usehighways": "",
560 | "usetollways": "",
561 | "windowtitle": ""
562 | },
563 | "scratchdrawing": {
564 | "finish": ""
565 | },
566 | "serviceinfo": {
567 | "abstract": "",
568 | "contactEmail": "",
569 | "contactOrganization": "",
570 | "contactPerson": "",
571 | "contactPhone": "",
572 | "contactPosition": "",
573 | "keywords": "",
574 | "onlineResource": "",
575 | "title": ""
576 | },
577 | "settings": {
578 | "bookmarks": "",
579 | "colorscheme": "",
580 | "confirmlang": "",
581 | "default": "",
582 | "defaulttheme": "",
583 | "defaultthemefailed": "",
584 | "language": "",
585 | "systemlang": "",
586 | "themes": ""
587 | },
588 | "share": {
589 | "QRCodeLinkTitle": "QR kod",
590 | "directLinkTitle": "Via en direktlänk",
591 | "expires": "",
592 | "norestriction": "",
593 | "refresh": "",
594 | "restricttogroup": "",
595 | "shareTitle": "QWC2",
596 | "showpin": "",
597 | "socialIntro": "I ditt favoritnätverk"
598 | },
599 | "snapping": {
600 | "edge": "",
601 | "loading": "",
602 | "snappingenabled": "",
603 | "vertex": ""
604 | },
605 | "themelayerslist": {
606 | "addlayer": "",
607 | "addlayerstotheme": "",
608 | "addselectedlayers": "",
609 | "existinglayers": ""
610 | },
611 | "themeswitcher": {
612 | "addlayerstotheme": "",
613 | "addtotheme": "Lägg till aktuellt tema",
614 | "changedefaulttheme": "",
615 | "confirmswitch": "",
616 | "filter": "Filtrera...",
617 | "match": {
618 | "abstract": "",
619 | "keywords": "",
620 | "title": ""
621 | },
622 | "openintab": "",
623 | "restrictedthemeinfo": ""
624 | },
625 | "timemanager": {
626 | "animationinterval": "",
627 | "classify": "",
628 | "classifynone": "",
629 | "displayfeatures": "",
630 | "displaylayers": "",
631 | "displayminimal": "",
632 | "edit": "",
633 | "endtime": "",
634 | "filterwarning": "",
635 | "future": "",
636 | "group": "",
637 | "groupnone": "",
638 | "home": "",
639 | "loading": "",
640 | "loop": "",
641 | "markers": "",
642 | "notemporaldata": "",
643 | "now": "",
644 | "past": "",
645 | "play": "",
646 | "playrev": "",
647 | "rewind": "",
648 | "starttime": "",
649 | "stepback": "",
650 | "stepfwd": "",
651 | "stepsize": "",
652 | "stop": "",
653 | "timeline": "",
654 | "timeline_fixed": "",
655 | "timeline_infinite": "",
656 | "timelinedisplay": "",
657 | "timelinescale": "",
658 | "title": "",
659 | "toggle": "",
660 | "unit": {
661 | "century": "",
662 | "days": "",
663 | "decade": "",
664 | "hours": "",
665 | "milliseconds": "",
666 | "minutes": "",
667 | "months": "",
668 | "seconds": "",
669 | "years": ""
670 | },
671 | "zoomin": "",
672 | "zoomout": ""
673 | },
674 | "tooltip": {
675 | "background": "Byt bakgrund",
676 | "fullscreendisable": "",
677 | "fullscreenenable": "",
678 | "home": "Visa hela kartan",
679 | "zoomin": "Zooma in",
680 | "zoomout": "Zooma ut"
681 | },
682 | "valuetool": {
683 | "all": "",
684 | "allbands": "",
685 | "alllayers": "",
686 | "bands": "",
687 | "graph": "",
688 | "layer": "",
689 | "nodata": "",
690 | "options": "",
691 | "selectedbands": "",
692 | "selectedlayers": "",
693 | "selectlayersbands": "",
694 | "showbands": "",
695 | "showlayers": "",
696 | "table": "",
697 | "title": "",
698 | "visiblelayers": ""
699 | },
700 | "vectorlayerpicker": {
701 | "none": "",
702 | "prompt": ""
703 | },
704 | "window": {
705 | "close": "",
706 | "detach": "",
707 | "dock": "",
708 | "embed": "",
709 | "maximize": "",
710 | "minimize": "",
711 | "undock": "",
712 | "unmaximize": "",
713 | "unminimize": ""
714 | }
715 | }
716 | }
717 |
--------------------------------------------------------------------------------
/static/translations/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "languages": [
3 | "de-DE",
4 | "de-CH",
5 | "en-US",
6 | "es-ES",
7 | "fr-FR",
8 | "it-IT",
9 | "ja-JP",
10 | "pl-PL",
11 | "pt-BR",
12 | "pt-PT",
13 | "ro-RO",
14 | "ru-RU",
15 | "sv-SE",
16 | "tr-TR",
17 | "cs-CZ"
18 | ],
19 | "extra_strings": [
20 | "appmenu.items.ExternalLink",
21 | "search.coordinates",
22 | "colorschemes.default",
23 | "colorschemes.dark",
24 | "colorschemes.highcontrast"
25 | ],
26 | "overrides": [],
27 | "strings": []
28 | }
29 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const path = require('path');
3 | const {CleanWebpackPlugin} = require('clean-webpack-plugin');
4 | const CopyWebpackPlugin = require('copy-webpack-plugin');
5 | const HtmlWebpackPlugin = require("html-webpack-plugin");
6 |
7 | const today = new Date();
8 | const buildDate = today.getFullYear() + "." + String(1 + today.getMonth()).padStart(2, '0') + "." + String(today.getDate()).padStart(2, '0');
9 |
10 | module.exports = (env, argv) => {
11 | const isProd = argv.mode === "production";
12 |
13 | return {
14 | entry: {
15 | QWC2App: path.resolve(__dirname, 'js', 'app.jsx')
16 | },
17 | output: {
18 | hashFunction: 'sha256',
19 | path: path.resolve(__dirname, 'prod'),
20 | filename: 'dist/QWC2App.js',
21 | assetModuleFilename: 'dist/[hash][ext][query]'
22 | },
23 | watchOptions: {
24 | ignored: /node_modules(\\|\/)(?!qwc2)/
25 | },
26 | devtool: isProd ? 'source-map' : 'inline-source-map',
27 | optimization: {
28 | minimize: isProd
29 | },
30 | devServer: {
31 | static: [
32 | {
33 | directory: path.resolve(__dirname, 'static'),
34 | publicPath: '/'
35 | }
36 | ],
37 | compress: true,
38 | hot: true,
39 | port: 8080
40 | },
41 | resolve: {
42 | extensions: [".mjs", ".js", ".jsx"],
43 | fallback: {
44 | path: require.resolve("path-browserify")
45 | }
46 | },
47 | snapshot: {
48 | managedPaths: [/(.*(\\|\/)node_modules(\\|\/)(?!qwc2))/]
49 | },
50 | plugins: [
51 | new CleanWebpackPlugin(),
52 | new webpack.DefinePlugin({
53 | 'process.env': {
54 | NODE_ENV: JSON.stringify(argv.mode),
55 | BuildDate: JSON.stringify(buildDate)
56 | }
57 | }),
58 | new webpack.NormalModuleReplacementPlugin(/openlayers$/, path.join(__dirname, "node_modules", "qwc2", "libs", "openlayers")),
59 | new HtmlWebpackPlugin({
60 | template: path.resolve(__dirname, "index.html"),
61 | build: buildDate,
62 | hash: true
63 | }),
64 | new CopyWebpackPlugin({
65 | patterns: [
66 | { from: 'static' }
67 | ]
68 | })
69 | ],
70 | module: {
71 | rules: [
72 | {
73 | test: /\.css$/,
74 | use: [
75 | {loader: 'style-loader'},
76 | {loader: 'css-loader'}
77 | ]
78 | },
79 | {
80 | test: /(.woff|.woff2|.png|.jpg|.gif|.svg|.glb)/,
81 | type: 'asset/inline'
82 | },
83 | {
84 | test: /\.jsx?$/,
85 | exclude: /node_modules(\\|\/)(?!qwc2)/,
86 | use: {
87 | loader: 'babel-loader',
88 | options: { babelrcRoots: ['.', path.resolve(__dirname, 'node_modules', 'qwc2')] }
89 | }
90 | },
91 | {
92 | test: /(.mjs|.js)$/,
93 | type: 'javascript/auto'
94 | },
95 | {
96 | test: /\.js$/,
97 | enforce: "pre",
98 | use: ["source-map-loader"]
99 | }
100 | ]
101 | }
102 | };
103 | };
104 |
--------------------------------------------------------------------------------