@opengis/gis 0.2.93 → 0.2.95

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 (175) hide show
  1. package/README.md +5 -5
  2. package/dist/index.css +1 -1
  3. package/dist/index.js +7469 -6611
  4. package/dist/index.umd.cjs +81 -66
  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 +39 -39
  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 +76 -76
  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/admin.cls.name.sql +2 -2
  52. package/module/gis/select/pg.columns.parent.sql +6 -6
  53. package/module/gis/select/pg.table_name.sql +17 -17
  54. package/module/gis/select/service_id.sql +1 -1
  55. package/module/gis/table/gis.cartocss.table.json +74 -74
  56. package/module/gis/table/gis.group_list.table.json +58 -58
  57. package/module/gis/table/gis.maps.table.json +111 -111
  58. package/module/gis/table/gis.metadata.table.json +70 -70
  59. package/module/gis/table/gis.ogc_service.table.json +100 -100
  60. package/module/gis/table/gis.rasters.table.json +101 -101
  61. package/module/gis/table/gis.registers.table.json +144 -144
  62. package/module/gis/table/gis.services.table.json +121 -121
  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/permissions/form/permissions.users.form.json +151 -151
  68. package/module/permissions/table/gis.permissions.table.json +98 -98
  69. package/module/test/cls/bp_build_type.json +37 -37
  70. package/module/test/cls/doc_status.json +31 -31
  71. package/module/test/cls/ts.temp_status.json +18 -18
  72. package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
  73. package/module/test/cls/ts.temp_type.json +9 -9
  74. package/module/test/layer/bp.json +59 -59
  75. package/module/test/layer/bp1.yml +33 -33
  76. package/module/test/layer/individual.yml +53 -53
  77. package/module/test/layer/ts.linking_passport.yml +55 -55
  78. package/module/test/layer/ts.temp_structure.yml +50 -50
  79. package/module/test/map/addr.yml +21 -21
  80. package/module/test/map/bp_myo.json +43 -43
  81. package/module/test/map/bpf.json +43 -43
  82. package/module/test/map/main.json +36 -36
  83. package/module/test/map/mbd.json +91 -91
  84. package/module/test/map/ts.json +52 -52
  85. package/module/test/select/address_id.json +2 -2
  86. package/module/test/select/address_id.sql +7 -7
  87. package/module/test/select/core.user_uid.sql +1 -1
  88. package/module/test/table/data_address.street.table.json +69 -69
  89. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  90. package/package.json +76 -76
  91. package/plugin.js +49 -49
  92. package/server/migrations/array_intersect.sql +13 -13
  93. package/server/migrations/cartocss.sql +25 -25
  94. package/server/migrations/group_list.sql +74 -74
  95. package/server/migrations/maps.sql +30 -30
  96. package/server/migrations/metadata.sql +415 -415
  97. package/server/migrations/ogc.sql +106 -106
  98. package/server/migrations/rasters.sql +265 -265
  99. package/server/migrations/services.sql +247 -247
  100. package/server/migrations/services_users_rel.sql +22 -22
  101. package/server/migrations/widgets.sql +20 -20
  102. package/server/plugins/crons.js +21 -21
  103. package/server/plugins/mapnik/funcs/checkRasterFile.js +108 -108
  104. package/server/plugins/mapnik/funcs/mapnik.js +146 -146
  105. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  106. package/server/plugins/mapnik/map.proto +231 -231
  107. package/server/plugins/vite.js +75 -75
  108. package/server/routes/gis/cartocss/add.cartocss.js +39 -39
  109. package/server/routes/gis/cartocss/get.cartocss.js +49 -49
  110. package/server/routes/gis/checkXML.js +118 -118
  111. package/server/routes/gis/dashboard.js +29 -29
  112. package/server/routes/gis/index.mjs +87 -87
  113. package/server/routes/gis/metadata/editMetadata.js +34 -34
  114. package/server/routes/gis/metadata/metadataXML.js +13 -13
  115. package/server/routes/gis/ogc/map.info.point.js +124 -124
  116. package/server/routes/gis/registers/add.registry.js +35 -35
  117. package/server/routes/gis/registers/del.registry.js +14 -14
  118. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  119. package/server/routes/gis/registers/funcs/columns.js +4 -4
  120. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  121. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  122. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +146 -146
  123. package/server/routes/gis/registers/gis.export.js +148 -148
  124. package/server/routes/gis/registers/gis.registry.js +64 -64
  125. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  126. package/server/routes/gis/registers/insert.columns.js +107 -107
  127. package/server/routes/gis/registers/insert.filters.js +110 -110
  128. package/server/routes/gis/registers/map.registry.js +79 -79
  129. package/server/routes/gis/services/add.service.js +64 -64
  130. package/server/routes/gis/services/del.service.js +12 -12
  131. package/server/routes/gis/services/get.layer.geom.js +27 -27
  132. package/server/routes/gis/services/get.services.col.js +33 -33
  133. package/server/routes/gis/services/get.services.js +84 -84
  134. package/server/routes/gis/services/legend.auto.js +77 -77
  135. package/server/routes/map/controllers/geojson.js +187 -187
  136. package/server/routes/map/controllers/jsonData.js +205 -205
  137. package/server/routes/map/controllers/layerList.js +103 -103
  138. package/server/routes/map/controllers/map.js +123 -123
  139. package/server/routes/map/controllers/mapCatalog.js +72 -72
  140. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  141. package/server/routes/map/controllers/mapFeatures.js +128 -128
  142. package/server/routes/map/controllers/mapFormat.js +225 -225
  143. package/server/routes/map/controllers/mapTiles.js +152 -152
  144. package/server/routes/map/controllers/maps.js +15 -15
  145. package/server/routes/map/controllers/marker_icon.js +43 -43
  146. package/server/routes/map/controllers/vtile.js +172 -172
  147. package/server/routes/map/index.mjs +142 -142
  148. package/server/routes/map/maps/add.map.js +43 -43
  149. package/server/routes/map/maps/del.map.js +18 -18
  150. package/server/routes/map/maps/get.map.js +112 -112
  151. package/server/routes/map/vtile1.js +176 -176
  152. package/server/routes/map/widgets/add.widget.js +38 -38
  153. package/server/routes/map/widgets/del.widget.js +22 -22
  154. package/server/routes/map/widgets/get.widget.js +40 -40
  155. package/server/routes/mapnik/controllers/clearTiles.js +94 -94
  156. package/server/routes/mapnik/controllers/createXml.js +66 -66
  157. package/server/routes/mapnik/controllers/createXmlMulti.js +75 -75
  158. package/server/routes/mapnik/controllers/fileSearch.js +34 -34
  159. package/server/routes/mapnik/controllers/fileStat.js +27 -27
  160. package/server/routes/mapnik/controllers/mapnikLogger.js +29 -29
  161. package/server/routes/mapnik/controllers/mapnikStat.js +20 -20
  162. package/server/routes/mapnik/controllers/rasterInfo.js +50 -50
  163. package/server/routes/mapnik/controllers/readDir.js +19 -19
  164. package/server/routes/mapnik/controllers/rtile.js +122 -122
  165. package/server/routes/mapnik/controllers/uploadRaster.js +157 -157
  166. package/server/routes/mapnik/functions/cartoBounds.js +23 -23
  167. package/server/routes/mapnik/functions/uploadXML.js +110 -110
  168. package/server/routes/mapnik/index.js +28 -28
  169. package/server/routes/permissions/controllers/catalog.permissions.edit.js +22 -22
  170. package/server/routes/permissions/controllers/catalog.permissions.js +7 -7
  171. package/server/routes/permissions/controllers/gis.catalog.js +80 -80
  172. package/server/routes/permissions/controllers/utils/get.permissions.js +43 -43
  173. package/server/routes/permissions/index.mjs +18 -18
  174. package/server/routes/root.mjs +3 -3
  175. package/utils.js +13 -13
