@opengis/gis 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +5 -5
  2. package/dist/index.css +1 -1
  3. package/dist/index.js +4012 -3482
  4. package/dist/index.umd.cjs +47 -47
  5. package/module/cls.json +6 -6
  6. package/module/gis/card/gis.maps.table/index.yml +14 -14
  7. package/module/gis/card/gis.maps.table/main_info.hbs +25 -25
  8. package/module/gis/card/gis.maps.table/maps_layers.hbs +19 -19
  9. package/module/gis/card/gis.metadata.table/index.yml +22 -22
  10. package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
  11. package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
  12. package/module/gis/card/gis.metadata.table/other.hbs +25 -25
  13. package/module/gis/card/gis.rasters.table/index.yml +11 -11
  14. package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
  15. package/module/gis/card/gis.registers.table/cls.hbs +36 -36
  16. package/module/gis/card/gis.registers.table/columns.hbs +89 -89
  17. package/module/gis/card/gis.registers.table/filters.hbs +80 -80
  18. package/module/gis/card/gis.registers.table/index.yml +23 -23
  19. package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
  20. package/module/gis/card/gis.registers.table/source.hbs +45 -45
  21. package/module/gis/card/gis.services.table/attributes.hbs +91 -91
  22. package/module/gis/card/gis.services.table/filters.hbs +83 -83
  23. package/module/gis/card/gis.services.table/index.yml +25 -25
  24. package/module/gis/card/gis.services.table/main_info.hbs +27 -27
  25. package/module/gis/card/gis.services.table/source.hbs +25 -25
  26. package/module/gis/cls/bool.yes_no.json +12 -12
  27. package/module/gis/cls/encoding.json +14 -14
  28. package/module/gis/cls/geom_type.json +14 -14
  29. package/module/gis/cls/gis.column_type.json +34 -34
  30. package/module/gis/cls/gis.column_view_type.json +26 -26
  31. package/module/gis/cls/gis.filter_type.json +22 -22
  32. package/module/gis/cls/language.json +10 -10
  33. package/module/gis/cls/meta.service_type.json +42 -42
  34. package/module/gis/cls/ogc.service.json +21 -21
  35. package/module/gis/cls/service_type.json +42 -42
  36. package/module/gis/cls/source_type.json +10 -10
  37. package/module/gis/cls/standarts.json +6 -6
  38. package/module/gis/cls/topic_category.json +106 -106
  39. package/module/gis/cls/update_frequency.json +29 -29
  40. package/module/gis/cls/view.json +21 -21
  41. package/module/gis/form/gis.group_list.form.json +17 -17
  42. package/module/gis/form/gis.maps.form.json +64 -64
  43. package/module/gis/form/gis.metadata.form.json +240 -240
  44. package/module/gis/form/gis.ogc_service.form.json +40 -40
  45. package/module/gis/form/gis.rasters.form.json +99 -99
  46. package/module/gis/form/gis.registers.form.json +110 -110
  47. package/module/gis/form/gis.registers_column.form.json +84 -84
  48. package/module/gis/form/gis.registers_filter.form.json +65 -65
  49. package/module/gis/form/gis.services.form.json +120 -120
  50. package/module/gis/form/gis.services_attributes.form.json +75 -75
  51. package/module/gis/form/gis.services_filter.form.json +65 -65
  52. package/module/gis/menu.json +43 -43
  53. package/module/gis/select/pg.columns.parent.sql +6 -6
  54. package/module/gis/select/pg.table_name.sql +17 -17
  55. package/module/gis/select/service_id.sql +1 -1
  56. package/module/gis/table/gis.group_list.table.json +35 -35
  57. package/module/gis/table/gis.maps.table.json +69 -69
  58. package/module/gis/table/gis.metadata.table.json +70 -70
  59. package/module/gis/table/gis.ogc_service.table.json +97 -91
  60. package/module/gis/table/gis.rasters.table.json +97 -97
  61. package/module/gis/table/gis.registers.table.json +79 -79
  62. package/module/gis/table/gis.services.table.json +99 -99
  63. package/module/gis/table/site.gis.registers.table.json +88 -88
  64. package/module/gis/table/site.gis.services.table.json +106 -106
  65. package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
  66. package/module/gis/tokens.yml +5 -5
  67. package/module/test/cls/bp_build_type.json +37 -37
  68. package/module/test/cls/ts.temp_status.json +18 -18
  69. package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
  70. package/module/test/cls/ts.temp_type.json +9 -9
  71. package/module/test/layer/bp.json +59 -59
  72. package/module/test/layer/bp1.yml +33 -33
  73. package/module/test/layer/individual.yml +53 -53
  74. package/module/test/layer/ts.linking_passport.yml +55 -55
  75. package/module/test/layer/ts.temp_structure.yml +50 -50
  76. package/module/test/map/addr.yml +21 -21
  77. package/module/test/map/bp_myo.json +43 -43
  78. package/module/test/map/bpf.json +43 -43
  79. package/module/test/map/main.json +36 -36
  80. package/module/test/map/mbd.json +91 -91
  81. package/module/test/map/ts.json +52 -52
  82. package/module/test/select/address_id.json +2 -2
  83. package/module/test/select/address_id.sql +7 -7
  84. package/module/test/table/data_address.street.table.json +69 -69
  85. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  86. package/package.json +69 -67
  87. package/plugin.js +44 -44
  88. package/server/migrations/maps.sql +30 -0
  89. package/server/migrations/ogc.sql +106 -106
  90. package/server/migrations/rasters.sql +263 -263
  91. package/server/migrations/services.sql +247 -247
  92. package/server/migrations/widgets.sql +20 -20
  93. package/server/plugins/crons.js +21 -21
  94. package/server/plugins/mapnik/funcs/createXML.js +72 -72
  95. package/server/plugins/mapnik/funcs/gdalWrapper.js +72 -72
  96. package/server/plugins/mapnik/funcs/map.proto +241 -241
  97. package/server/plugins/mapnik/funcs/mapnik.js +106 -106
  98. package/server/plugins/mapnik/funcs/rasterConfig.js +11 -11
  99. package/server/plugins/mapnik/funcs/rasterExists.js +20 -20
  100. package/server/plugins/mapnik/funcs/rasterInfo.js +109 -109
  101. package/server/plugins/mapnik/funcs/rasterVrt.js +55 -55
  102. package/server/plugins/mapnik/funcs/rasterXML.js +65 -65
  103. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  104. package/server/plugins/mapnik/utils/map.proto +241 -241
  105. package/server/plugins/vite.js +74 -74
  106. package/server/routes/gis/index.mjs +59 -59
  107. package/server/routes/gis/metadata/metadataXML.js +13 -13
  108. package/server/routes/gis/ogc/map.info.point.js +124 -124
  109. package/server/routes/gis/registers/add.registry.js +35 -35
  110. package/server/routes/gis/registers/del.registry.js +14 -14
  111. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  112. package/server/routes/gis/registers/funcs/columns.js +4 -4
  113. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  114. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  115. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +122 -122
  116. package/server/routes/gis/registers/gis.export.js +148 -148
  117. package/server/routes/gis/registers/gis.registry.js +38 -38
  118. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  119. package/server/routes/gis/registers/insert.columns.js +107 -107
  120. package/server/routes/gis/registers/insert.filters.js +110 -110
  121. package/server/routes/gis/registers/map.registry.js +79 -79
  122. package/server/routes/gis/services/add.service.js +64 -64
  123. package/server/routes/gis/services/del.service.js +12 -12
  124. package/server/routes/gis/services/get.layer.geom.js +27 -27
  125. package/server/routes/gis/services/get.services.col.js +33 -33
  126. package/server/routes/gis/services/get.services.js +84 -84
  127. package/server/routes/gis/services/legend.auto.js +77 -77
  128. package/server/routes/map/controllers/layerList.js +60 -60
  129. package/server/routes/map/controllers/map.js +123 -123
  130. package/server/routes/map/controllers/mapCatalog.js +72 -72
  131. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  132. package/server/routes/map/controllers/mapFeatures.js +128 -128
  133. package/server/routes/map/controllers/mapFormat.js +83 -83
  134. package/server/routes/map/controllers/mapTiles.js +152 -152
  135. package/server/routes/map/controllers/maps.js +15 -15
  136. package/server/routes/map/controllers/marker_icon.js +43 -43
  137. package/server/routes/map/controllers/rtile.js +134 -134
  138. package/server/routes/map/controllers/vtile.js +172 -172
  139. package/server/routes/map/index.mjs +129 -129
  140. package/server/routes/map/maps/add.map.js +41 -41
  141. package/server/routes/map/maps/del.map.js +18 -18
  142. package/server/routes/map/maps/get.map.js +86 -88
  143. package/server/routes/map/vtile1.js +170 -170
  144. package/server/routes/map/widgets/add.widget.js +38 -38
  145. package/server/routes/map/widgets/del.widget.js +22 -22
  146. package/server/routes/map/widgets/get.widget.js +40 -40
  147. package/server/routes/root.mjs +3 -3
  148. package/utils.js +11 -11
