@opengis/gis 0.2.45 → 0.2.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.css +1 -1
- package/dist/index.js +6238 -5599
- package/dist/index.umd.cjs +72 -52
- package/module/cls.json +6 -6
- package/module/gis/card/gis.metadata.table/index.yml +22 -22
- package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
- package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
- package/module/gis/card/gis.metadata.table/other.hbs +25 -25
- package/module/gis/card/gis.rasters.table/index.yml +11 -11
- package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
- package/module/gis/card/gis.registers.table/cls.hbs +36 -36
- package/module/gis/card/gis.registers.table/columns.hbs +89 -89
- package/module/gis/card/gis.registers.table/filters.hbs +80 -80
- package/module/gis/card/gis.registers.table/index.yml +23 -23
- package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
- package/module/gis/card/gis.registers.table/source.hbs +45 -45
- package/module/gis/card/gis.services.table/attributes.hbs +91 -91
- package/module/gis/card/gis.services.table/filters.hbs +83 -83
- package/module/gis/card/gis.services.table/index.yml +25 -25
- package/module/gis/card/gis.services.table/main_info.hbs +27 -27
- package/module/gis/card/gis.services.table/source.hbs +25 -25
- package/module/gis/cls/bool.yes_no.json +12 -12
- package/module/gis/cls/encoding.json +14 -14
- package/module/gis/cls/geom_type.json +14 -14
- package/module/gis/cls/gis.column_type.json +34 -34
- package/module/gis/cls/gis.column_view_type.json +26 -26
- package/module/gis/cls/gis.filter_type.json +22 -22
- package/module/gis/cls/language.json +10 -10
- package/module/gis/cls/meta.service_type.json +42 -42
- package/module/gis/cls/ogc.service.json +21 -21
- package/module/gis/cls/service_type.json +42 -42
- package/module/gis/cls/source_type.json +10 -10
- package/module/gis/cls/standarts.json +6 -6
- package/module/gis/cls/topic_category.json +106 -106
- package/module/gis/cls/update_frequency.json +29 -29
- package/module/gis/cls/view.json +21 -21
- package/module/gis/form/gis.cartocss.form.json +45 -45
- package/module/gis/form/gis.group_list.form.json +17 -17
- package/module/gis/form/gis.maps.form.json +61 -61
- package/module/gis/form/gis.metadata.form.json +240 -240
- package/module/gis/form/gis.ogc_service.form.json +45 -45
- package/module/gis/form/gis.rasters.form.json +103 -103
- package/module/gis/form/gis.registers.form.json +124 -124
- package/module/gis/form/gis.registers_column.form.json +84 -84
- package/module/gis/form/gis.registers_filter.form.json +65 -65
- package/module/gis/form/gis.services.form.json +111 -111
- package/module/gis/form/gis.services_attributes.form.json +75 -75
- package/module/gis/form/gis.services_filter.form.json +65 -65
- package/module/gis/menu.json +43 -43
- package/module/gis/select/pg.columns.parent.sql +6 -6
- package/module/gis/select/pg.table_name.sql +17 -17
- package/module/gis/select/service_id.sql +1 -1
- package/module/gis/table/gis.cartocss.table.json +62 -62
- package/module/gis/table/gis.group_list.table.json +35 -35
- package/module/gis/table/gis.maps.table.json +108 -108
- package/module/gis/table/gis.metadata.table.json +70 -70
- package/module/gis/table/gis.ogc_service.table.json +98 -98
- package/module/gis/table/gis.rasters.table.json +101 -101
- package/module/gis/table/gis.registers.table.json +144 -144
- package/module/gis/table/gis.services.table.json +121 -121
- package/module/gis/table/site.gis.registers.table.json +88 -88
- package/module/gis/table/site.gis.services.table.json +106 -106
- package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
- package/module/gis/tokens.yml +5 -5
- package/module/test/cls/bp_build_type.json +37 -37
- package/module/test/cls/doc_status.json +31 -31
- package/module/test/cls/ts.temp_status.json +18 -18
- package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
- package/module/test/cls/ts.temp_type.json +9 -9
- package/module/test/layer/bp.json +59 -59
- package/module/test/layer/bp1.yml +33 -33
- package/module/test/layer/individual.yml +53 -53
- package/module/test/layer/ts.linking_passport.yml +55 -55
- package/module/test/layer/ts.temp_structure.yml +50 -50
- package/module/test/map/addr.yml +21 -21
- package/module/test/map/bp_myo.json +43 -43
- package/module/test/map/bpf.json +43 -43
- package/module/test/map/main.json +36 -36
- package/module/test/map/mbd.json +91 -91
- package/module/test/map/ts.json +52 -52
- package/module/test/select/address_id.json +2 -2
- package/module/test/select/address_id.sql +7 -7
- package/module/test/select/core.user_uid.sql +1 -1
- package/module/test/table/data_address.street.table.json +69 -69
- package/module/test/table/data_bp_myo.bp.table.json +122 -122
- package/package.json +75 -75
- package/plugin.js +45 -44
- package/server/migrations/maps.sql +30 -30
- package/server/migrations/ogc.sql +106 -106
- package/server/migrations/rasters.sql +263 -263
- package/server/migrations/services.sql +247 -247
- package/server/migrations/widgets.sql +20 -20
- package/server/plugins/crons.js +21 -21
- package/server/plugins/mapnik/funcs/mapnik.js +111 -106
- package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
- package/server/plugins/mapnik/map.proto +151 -0
- package/server/plugins/vite.js +74 -74
- package/server/routes/gis/cartocss/add.cartocss.js +152 -18
- package/server/routes/gis/cartocss/get.cartocss.js +12 -12
- package/server/routes/gis/dashboard.js +29 -29
- package/server/routes/gis/index.mjs +73 -73
- package/server/routes/gis/metadata/metadataXML.js +13 -13
- package/server/routes/gis/ogc/map.info.point.js +124 -124
- package/server/routes/gis/registers/add.registry.js +35 -35
- package/server/routes/gis/registers/del.registry.js +14 -14
- package/server/routes/gis/registers/funcs/classifiers.js +100 -100
- package/server/routes/gis/registers/funcs/columns.js +4 -4
- package/server/routes/gis/registers/funcs/content.type.js +9 -9
- package/server/routes/gis/registers/funcs/get.info.js +89 -89
- package/server/routes/gis/registers/funcs/handleRegistryRequest.js +145 -145
- package/server/routes/gis/registers/gis.export.js +148 -148
- package/server/routes/gis/registers/gis.registry.js +64 -64
- package/server/routes/gis/registers/gis.registry.list.js +59 -59
- package/server/routes/gis/registers/insert.columns.js +107 -107
- package/server/routes/gis/registers/insert.filters.js +110 -110
- package/server/routes/gis/registers/map.registry.js +79 -79
- package/server/routes/gis/services/add.service.js +64 -64
- package/server/routes/gis/services/del.service.js +12 -12
- package/server/routes/gis/services/get.layer.geom.js +27 -27
- package/server/routes/gis/services/get.services.col.js +33 -33
- package/server/routes/gis/services/get.services.js +84 -84
- package/server/routes/gis/services/legend.auto.js +77 -77
- package/server/routes/map/controllers/geojson.js +187 -187
- package/server/routes/map/controllers/jsonData.js +205 -205
- package/server/routes/map/controllers/layerList.js +60 -60
- package/server/routes/map/controllers/map.js +123 -123
- package/server/routes/map/controllers/mapCatalog.js +72 -72
- package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
- package/server/routes/map/controllers/mapFeatures.js +128 -128
- package/server/routes/map/controllers/mapFormat.js +83 -83
- package/server/routes/map/controllers/mapTiles.js +152 -152
- package/server/routes/map/controllers/maps.js +15 -15
- package/server/routes/map/controllers/marker_icon.js +43 -43
- package/server/routes/map/controllers/vtile.js +172 -172
- package/server/routes/map/index.mjs +142 -142
- package/server/routes/map/maps/add.map.js +43 -43
- package/server/routes/map/maps/del.map.js +18 -18
- package/server/routes/map/maps/get.map.js +80 -80
- package/server/routes/map/vtile1.js +170 -170
- package/server/routes/map/widgets/add.widget.js +38 -38
- package/server/routes/map/widgets/del.widget.js +22 -22
- package/server/routes/map/widgets/get.widget.js +40 -40
- package/server/routes/mapnik/controllers/createXML.js +61 -0
- package/server/routes/mapnik/controllers/rtile.js +86 -0
- package/server/routes/mapnik/controllers/uploadRaster.js +159 -0
- package/server/routes/mapnik/index.js +16 -0
- package/server/routes/root.mjs +3 -3
- package/utils.js +11 -11
- package/server/plugins/mapnik/funcs/createXML.js +0 -72
- package/server/plugins/mapnik/funcs/gdalWrapper.js +0 -72
- package/server/plugins/mapnik/funcs/map.proto +0 -241
- package/server/plugins/mapnik/funcs/rasterConfig.js +0 -11
- package/server/plugins/mapnik/funcs/rasterExists.js +0 -21
- package/server/plugins/mapnik/funcs/rasterInfo.js +0 -109
- package/server/plugins/mapnik/funcs/rasterVrt.js +0 -56
- package/server/plugins/mapnik/funcs/rasterXML.js +0 -65
- package/server/plugins/mapnik/utils/map.proto +0 -241
- package/server/routes/map/controllers/rtile.js +0 -134
|
@@ -1,18 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return
|
|
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
|
+
}
|