@@ -1,14 +1,14 @@
1
- CREATE OR REPLACE FUNCTION public.array_intersect(
2
- anyarray,
3
- anyarray)
4
- RETURNS anyarray AS
5
- $BODY$
6
-
7
- SELECT ARRAY(
8
- SELECT UNNEST($1)
9
- INTERSECT
10
- SELECT UNNEST($2)
11
- );
12
- $BODY$
13
- LANGUAGE sql VOLATILE
1
+ CREATE OR REPLACE FUNCTION public.array_intersect(
2
+ anyarray,
3
+ anyarray)
4
+ RETURNS anyarray AS
5
+ $BODY$
6
+
7
+ SELECT ARRAY(
8
+ SELECT UNNEST($1)
9
+ INTERSECT
10
+ SELECT UNNEST($2)
11
+ );
12
+ $BODY$
13
+ LANGUAGE sql VOLATILE
14
14
  COST 100;
@@ -1,25 +1,25 @@
1
- create schema if not exists gis;
2
-
3
- create table if not exists gis.cartocss(
4
- cartocss_id text default next_id() not null primary key,
5
- cartocss_key text not null constraint cartocss_key_unique unique,
6
- name text not null,
7
- description text,
8
- config jsonb,
9
- style text,
10
- created_at timestamp default now(),
11
- created_by text,
12
- updated_by text,
13
- updated_at timestamp,
14
- group_id text constraint services_group_id_fkey references group_list,
15
- is_public boolean default false not null,
16
- enabled boolean default true not null,
17
- geom public.geometry
18
- );
19
-
20
- alter table gis.cartocss add column if not exists geom public.geometry;
21
- alter table gis.cartocss add column if not exists source_path text;
22
- alter table gis.cartocss add column if not exists card_auto boolean not null default false;
23
- alter table gis.cartocss add column if not exists card_html text;
24
- alter table gis.cartocss add column if not exists card_table text;
25
- alter table gis.cartocss add column if not exists card_columns text;
1
+ create schema if not exists gis;
2
+
3
+ create table if not exists gis.cartocss(
4
+ cartocss_id text default next_id() not null primary key,
5
+ cartocss_key text not null constraint cartocss_key_unique unique,
6
+ name text not null,
7
+ description text,
8
+ config jsonb,
9
+ style text,
10
+ created_at timestamp default now(),
11
+ created_by text,
12
+ updated_by text,
13
+ updated_at timestamp,
14
+ group_id text constraint services_group_id_fkey references group_list,
15
+ is_public boolean default false not null,
16
+ enabled boolean default true not null,
17
+ geom public.geometry
18
+ );
19
+
20
+ alter table gis.cartocss add column if not exists geom public.geometry;
21
+ alter table gis.cartocss add column if not exists source_path text;
22
+ alter table gis.cartocss add column if not exists card_auto boolean not null default false;
23
+ alter table gis.cartocss add column if not exists card_html text;
24
+ alter table gis.cartocss add column if not exists card_table text;
25
+ alter table gis.cartocss add column if not exists card_columns text;
@@ -1,75 +1,75 @@
1
- -- Table: gis.group_list
2
-
3
- -- DROP TABLE gis.group_list;
4
-
5
- CREATE TABLE if not exists gis.group_list
6
- (
7
- group_id text NOT NULL DEFAULT admin.next_id(), -- ідентифікатор групи
8
- group_name text NOT NULL, -- Назва групи
9
- enabled boolean DEFAULT true, -- ознака чи включена група
10
- created_at timestamp without time zone DEFAULT date_trunc('minutes'::text, (now())::timestamp without time zone),
11
- updated_at timestamp without time zone,
12
- updated_by text,
13
- created_by text,
14
- cdate timestamp without time zone DEFAULT date_trunc('minutes'::text, (now())::timestamp without time zone), -- дата створення запису в БД
15
- editor_date timestamp without time zone, -- Дата редагування
16
- editor_id text, -- ідентифікатор користувача котрий останій вносив зміни в запис
17
- uid text, -- ідентифікатор користувача який створив запис
18
- icon text, -- Зображення
19
- CONSTRAINT gis_group_id_pkey PRIMARY KEY (group_id)
20
- );
21
-
22
- COMMENT ON COLUMN gis.group_list.group_id IS 'ідентифікатор групи';
23
- COMMENT ON COLUMN gis.group_list.group_name IS 'Назва групи';
24
- COMMENT ON COLUMN gis.group_list.enabled IS 'ознака чи включена група';
25
- COMMENT ON COLUMN gis.group_list.cdate IS 'дата створення запису в БД';
26
- COMMENT ON COLUMN gis.group_list.editor_date IS 'Дата редагування';
27
- COMMENT ON COLUMN gis.group_list.editor_id IS 'ідентифікатор користувача котрий останій вносив зміни в запис';
28
- COMMENT ON COLUMN gis.group_list.uid IS 'ідентифікатор користувача який створив запис';
29
- COMMENT ON COLUMN gis.group_list.icon IS 'Зображення';
30
-
31
-
32
- -- Index: gis.gis_group_list_enabled_btree_idx
33
-
34
- -- DROP INDEX gis.gis_group_list_enabled_btree_idx;
35
-
36
- CREATE INDEX if not exists gis_group_list_enabled_btree_idx
37
- ON gis.group_list
38
- USING btree
39
- (enabled);
40
-
41
- -- Index: gis.gis_group_list_group_cdate_btree_idx
42
-
43
- -- DROP INDEX gis.gis_group_list_group_cdate_btree_idx;
44
-
45
- CREATE INDEX if not exists gis_group_list_group_cdate_btree_idx
46
- ON gis.group_list
47
- USING btree
48
- (cdate);
49
-
50
- -- Index: gis.gis_group_list_group_enabled_btree_idx
51
-
52
- -- DROP INDEX gis.gis_group_list_group_enabled_btree_idx;
53
-
54
- CREATE INDEX if not exists gis_group_list_group_enabled_btree_idx
55
- ON gis.group_list
56
- USING btree
57
- (enabled);
58
-
59
- -- Index: gis.gis_group_list_group_name_gin_idx
60
-
61
- -- DROP INDEX gis.gis_group_list_group_name_gin_idx;
62
-
63
- CREATE INDEX if not exists gis_group_list_group_name_gin_idx
64
- ON gis.group_list
65
- USING gin
66
- (group_name COLLATE pg_catalog."default" gin_trgm_ops);
67
-
68
- -- Index: gis.gis_group_list_group_name_gin_idx_lower
69
-
70
- -- DROP INDEX gis.gis_group_list_group_name_gin_idx_lower;
71
-
72
- CREATE INDEX if not exists gis_group_list_group_name_gin_idx_lower
73
- ON gis.group_list
74
- USING gin
1
+ -- Table: gis.group_list
2
+
3
+ -- DROP TABLE gis.group_list;
4
+
5
+ CREATE TABLE if not exists gis.group_list
6
+ (
7
+ group_id text NOT NULL DEFAULT admin.next_id(), -- ідентифікатор групи
8
+ group_name text NOT NULL, -- Назва групи
9
+ enabled boolean DEFAULT true, -- ознака чи включена група
10
+ created_at timestamp without time zone DEFAULT date_trunc('minutes'::text, (now())::timestamp without time zone),
11
+ updated_at timestamp without time zone,
12
+ updated_by text,
13
+ created_by text,
14
+ cdate timestamp without time zone DEFAULT date_trunc('minutes'::text, (now())::timestamp without time zone), -- дата створення запису в БД
15
+ editor_date timestamp without time zone, -- Дата редагування
16
+ editor_id text, -- ідентифікатор користувача котрий останій вносив зміни в запис
17
+ uid text, -- ідентифікатор користувача який створив запис
18
+ icon text, -- Зображення
19
+ CONSTRAINT gis_group_id_pkey PRIMARY KEY (group_id)
20
+ );
21
+
22
+ COMMENT ON COLUMN gis.group_list.group_id IS 'ідентифікатор групи';
23
+ COMMENT ON COLUMN gis.group_list.group_name IS 'Назва групи';
24
+ COMMENT ON COLUMN gis.group_list.enabled IS 'ознака чи включена група';
25
+ COMMENT ON COLUMN gis.group_list.cdate IS 'дата створення запису в БД';
26
+ COMMENT ON COLUMN gis.group_list.editor_date IS 'Дата редагування';
27
+ COMMENT ON COLUMN gis.group_list.editor_id IS 'ідентифікатор користувача котрий останій вносив зміни в запис';
28
+ COMMENT ON COLUMN gis.group_list.uid IS 'ідентифікатор користувача який створив запис';
29
+ COMMENT ON COLUMN gis.group_list.icon IS 'Зображення';
30
+
31
+
32
+ -- Index: gis.gis_group_list_enabled_btree_idx
33
+
34
+ -- DROP INDEX gis.gis_group_list_enabled_btree_idx;
35
+
36
+ CREATE INDEX if not exists gis_group_list_enabled_btree_idx
37
+ ON gis.group_list
38
+ USING btree
39
+ (enabled);
40
+
41
+ -- Index: gis.gis_group_list_group_cdate_btree_idx
42
+
43
+ -- DROP INDEX gis.gis_group_list_group_cdate_btree_idx;
44
+
45
+ CREATE INDEX if not exists gis_group_list_group_cdate_btree_idx
46
+ ON gis.group_list
47
+ USING btree
48
+ (cdate);
49
+
50
+ -- Index: gis.gis_group_list_group_enabled_btree_idx
51
+
52
+ -- DROP INDEX gis.gis_group_list_group_enabled_btree_idx;
53
+
54
+ CREATE INDEX if not exists gis_group_list_group_enabled_btree_idx
55
+ ON gis.group_list
56
+ USING btree
57
+ (enabled);
58
+
59
+ -- Index: gis.gis_group_list_group_name_gin_idx
60
+
61
+ -- DROP INDEX gis.gis_group_list_group_name_gin_idx;
62
+
63
+ CREATE INDEX if not exists gis_group_list_group_name_gin_idx
64
+ ON gis.group_list
65
+ USING gin
66
+ (group_name COLLATE pg_catalog."default" gin_trgm_ops);
67
+
68
+ -- Index: gis.gis_group_list_group_name_gin_idx_lower
69
+
70
+ -- DROP INDEX gis.gis_group_list_group_name_gin_idx_lower;
71
+
72
+ CREATE INDEX if not exists gis_group_list_group_name_gin_idx_lower
73
+ ON gis.group_list
74
+ USING gin
75
75
  (lower(group_name) COLLATE pg_catalog."default" gin_trgm_ops);