@@ -1,72 +1,72 @@
1
- import carto from 'carto';
2
-
3
- import rasterExists from './rasterExists.js';
4
- import rasterConfig from './rasterConfig.js';
5
-
6
- export default async function createXML({
7
- fullPath, srs, extent: bounds, send, size
8
- }) {
9
-
10
- const configFilePath = fullPath.replace('/preview1', '').replace('mosaic.vrt', 'config.yml')
11
- const configData = await rasterConfig(configFilePath);
12
-
13
- const rasterPreview = await rasterExists(fullPath, 1);
14
-
15
- if (rasterPreview) {
16
- send('preview:' + rasterPreview);
17
- }
18
-
19
- const rasterZoom = configData?.previewZoom ?? (rasterPreview && size?.includes('G') ? 16 : 0);
20
-
21
- const rasterScaling = 'bilinear';
22
-
23
- const Layer = [].concat([
24
- {
25
- id: 'test',
26
- name: 'test',
27
- geometry: 'raster',
28
- properties: { minzoom: +rasterZoom + 1 },
29
- srs: srs || '+proj=longlat +datum=WGS84 +no_defs ',
30
- Datasource: {
31
- // extent: bounds.join(','),
32
- file: fullPath,
33
- type: 'gdal',
34
- },
35
- }]).concat(
36
- rasterZoom && rasterPreview ? [{
37
- id: 'testpreview',
38
- name: 'testpreview',
39
- geometry: 'raster',
40
- properties: { maxzoom: +rasterZoom },
41
- srs: srs || '+proj=longlat +datum=WGS84 +no_defs ',
42
- Datasource: {
43
- // extent: bounds.join(','),
44
- file: rasterPreview,
45
- type: 'gdal',
46
- },
47
- }]
48
- : [],
49
- );
50
-
51
- const data = `#testpreview{raster-opacity:1; raster-scaling:${rasterScaling};} #test{raster-opacity:1;raster-scaling:${rasterScaling}; } `;
52
-
53
- const configJson = {
54
- format: 'png',
55
- Layer,
56
- srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
57
- bounds: bounds || [-180, -85.05112877980659, 180, 85.05112877980659],
58
- 'maximum-extent': '-20037508.34,-20037508.34,20037508.34,20037508.34',
59
- center: [0, 0, 2],
60
- minzoom: 1,
61
- maxzoom: 25,
62
- Stylesheet: [{ id: 'carto_css_style', data }],
63
- };
64
-
65
- const xmlFileText = new carto.Renderer().render(configJson);
66
-
67
- if (!xmlFileText) {
68
- return { status: 500, error: `Cant create xml for ${fullPath}` };
69
- }
70
-
71
- return xmlFileText;
72
- }
1
+ import carto from 'carto';
2
+
3
+ import rasterExists from './rasterExists.js';
4
+ import rasterConfig from './rasterConfig.js';
5
+
6
+ export default async function createXML({
7
+ fullPath, srs, extent: bounds, send, size
8
+ }) {
9
+
10
+ const configFilePath = fullPath.replace('/preview1', '').replace('mosaic.vrt', 'config.yml')
11
+ const configData = await rasterConfig(configFilePath);
12
+
13
+ const rasterPreview = await rasterExists(fullPath, 1);
14
+
15
+ if (rasterPreview) {
16
+ send('preview:' + rasterPreview);
17
+ }
18
+
19
+ const rasterZoom = configData?.previewZoom ?? (rasterPreview && size?.includes('G') ? 16 : 0);
20
+
21
+ const rasterScaling = 'bilinear';
22
+
23
+ const Layer = [].concat([
24
+ {
25
+ id: 'test',
26
+ name: 'test',
27
+ geometry: 'raster',
28
+ properties: { minzoom: +rasterZoom + 1 },
29
+ srs: srs || '+proj=longlat +datum=WGS84 +no_defs ',
30
+ Datasource: {
31
+ // extent: bounds.join(','),
32
+ file: fullPath,
33
+ type: 'gdal',
34
+ },
35
+ }]).concat(
36
+ rasterZoom && rasterPreview ? [{
37
+ id: 'testpreview',
38
+ name: 'testpreview',
39
+ geometry: 'raster',
40
+ properties: { maxzoom: +rasterZoom },
41
+ srs: srs || '+proj=longlat +datum=WGS84 +no_defs ',
42
+ Datasource: {
43
+ // extent: bounds.join(','),
44
+ file: rasterPreview,
45
+ type: 'gdal',
46
+ },
47
+ }]
48
+ : [],
49
+ );
50
+
51
+ const data = `#testpreview{raster-opacity:1; raster-scaling:${rasterScaling};} #test{raster-opacity:1;raster-scaling:${rasterScaling}; } `;
52
+
53
+ const configJson = {
54
+ format: 'png',
55
+ Layer,
56
+ srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
57
+ bounds: bounds || [-180, -85.05112877980659, 180, 85.05112877980659],
58
+ 'maximum-extent': '-20037508.34,-20037508.34,20037508.34,20037508.34',
59
+ center: [0, 0, 2],
60
+ minzoom: 1,
61
+ maxzoom: 25,
62
+ Stylesheet: [{ id: 'carto_css_style', data }],
63
+ };
64
+
65
+ const xmlFileText = new carto.Renderer().render(configJson);
66
+
67
+ if (!xmlFileText) {
68
+ return { status: 500, error: `Cant create xml for ${fullPath}` };
69
+ }
70
+
71
+ return xmlFileText;
72
+ }
@@ -1,72 +1,72 @@
1
- import path from 'path';
2
- import { randomUUID as uuidv4 } from 'crypto';
3
- import mapnik from './mapnik.js';
4
-
5
- import { config } from '@opengis/fastify-table/utils.js';
6
-
7
- const { mapServerAddress } = mapnik();
8
-
9
- function unixPath(data) {
10
- if (mapServerAddress && !mapServerAddress?.includes('localhost') && data?.[1] === ':') {
11
- return path.posix.join('/data/softpro', data.substr(3).replace(/\\/g, '/'));
12
- }
13
- return data;
14
- }
15
- const gdalWrapper = async ({
16
- name, pathIn, pathOut, parameters, funcs, send = console.log,
17
- }) => {
18
- const timeStart = new Date();
19
- const pref = name === 'gdalbuildvrt' ? ' -o ' : '';
20
- const cmd = `${name} ${parameters || ''} ${unixPath(pathIn) || ''} ${pref} ${unixPath(pathOut) || ''}`;
21
-
22
- if (mapServerAddress) {
23
- const out = pref + (unixPath(pathOut) || '');
24
- const obj = {
25
- name, path: unixPath(pathIn), out, params: parameters,
26
- };
27
-
28
- const time = Date.now();
29
- const { result, err } = await mapnik().gdal(obj);
30
-
31
- if (config.local && false) {
32
- send(cmd);
33
- send(JSON.stringify(obj));
34
- send(`${Date.now() - time}`);
35
- }
36
-
37
- if (err) {
38
- const logObj = {
39
- level: 'ERROR',
40
- uuid: uuidv4(),
41
- name: 'GDAL',
42
- subname: 'GDALWRAPPER',
43
- msec: new Date() - timeStart,
44
- param: { cmd },
45
- status: '500',
46
- response: { error: err },
47
- };
48
- // log.error({ name: 'gdal', ...logObj });
49
- send(err);
50
- }
51
- return { err, result };
52
- }
53
-
54
- const result = await funcs.exec(cmd, { send });
55
- if (!result) {
56
- const logObj = {
57
- level: 'ERROR',
58
- uuid: uuidv4(),
59
- name: 'GDAL',
60
- subname: 'GDALWRAPPER',
61
- msec: new Date() - timeStart,
62
- param: { cmd },
63
- status: '500',
64
- response: { error: `Cant execute ${cmd}` },
65
- };
66
- // log.error({ name: 'gdal', ...logObj });
67
- return { err: `Cant execute ${cmd}` };
68
- }
69
- return { result };
70
- };
71
-
72
- export default gdalWrapper;
1
+ import path from 'path';
2
+ import { randomUUID as uuidv4 } from 'crypto';
3
+ import mapnik from './mapnik.js';
4
+
5
+ import { config } from '@opengis/fastify-table/utils.js';
6
+
7
+ const { mapServerAddress } = mapnik();
8
+
9
+ function unixPath(data) {
10
+ if (mapServerAddress && !mapServerAddress?.includes('localhost') && data?.[1] === ':') {
11
+ return path.posix.join('/data/softpro', data.substr(3).replace(/\\/g, '/'));
12
+ }
13
+ return data;
14
+ }
15
+ const gdalWrapper = async ({
16
+ name, pathIn, pathOut, parameters, funcs, send = console.log,
17
+ }) => {
18
+ const timeStart = new Date();
19
+ const pref = name === 'gdalbuildvrt' ? ' -o ' : '';
20
+ const cmd = `${name} ${parameters || ''} ${unixPath(pathIn) || ''} ${pref} ${unixPath(pathOut) || ''}`;
21
+
22
+ if (mapServerAddress) {
23
+ const out = pref + (unixPath(pathOut) || '');
24
+ const obj = {
25
+ name, path: unixPath(pathIn), out, params: parameters,
26
+ };
27
+
28
+ const time = Date.now();
29
+ const { result, err } = await mapnik().gdal(obj);
30
+
31
+ if (config.local && false) {
32
+ send(cmd);
33
+ send(JSON.stringify(obj));
34
+ send(`${Date.now() - time}`);
35
+ }
36
+
37
+ if (err) {
38
+ const logObj = {
39
+ level: 'ERROR',
40
+ uuid: uuidv4(),
41
+ name: 'GDAL',
42
+ subname: 'GDALWRAPPER',
43
+ msec: new Date() - timeStart,
44
+ param: { cmd },
45
+ status: '500',
46
+ response: { error: err },
47
+ };
48
+ // log.error({ name: 'gdal', ...logObj });
49
+ send(err);
50
+ }
51
+ return { err, result };
52
+ }
53
+
54
+ const result = await funcs.exec(cmd, { send });
55
+ if (!result) {
56
+ const logObj = {
57
+ level: 'ERROR',
58
+ uuid: uuidv4(),
59
+ name: 'GDAL',
60
+ subname: 'GDALWRAPPER',
61
+ msec: new Date() - timeStart,
62
+ param: { cmd },
63
+ status: '500',
64
+ response: { error: `Cant execute ${cmd}` },
65
+ };
66
+ // log.error({ name: 'gdal', ...logObj });
67
+ return { err: `Cant execute ${cmd}` };
68
+ }
69
+ return { result };
70
+ };
71
+
72
+ export default gdalWrapper;