@opengis/gis 0.2.45 → 0.2.47

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 (159) hide show
  1. package/README.md +5 -5
  2. package/dist/index.css +1 -1
  3. package/dist/index.js +6244 -5599
  4. package/dist/index.umd.cjs +72 -52
  5. package/module/cls.json +6 -6
  6. package/module/gis/card/gis.metadata.table/index.yml +22 -22
  7. package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
  8. package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
  9. package/module/gis/card/gis.metadata.table/other.hbs +25 -25
  10. package/module/gis/card/gis.rasters.table/index.yml +11 -11
  11. package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
  12. package/module/gis/card/gis.registers.table/cls.hbs +36 -36
  13. package/module/gis/card/gis.registers.table/columns.hbs +89 -89
  14. package/module/gis/card/gis.registers.table/filters.hbs +80 -80
  15. package/module/gis/card/gis.registers.table/index.yml +23 -23
  16. package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
  17. package/module/gis/card/gis.registers.table/source.hbs +45 -45
  18. package/module/gis/card/gis.services.table/attributes.hbs +91 -91
  19. package/module/gis/card/gis.services.table/filters.hbs +83 -83
  20. package/module/gis/card/gis.services.table/index.yml +25 -25
  21. package/module/gis/card/gis.services.table/main_info.hbs +27 -27
  22. package/module/gis/card/gis.services.table/source.hbs +25 -25
  23. package/module/gis/cls/bool.yes_no.json +12 -12
  24. package/module/gis/cls/encoding.json +14 -14
  25. package/module/gis/cls/geom_type.json +14 -14
  26. package/module/gis/cls/gis.column_type.json +34 -34
  27. package/module/gis/cls/gis.column_view_type.json +26 -26
  28. package/module/gis/cls/gis.filter_type.json +22 -22
  29. package/module/gis/cls/language.json +10 -10
  30. package/module/gis/cls/meta.service_type.json +42 -42
  31. package/module/gis/cls/ogc.service.json +21 -21
  32. package/module/gis/cls/service_type.json +42 -42
  33. package/module/gis/cls/source_type.json +10 -10
  34. package/module/gis/cls/standarts.json +6 -6
  35. package/module/gis/cls/topic_category.json +106 -106
  36. package/module/gis/cls/update_frequency.json +29 -29
  37. package/module/gis/cls/view.json +21 -21
  38. package/module/gis/form/gis.cartocss.form.json +45 -45
  39. package/module/gis/form/gis.group_list.form.json +17 -17
  40. package/module/gis/form/gis.maps.form.json +61 -61
  41. package/module/gis/form/gis.metadata.form.json +240 -240
  42. package/module/gis/form/gis.ogc_service.form.json +45 -45
  43. package/module/gis/form/gis.rasters.form.json +103 -103
  44. package/module/gis/form/gis.registers.form.json +124 -124
  45. package/module/gis/form/gis.registers_column.form.json +84 -84
  46. package/module/gis/form/gis.registers_filter.form.json +65 -65
  47. package/module/gis/form/gis.services.form.json +111 -111
  48. package/module/gis/form/gis.services_attributes.form.json +75 -75
  49. package/module/gis/form/gis.services_filter.form.json +65 -65
  50. package/module/gis/menu.json +43 -43
  51. package/module/gis/select/pg.columns.parent.sql +6 -6
  52. package/module/gis/select/pg.table_name.sql +17 -17
  53. package/module/gis/select/service_id.sql +1 -1
  54. package/module/gis/table/gis.cartocss.table.json +62 -62
  55. package/module/gis/table/gis.group_list.table.json +35 -35
  56. package/module/gis/table/gis.maps.table.json +108 -108
  57. package/module/gis/table/gis.metadata.table.json +70 -70
  58. package/module/gis/table/gis.ogc_service.table.json +98 -98
  59. package/module/gis/table/gis.rasters.table.json +101 -101
  60. package/module/gis/table/gis.registers.table.json +144 -144
  61. package/module/gis/table/gis.services.table.json +121 -121
  62. package/module/gis/table/site.gis.registers.table.json +88 -88
  63. package/module/gis/table/site.gis.services.table.json +106 -106
  64. package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
  65. package/module/gis/tokens.yml +5 -5
  66. package/module/test/cls/bp_build_type.json +37 -37
  67. package/module/test/cls/doc_status.json +31 -31
  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/select/core.user_uid.sql +1 -1
  85. package/module/test/table/data_address.street.table.json +69 -69
  86. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  87. package/package.json +75 -75
  88. package/plugin.js +45 -44
  89. package/server/migrations/maps.sql +30 -30
  90. package/server/migrations/ogc.sql +106 -106
  91. package/server/migrations/rasters.sql +263 -263
  92. package/server/migrations/services.sql +247 -247
  93. package/server/migrations/widgets.sql +20 -20
  94. package/server/plugins/crons.js +21 -21
  95. package/server/plugins/mapnik/funcs/mapnik.js +111 -106
  96. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  97. package/server/plugins/mapnik/map.proto +151 -0
  98. package/server/plugins/vite.js +74 -74
  99. package/server/routes/gis/cartocss/add.cartocss.js +152 -18
  100. package/server/routes/gis/cartocss/get.cartocss.js +12 -12
  101. package/server/routes/gis/dashboard.js +29 -29
  102. package/server/routes/gis/index.mjs +73 -73
  103. package/server/routes/gis/metadata/metadataXML.js +13 -13
  104. package/server/routes/gis/ogc/map.info.point.js +124 -124
  105. package/server/routes/gis/registers/add.registry.js +35 -35
  106. package/server/routes/gis/registers/del.registry.js +14 -14
  107. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  108. package/server/routes/gis/registers/funcs/columns.js +4 -4
  109. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  110. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  111. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +145 -145
  112. package/server/routes/gis/registers/gis.export.js +148 -148
  113. package/server/routes/gis/registers/gis.registry.js +64 -64
  114. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  115. package/server/routes/gis/registers/insert.columns.js +107 -107
  116. package/server/routes/gis/registers/insert.filters.js +110 -110
  117. package/server/routes/gis/registers/map.registry.js +79 -79
  118. package/server/routes/gis/services/add.service.js +64 -64
  119. package/server/routes/gis/services/del.service.js +12 -12
  120. package/server/routes/gis/services/get.layer.geom.js +27 -27
  121. package/server/routes/gis/services/get.services.col.js +33 -33
  122. package/server/routes/gis/services/get.services.js +84 -84
  123. package/server/routes/gis/services/legend.auto.js +77 -77
  124. package/server/routes/map/controllers/geojson.js +187 -187
  125. package/server/routes/map/controllers/jsonData.js +205 -205
  126. package/server/routes/map/controllers/layerList.js +60 -60
  127. package/server/routes/map/controllers/map.js +123 -123
  128. package/server/routes/map/controllers/mapCatalog.js +72 -72
  129. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  130. package/server/routes/map/controllers/mapFeatures.js +128 -128
  131. package/server/routes/map/controllers/mapFormat.js +83 -83
  132. package/server/routes/map/controllers/mapTiles.js +152 -152
  133. package/server/routes/map/controllers/maps.js +15 -15
  134. package/server/routes/map/controllers/marker_icon.js +43 -43
  135. package/server/routes/map/controllers/vtile.js +172 -172
  136. package/server/routes/map/index.mjs +142 -142
  137. package/server/routes/map/maps/add.map.js +43 -43
  138. package/server/routes/map/maps/del.map.js +18 -18
  139. package/server/routes/map/maps/get.map.js +80 -80
  140. package/server/routes/map/vtile1.js +170 -170
  141. package/server/routes/map/widgets/add.widget.js +38 -38
  142. package/server/routes/map/widgets/del.widget.js +22 -22
  143. package/server/routes/map/widgets/get.widget.js +40 -40
  144. package/server/routes/mapnik/controllers/createXML.js +61 -0
  145. package/server/routes/mapnik/controllers/rtile.js +86 -0
  146. package/server/routes/mapnik/controllers/uploadRaster.js +159 -0
  147. package/server/routes/mapnik/index.js +16 -0
  148. package/server/routes/root.mjs +3 -3
  149. package/utils.js +11 -11
  150. package/server/plugins/mapnik/funcs/createXML.js +0 -72
  151. package/server/plugins/mapnik/funcs/gdalWrapper.js +0 -72
  152. package/server/plugins/mapnik/funcs/map.proto +0 -241
  153. package/server/plugins/mapnik/funcs/rasterConfig.js +0 -11
  154. package/server/plugins/mapnik/funcs/rasterExists.js +0 -21
  155. package/server/plugins/mapnik/funcs/rasterInfo.js +0 -109
  156. package/server/plugins/mapnik/funcs/rasterVrt.js +0 -56
  157. package/server/plugins/mapnik/funcs/rasterXML.js +0 -65
  158. package/server/plugins/mapnik/utils/map.proto +0 -241
  159. package/server/routes/map/controllers/rtile.js +0 -134