@@ -1,30 +1,30 @@
1
- create schema if not exists gis;
2
-
3
- CREATE TABLE if not exists gis.maps
4
- (
5
- map_id text DEFAULT next_id(), -- -
6
- name text , -- Назва
7
- center numeric[] , -- Геометрія центру
8
- zoom integer DEFAULT 10, -- Зум
9
- widgets json,
10
- layers text[],
11
- map_key text , -- Унікальний ключ
12
- description text , -- Опис
13
- image text , -- Фото
14
- holder text , -- Власник/Утримувач/Відповідальний
15
- keywords text[] , -- Ключові слова
16
- is_public boolean DEFAULT true, -- Чи публічна карта
17
- srid integer DEFAULT 4326, -- Система координат
18
- config jsonb , -- Опціональна конфігурація
19
- created_by text , -- -
20
- updated_by text , -- -
21
- updated_at timestamp without time zone , -- -
22
- created_at timestamp without time zone DEFAULT now(),
23
- CONSTRAINT maps_pkey PRIMARY KEY (map_id)
24
- );
25
-
26
- -- update gis.maps set center1=case when center is not null then array[st_x(center),st_y(center)] else null end
27
- alter table gis.maps add column if not exists center numeric[];
28
- alter table gis.maps add column if not exists zoom int;
29
- alter table gis.maps add column if not exists widgets json;
30
- alter table gis.maps add column if not exists layers text[];
1
+ create schema if not exists gis;
2
+
3
+ CREATE TABLE if not exists gis.maps
4
+ (
5
+ map_id text DEFAULT next_id(), -- -
6
+ name text , -- Назва
7
+ center numeric[] , -- Геометрія центру
8
+ zoom integer DEFAULT 10, -- Зум
9
+ widgets json,
10
+ layers text[],
11
+ map_key text , -- Унікальний ключ
12
+ description text , -- Опис
13
+ image text , -- Фото
14
+ holder text , -- Власник/Утримувач/Відповідальний
15
+ keywords text[] , -- Ключові слова
16
+ is_public boolean DEFAULT true, -- Чи публічна карта
17
+ srid integer DEFAULT 4326, -- Система координат
18
+ config jsonb , -- Опціональна конфігурація
19
+ created_by text , -- -
20
+ updated_by text , -- -
21
+ updated_at timestamp without time zone , -- -
22
+ created_at timestamp without time zone DEFAULT now(),
23
+ CONSTRAINT maps_pkey PRIMARY KEY (map_id)
24
+ );
25
+
26
+ -- update gis.maps set center1=case when center is not null then array[st_x(center),st_y(center)] else null end
27
+ alter table gis.maps add column if not exists center numeric[];
28
+ alter table gis.maps add column if not exists zoom int;
29
+ alter table gis.maps add column if not exists widgets json;
30
+ alter table gis.maps add column if not exists layers text[];