@@ -1,18 +1,152 @@
1
- export default async function addCartocss(req, reply) {
2
- const { pg, body, params } = req;
3
-
4
- const { id } = params;
5
- if (!id) return reply.status(400).send({ message: 'id is empty', status: 400 });
6
-
7
- const { config, style } = body;
8
- if (!config && !style) return reply.status(400).send({ message: 'config, style is empty', status: 400 });
9
-
10
- const selectCartocss = `select cartocss_id from gis.cartocss where cartocss_id=$1`;
11
- const cartocss = await pg.one(selectCartocss, [id]);
12
- if (!cartocss) return reply.status(404).send({ message: 'cartocss not found', status: 404 });
13
-
14
- const updateCartocss = `update gis.cartocss set config=$2::jsonb, style=$3::text where cartocss_id=$1`;
15
- await pg.query(updateCartocss, [id, config, style]);
16
-
17
- return reply.status(200).send({ message: 'cartocss updated', status: 200 });
18
- }
1
+ import carto from 'carto';
2
+
3
+ import { dataUpdate } from '@opengis/fastify-table/utils.js';
4
+ import mapnik from '../../../plugins/mapnik/funcs/mapnik.js';
5
+
6
+ const { UploadXML } = mapnik();
7
+
8
+ const srsList = {};
9
+
10
+ const getGeomColumn = (geoms, customColumn) => {
11
+ if (customColumn && geoms.includes(customColumn)) {
12
+ return customColumn;
13
+ }
14
+ if (geoms.includes('geom')) {
15
+ return 'geom';
16
+ }
17
+ return geoms[0];
18
+ };
19
+
20
+ async function cartoBounds({ id, dataset }, pg) {
21
+ const sqlBounds = dataset.map(el => ({ tbl: el.table.split('.'), geom: el.gcol || 'geom' })).map(({ tbl, geom }) => `select ST_EstimatedExtent('${tbl[0]}','${tbl[1]}', '${geom}')`);
22
+
23
+ const geom = await pg.query(
24
+ `update gis.style set
25
+ geom=(select st_extent(st_estimatedextent) from ( ${sqlBounds.join(' union all ')})q )
26
+ where style_id=$1 returning geom::box2d`,
27
+ [id],
28
+ ).then(e => e.rows?.[0]?.geom);
29
+
30
+ const bounds = geom
31
+ ? geom.replace(/[A-Z\)\(]+/g, '').split(/[ ,]+/).map(el => el - 0)
32
+ : null;
33
+
34
+ if (!bounds) {
35
+ throw new Error('empty bounds');
36
+ }
37
+
38
+ return bounds;
39
+ }
40
+
41
+ function cartoData(el, extent, pg) {
42
+ const minzoom = el.zoom ? (+el.zoom || 5) : 5;
43
+ const maxzoom = el.maxzoom ? (+el.maxzoom || 22) : 22;
44
+ const view = `(select ${el.columns || '1'}, ${el.gcol} from ${el.table} where ${el.query || 'true'} ) as data`;
45
+ const layerBound = extent || [-180, -85, 180, 85];
46
+
47
+ return {
48
+ id: el.caption,
49
+ name: el.caption,
50
+ properties: { minzoom, maxzoom },
51
+ srs: el.proj4text || '+proj=longlat +datum=WGS84 +no_defs',
52
+ Datasource: {
53
+ simplify_geometries: true,
54
+ type: 'postgis',
55
+ extent: layerBound.join(','),
56
+ table: view,
57
+ geometry_field: el.gcol,
58
+ host: pg.options?.host || 'localhost',
59
+ dbname: pg.options?.database || 'postgres',
60
+ port: pg.options?.port || 5432,
61
+ user: pg.options?.user || 'postgres',
62
+ password: pg.options?.password || 'postgres',
63
+ },
64
+ };
65
+ }
66
+
67
+ async function uploadXML({ id, dataset, style }, pg) {
68
+ if (!id || !dataset?.length) {
69
+ return null;
70
+ }
71
+ await Promise.all(dataset.filter((el) => el.active !== false).map(async el => {
72
+ const { table } = el;
73
+
74
+ const geoms = await pg.query(`SELECT json_agg(attname) as geoms FROM pg_attribute
75
+ where attrelid = to_regclass($1::text)
76
+ and attnum > 0
77
+ AND NOT attisdropped
78
+ and atttypid::regtype::text ='geometry'`, [table]).then(e => e.rows?.[0]?.geoms || []);
79
+
80
+ const gcol = getGeomColumn(geoms, el.gcol);
81
+ Object.assign(el, { gcol });
82
+
83
+ const srid = el.srid ? el.srid
84
+ : await pg.query(`select st_srid(${gcol}) as srid from ${table} where ${gcol} is not null limit 1`).then(e => e.rows[0]?.srid);
85
+
86
+ if (srid && !srsList[srid] && (srid - 0 > 0)) {
87
+ srsList[srid] = await pg.query(`SELECT proj4text from spatial_ref_sys where srid=$1`, [srid])
88
+ .then(e => e.rows[0]?.proj4text);
89
+ }
90
+ Object.assign(el, { gcol, proj4text: srsList[srid] });
91
+ }));
92
+
93
+ const bounds = await cartoBounds({ id, dataset }, pg);
94
+
95
+ const arrayLayers = dataset.filter((el) => el.active !== false).map((el) => cartoData(el, bounds, pg));
96
+
97
+ const configJson = {
98
+ format: 'png',
99
+ Layer: arrayLayers.reverse(),
100
+ 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',
101
+ bounds,
102
+ 'maximum-extent': '-20037508.34,-20037508.34,20037508.34,20037508.34',
103
+ center: [0, 0, 2],
104
+ minzoom: 1,
105
+ maxzoom: 25,
106
+ Stylesheet: [{
107
+ id: 'carto_css_style',
108
+ data: style || '',
109
+ }],
110
+ };
111
+
112
+ // generate
113
+ const res = new carto.Renderer().render(configJson);
114
+ const xmlFileText = typeof res === 'string' ? res : res?.data;
115
+ if (!xmlFileText) {
116
+ throw new Error('xml generation error');
117
+ }
118
+ const { status } = await UploadXML({
119
+ name: id,
120
+ xml: xmlFileText,
121
+ });
122
+ if (status !== 'success') {
123
+ throw new Error('xml upload error');
124
+ }
125
+ return xmlFileText;
126
+ }
127
+
128
+ export default async function addCartocss(req, reply) {
129
+ const { pg, body, params } = req;
130
+
131
+ const { id } = params;
132
+ if (!id) return reply.status(400).send({ message: 'id is empty', status: 400 });
133
+
134
+ const { config: dataset, style } = body;
135
+ if (!dataset && !style) return reply.status(400).send({ message: 'config, style is empty', status: 400 });
136
+
137
+ const selectCartocss = `select cartocss_id from gis.cartocss where cartocss_id=$1`;
138
+ const cartocss = await pg.one(selectCartocss, [id]);
139
+ if (!cartocss) return reply.status(404).send({ message: 'cartocss not found', status: 404 });
140
+
141
+ await dataUpdate({
142
+ pg,
143
+ id,
144
+ table: 'gis.cartocss',
145
+ data: { config: dataset, style },
146
+ uid: req.user?.uid,
147
+ });
148
+
149
+ await uploadXML({ id, dataset, style }, pg);
150
+
151
+ return reply.status(200).send({ message: 'cartocss updated', status: 200 });
152
+ }
@@ -1,12 +1,12 @@
1
- export default async function getCartocss(req, reply) {
2
- const { pg, params } = req;
3
-
4
- const { id } = params;
5
- if (!id) return reply.status(400).send({ message: 'id is empty', status: 400 });
6
-
7
- const selectCartocss = `select cartocss_key,name,description,config,style,group_id,is_public,enabled from gis.cartocss where cartocss_id='${id}'`;
8
- const cartocss = await pg.one(selectCartocss).catch(() => null);
9
- if (!cartocss) return reply.status(404).send({ message: 'cartocss not found', status: 404 });
10
-
11
- return reply.status(200).send({ message: cartocss, status: 200 });
12
- }
1
+ export default async function getCartocss(req, reply) {
2
+ const { pg, params } = req;
3
+
4
+ const { id } = params;
5
+ if (!id) return reply.status(400).send({ message: 'id is empty', status: 400 });
6
+
7
+ const selectCartocss = `select cartocss_key,name,description,config,style,group_id,is_public,enabled from gis.cartocss where cartocss_id='${id}'`;
8
+ const cartocss = await pg.one(selectCartocss).catch(() => null);
9
+ if (!cartocss) return reply.status(404).send({ message: 'cartocss not found', status: 404 });
10
+
11
+ return reply.status(200).send({ message: cartocss, status: 200 });
12
+ }
@@ -1,29 +1,29 @@
1
- import { pgClients } from '@opengis/fastify-table/utils.js';
2
-
3
- export default async function getDashboard({ pg = pgClients.client }) {
4
- try {
5
- const statsQuery = `
6
- SELECT
7
- (SELECT COUNT(*)::int FROM gis.services) as services_count,
8
- (SELECT COUNT(*)::int FROM gis.registers) as registers_count,
9
- (SELECT COUNT(*)::int FROM gis.maps) as maps_count,
10
- (SELECT COUNT(*)::int FROM gis.ogc_service) as ogc_count
11
- `;
12
-
13
- const result = await pg.query(statsQuery);
14
- const stats = result?.rows?.[0] || {};
15
-
16
- return {
17
- cards: {
18
- services: stats.services_count || 0,
19
- registers: stats.registers_count || 0,
20
- maps: stats.maps_count || 0,
21
- ogc: stats.ogc_count || 0,
22
- },
23
- };
24
- }
25
- catch (error) {
26
- console.error('Dashboard error:', error);
27
- return { status: 500, error: 'Internal Server Error' };
28
- }
29
- }
1
+ import { pgClients } from '@opengis/fastify-table/utils.js';
2
+
3
+ export default async function getDashboard({ pg = pgClients.client }) {
4
+ try {
5
+ const statsQuery = `
6
+ SELECT
7
+ (SELECT COUNT(*)::int FROM gis.services) as services_count,
8
+ (SELECT COUNT(*)::int FROM gis.registers) as registers_count,
9
+ (SELECT COUNT(*)::int FROM gis.maps) as maps_count,
10
+ (SELECT COUNT(*)::int FROM gis.ogc_service) as ogc_count
11
+ `;
12
+
13
+ const result = await pg.query(statsQuery);
14
+ const stats = result?.rows?.[0] || {};
15
+
16
+ return {
17
+ cards: {
18
+ services: stats.services_count || 0,
19
+ registers: stats.registers_count || 0,
20
+ maps: stats.maps_count || 0,
21
+ ogc: stats.ogc_count || 0,
22
+ },
23
+ };
24
+ }
25
+ catch (error) {
26
+ console.error('Dashboard error:', error);
27
+ return { status: 500, error: 'Internal Server Error' };
28
+ }
29
+ }
@@ -1,73 +1,73 @@
1
- import insertColumns from './registers/insert.columns.js';
2
- import insertFilters from './registers/insert.filters.js';
3
-
4
- import metadataXML from './metadata/metadataXML.js';
5
-
6
- import getLayerGeom from './services/get.layer.geom.js';
7
- import gisRegistry from './registers/gis.registry.js';
8
- import gisRegistryList from './registers/gis.registry.list.js';
9
- import mapRegistry from './registers/map.registry.js';
10
- import gisExport from './registers/gis.export.js';
11
-
12
- import getServices from './services/get.services.js';
13
- import deleteService from './services/del.service.js';
14
- import addService from './services/add.service.js';
15
-
16
- import addGisRegistry from './registers/add.registry.js';
17
- import deleteGisRegistry from './registers/del.registry.js';
18
- import getServicesCol from './services/get.services.col.js';
19
- import legendAuto from './services/legend.auto.js';
20
- import mapInfoPoint from './ogc/map.info.point.js';
21
- import getDashboard from './dashboard.js';
22
-
23
- import getCartocss from './cartocss/get.cartocss.js';
24
- import addCartocss from './cartocss/add.cartocss.js';
25
-
26
- const mapInfoPointSchema = {
27
- querystring: {
28
- type: 'object',
29
- properties: {
30
- x: { type: 'number' },
31
- y: { type: 'number' },
32
- layers: { type: 'string' },
33
- index: { type: 'number', minimum: 0 },
34
- },
35
- required: ['x', 'y', 'layers'],
36
- },
37
- };
38
-
39
- const params = { config: { package: 'gis' } };
40
- const publicParams = { config: { policy: 'L0', package: 'gis' } };
41
-
42
- async function route(app) {
43
- app.put('/insert-columns/:token', params, insertColumns);
44
- app.put('/insert-filters/:token', params, insertFilters);
45
- app.get('/gis-registry/:slug', publicParams, gisRegistry);
46
- app.get('/gis-registry/:slug/:objectId', publicParams, gisRegistry);
47
- app.get('/gis-registry', publicParams, gisRegistryList);
48
- app.post('/gis-registry', publicParams, addGisRegistry);
49
- app.put('/gis-registry/:slug', publicParams, addGisRegistry);
50
- app.delete('/gis-registry/:slug', publicParams, deleteGisRegistry);
51
- app.get('/map-registry/:slug/:id', publicParams, mapRegistry);
52
-
53
- app.get('/xml/:id', publicParams, metadataXML);
54
-
55
- app.get('/get-layer-geom/:id', publicParams, getLayerGeom);
56
-
57
- app.get('/gis-export/:type/:slug', publicParams, gisExport);
58
-
59
- app.get('/gis-service/:id?', publicParams, getServices);
60
- app.get('/gis-service/:id/:col', publicParams, getServicesCol);
61
- app.post('/gis-service/:id?', publicParams, addService);
62
- app.put('/gis-service/:id', publicParams, addService);
63
- app.delete('/gis-service/:id', publicParams, deleteService);
64
- app.get('/legend-auto/:id', publicParams, legendAuto);
65
-
66
- app.get('/map-info-point', { ...publicParams, schema: mapInfoPointSchema }, mapInfoPoint);
67
-
68
- app.get('/dashboard', publicParams, getDashboard);
69
-
70
- app.get('/cartocss/:id', publicParams, getCartocss);
71
- app.post('/cartocss/:id', publicParams, addCartocss);
72
- }
73
- export default route;
1
+ import insertColumns from './registers/insert.columns.js';
2
+ import insertFilters from './registers/insert.filters.js';
3
+
4
+ import metadataXML from './metadata/metadataXML.js';
5
+
6
+ import getLayerGeom from './services/get.layer.geom.js';
7
+ import gisRegistry from './registers/gis.registry.js';
8
+ import gisRegistryList from './registers/gis.registry.list.js';
9
+ import mapRegistry from './registers/map.registry.js';
10
+ import gisExport from './registers/gis.export.js';
11
+
12
+ import getServices from './services/get.services.js';
13
+ import deleteService from './services/del.service.js';
14
+ import addService from './services/add.service.js';
15
+
16
+ import addGisRegistry from './registers/add.registry.js';
17
+ import deleteGisRegistry from './registers/del.registry.js';
18
+ import getServicesCol from './services/get.services.col.js';
19
+ import legendAuto from './services/legend.auto.js';
20
+ import mapInfoPoint from './ogc/map.info.point.js';
21
+ import getDashboard from './dashboard.js';
22
+
23
+ import getCartocss from './cartocss/get.cartocss.js';
24
+ import addCartocss from './cartocss/add.cartocss.js';
25
+
26
+ const mapInfoPointSchema = {
27
+ querystring: {
28
+ type: 'object',
29
+ properties: {
30
+ x: { type: 'number' },
31
+ y: { type: 'number' },
32
+ layers: { type: 'string' },
33
+ index: { type: 'number', minimum: 0 },
34
+ },
35
+ required: ['x', 'y', 'layers'],
36
+ },
37
+ };
38
+
39
+ const params = { config: { package: 'gis' } };
40
+ const publicParams = { config: { policy: 'L0', package: 'gis' } };
41
+
42
+ async function route(app) {
43
+ app.put('/insert-columns/:token', params, insertColumns);
44
+ app.put('/insert-filters/:token', params, insertFilters);
45
+ app.get('/gis-registry/:slug', publicParams, gisRegistry);
46
+ app.get('/gis-registry/:slug/:objectId', publicParams, gisRegistry);
47
+ app.get('/gis-registry', publicParams, gisRegistryList);
48
+ app.post('/gis-registry', publicParams, addGisRegistry);
49
+ app.put('/gis-registry/:slug', publicParams, addGisRegistry);
50
+ app.delete('/gis-registry/:slug', publicParams, deleteGisRegistry);
51
+ app.get('/map-registry/:slug/:id', publicParams, mapRegistry);
52
+
53
+ app.get('/xml/:id', publicParams, metadataXML);
54
+
55
+ app.get('/get-layer-geom/:id', publicParams, getLayerGeom);
56
+
57
+ app.get('/gis-export/:type/:slug', publicParams, gisExport);
58
+
59
+ app.get('/gis-service/:id?', publicParams, getServices);
60
+ app.get('/gis-service/:id/:col', publicParams, getServicesCol);
61
+ app.post('/gis-service/:id?', publicParams, addService);
62
+ app.put('/gis-service/:id', publicParams, addService);
63
+ app.delete('/gis-service/:id', publicParams, deleteService);
64
+ app.get('/legend-auto/:id', publicParams, legendAuto);
65
+
66
+ app.get('/map-info-point', { ...publicParams, schema: mapInfoPointSchema }, mapInfoPoint);
67
+
68
+ app.get('/dashboard', publicParams, getDashboard);
69
+
70
+ app.get('/cartocss/:id', publicParams, getCartocss);
71
+ app.post('/cartocss/:id', publicParams, addCartocss);
72
+ }
73
+ export default route;
@@ -1,13 +1,13 @@
1
- import { handlebars, getTemplate } from "@opengis/fastify-table/utils.js";
2
-
3
- export default async function insertColumns(req,reply) {
4
- const { params} = req;
5
- const { id } = params;
6
-
7
- const pt = await getTemplate('templates','ISO19136_2017_gml_template');
8
- const data = await handlebars.compile(pt)({ id: id });
9
-
10
- return reply
11
- .header('Content-Type', 'text/xml; charset=utf-8')
12
- .send(data);
13
- }
1
+ import { handlebars, getTemplate } from "@opengis/fastify-table/utils.js";
2
+
3
+ export default async function insertColumns(req,reply) {
4
+ const { params} = req;
5
+ const { id } = params;
6
+
7
+ const pt = await getTemplate('templates','ISO19136_2017_gml_template');
8
+ const data = await handlebars.compile(pt)({ id: id });
9
+
10
+ return reply
11
+ .header('Content-Type', 'text/xml; charset=utf-8')
12
+ .send(data);
13
+ }