@opengis/gis 0.2.161 → 0.2.162

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 (203) hide show
  1. package/README.md +181 -181
  2. package/dist/{CardIcon-CJb7yqV7.js → CardIcon-DcriKHRQ.js} +1 -1
  3. package/dist/{EntityTablePage-BDWJBRsX.js → EntityTablePage-44UmAQh0.js} +2 -2
  4. package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BSfb8eHZ.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BAaobvwj.js} +1 -1
  5. package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-WHe_VrVa.js → HeaderActions.vue_vue_type_script_setup_true_lang-CLEpHbVL.js} +1 -1
  6. package/dist/{MapSettings-CfY1C4pP.js → MapSettings-C7qDO9gp.js} +2 -2
  7. package/dist/{RastersTablePage-DqNAAgwQ.js → RastersTablePage-DmOpbseA.js} +2 -2
  8. package/dist/{cartocss-BtW3JOe4.js → cartocss-DGvNrARb.js} +5 -5
  9. package/dist/{import-utils-omyzQAkY.js → import-utils-DYDa34GH.js} +1 -1
  10. package/dist/{index-C8Wi_h72.js → index-DCKH-TcG.js} +39 -39
  11. package/dist/index.css +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.umd.cjs +5 -5
  14. package/dist/{raster-C18YvUia.js → raster-CAi6K97q.js} +3 -3
  15. package/dist/{register-YfpjSpQO.js → register-C6IbQrEK.js} +3 -3
  16. package/dist/{service-CoVcnlm3.js → service-B_C_D5nN.js} +6 -6
  17. package/dist/{vs-datatable-D6oj_pBG.js → vs-datatable-aAXTRfDg.js} +2 -2
  18. package/module/cls.json +6 -6
  19. package/module/gis/card/gis.metadata.table/index.yml +22 -22
  20. package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
  21. package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
  22. package/module/gis/card/gis.metadata.table/other.hbs +25 -25
  23. package/module/gis/card/gis.rasters.table/index.yml +11 -11
  24. package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
  25. package/module/gis/card/gis.registers.table/cls.hbs +36 -36
  26. package/module/gis/card/gis.registers.table/columns.hbs +89 -89
  27. package/module/gis/card/gis.registers.table/filters.hbs +80 -80
  28. package/module/gis/card/gis.registers.table/index.yml +23 -23
  29. package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
  30. package/module/gis/card/gis.registers.table/source.hbs +45 -45
  31. package/module/gis/card/gis.services.table/attributes.hbs +91 -91
  32. package/module/gis/card/gis.services.table/filters.hbs +83 -83
  33. package/module/gis/card/gis.services.table/index.yml +25 -25
  34. package/module/gis/card/gis.services.table/main_info.hbs +27 -27
  35. package/module/gis/card/gis.services.table/source.hbs +25 -25
  36. package/module/gis/cls/bool.yes_no.json +12 -12
  37. package/module/gis/cls/encoding.json +14 -14
  38. package/module/gis/cls/geom_type.json +14 -14
  39. package/module/gis/cls/gis.column_type.json +34 -34
  40. package/module/gis/cls/gis.column_view_type.json +26 -26
  41. package/module/gis/cls/gis.filter_type.json +22 -22
  42. package/module/gis/cls/language.json +10 -10
  43. package/module/gis/cls/meta.service_type.json +42 -42
  44. package/module/gis/cls/ogc.service.json +21 -21
  45. package/module/gis/cls/service_type.json +42 -42
  46. package/module/gis/cls/source_type.json +10 -10
  47. package/module/gis/cls/standarts.json +6 -6
  48. package/module/gis/cls/topic_category.json +106 -106
  49. package/module/gis/cls/update_frequency.json +29 -29
  50. package/module/gis/cls/view.json +21 -21
  51. package/module/gis/form/feedback.answer.form.json +10 -10
  52. package/module/gis/form/gis.cartocss.form.json +64 -64
  53. package/module/gis/form/gis.group_list.form.json +17 -17
  54. package/module/gis/form/gis.maps.form.json +61 -61
  55. package/module/gis/form/gis.metadata.form.json +240 -240
  56. package/module/gis/form/gis.metadata_new.form.json +195 -195
  57. package/module/gis/form/gis.ogc_service.form.json +51 -51
  58. package/module/gis/form/gis.rasters.form.json +76 -76
  59. package/module/gis/form/gis.registers.form.json +124 -124
  60. package/module/gis/form/gis.registers_column.form.json +84 -84
  61. package/module/gis/form/gis.registers_filter.form.json +65 -65
  62. package/module/gis/form/gis.services.form.json +111 -111
  63. package/module/gis/form/gis.services_attributes.form.json +75 -75
  64. package/module/gis/form/gis.services_filter.form.json +65 -65
  65. package/module/gis/menu.json +43 -43
  66. package/module/gis/select/admin.cls.name.sql +9 -9
  67. package/module/gis/select/layer_list.sql +7 -7
  68. package/module/gis/select/layer_list_text.sql +7 -7
  69. package/module/gis/select/pg.column_name.geometry.sql +12 -12
  70. package/module/gis/select/pg.columns.parent.sql +6 -6
  71. package/module/gis/select/pg.table_name.sql +17 -17
  72. package/module/gis/select/service_id.sql +1 -1
  73. package/module/gis/select/srid.sql +7 -7
  74. package/module/gis/table/gis.cartocss.table.json +74 -74
  75. package/module/gis/table/gis.group_list.table.json +58 -58
  76. package/module/gis/table/gis.maps.table.json +110 -110
  77. package/module/gis/table/gis.metadata.table.json +70 -70
  78. package/module/gis/table/gis.metadata_new.table.json +137 -137
  79. package/module/gis/table/gis.ogc_service.table.json +100 -100
  80. package/module/gis/table/gis.rasters.table.json +113 -113
  81. package/module/gis/table/gis.registers.table.json +143 -143
  82. package/module/gis/table/gis.services.table.json +120 -120
  83. package/module/gis/table/site.gis.registers.table.json +88 -88
  84. package/module/gis/table/site.gis.services.table.json +106 -106
  85. package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
  86. package/module/gis/tokens.yml +5 -5
  87. package/module/permissions/form/permissions.users.form.json +151 -151
  88. package/module/permissions/table/gis.permissions.table.json +97 -97
  89. package/module/test/cls/bp_build_type.json +37 -37
  90. package/module/test/cls/doc_status.json +31 -31
  91. package/module/test/cls/ts.temp_status.json +18 -18
  92. package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
  93. package/module/test/cls/ts.temp_type.json +9 -9
  94. package/module/test/layer/bp.json +59 -59
  95. package/module/test/layer/bp1.yml +33 -33
  96. package/module/test/layer/individual.yml +53 -53
  97. package/module/test/layer/ts.linking_passport.yml +55 -55
  98. package/module/test/layer/ts.temp_structure.yml +50 -50
  99. package/module/test/map/addr.yml +21 -21
  100. package/module/test/map/bp_myo.json +43 -43
  101. package/module/test/map/bpf.json +43 -43
  102. package/module/test/map/main.json +39 -39
  103. package/module/test/map/mbd.json +92 -92
  104. package/module/test/map/ts.json +53 -53
  105. package/module/test/select/address_id.json +2 -2
  106. package/module/test/select/address_id.sql +7 -7
  107. package/module/test/select/core.user_uid.sql +1 -1
  108. package/module/test/table/data_address.street.table.json +69 -69
  109. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  110. package/package.json +75 -75
  111. package/plugin.js +55 -55
  112. package/server/migrations/array_intersect.sql +13 -13
  113. package/server/migrations/cartocss.sql +27 -27
  114. package/server/migrations/group_list.sql +74 -74
  115. package/server/migrations/maps.sql +30 -30
  116. package/server/migrations/metadata.sql +415 -415
  117. package/server/migrations/ogc.sql +106 -106
  118. package/server/migrations/rasters.sql +265 -265
  119. package/server/migrations/services.sql +247 -247
  120. package/server/migrations/services_users_rel.sql +22 -22
  121. package/server/migrations/widgets.sql +20 -20
  122. package/server/plugins/crons.js +21 -21
  123. package/server/plugins/mapnik/funcs/checkRasterFile.js +109 -109
  124. package/server/plugins/mapnik/funcs/mapnik.js +151 -151
  125. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  126. package/server/plugins/mapnik/map.proto +437 -345
  127. package/server/plugins/vite.js +74 -74
  128. package/server/routes/gis/cartocss/add.cartocss.js +42 -42
  129. package/server/routes/gis/cartocss/get.cartocss.js +59 -59
  130. package/server/routes/gis/checkXML.js +117 -117
  131. package/server/routes/gis/dashboard.js +29 -29
  132. package/server/routes/gis/index.mjs +92 -92
  133. package/server/routes/gis/metadata/editMetadata.js +34 -34
  134. package/server/routes/gis/metadata/metadataXML.js +13 -13
  135. package/server/routes/gis/ogc/map.info.point.js +124 -124
  136. package/server/routes/gis/registers/add.registry.js +35 -35
  137. package/server/routes/gis/registers/del.registry.js +14 -14
  138. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  139. package/server/routes/gis/registers/funcs/columns.js +3 -3
  140. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  141. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  142. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +146 -146
  143. package/server/routes/gis/registers/gis.export.js +153 -153
  144. package/server/routes/gis/registers/gis.registry.js +64 -64
  145. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  146. package/server/routes/gis/registers/insert.columns.js +107 -107
  147. package/server/routes/gis/registers/insert.filters.js +110 -110
  148. package/server/routes/gis/registers/map.registry.js +79 -79
  149. package/server/routes/gis/services/add.service.js +64 -64
  150. package/server/routes/gis/services/create.route.js +96 -96
  151. package/server/routes/gis/services/del.service.js +12 -12
  152. package/server/routes/gis/services/get.layer.geom.js +27 -27
  153. package/server/routes/gis/services/get.service.users.js +74 -74
  154. package/server/routes/gis/services/get.services.col.js +33 -33
  155. package/server/routes/gis/services/get.services.js +84 -84
  156. package/server/routes/gis/services/legend.auto.js +77 -77
  157. package/server/routes/map/controllers/clearTiles.js +34 -34
  158. package/server/routes/map/controllers/geojson.js +187 -187
  159. package/server/routes/map/controllers/gis.convert.js +54 -53
  160. package/server/routes/map/controllers/jsonData.js +205 -205
  161. package/server/routes/map/controllers/layerList.js +102 -102
  162. package/server/routes/map/controllers/map.js +123 -123
  163. package/server/routes/map/controllers/mapCatalog.js +72 -72
  164. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  165. package/server/routes/map/controllers/mapFeatures.js +128 -128
  166. package/server/routes/map/controllers/mapFormat.js +234 -234
  167. package/server/routes/map/controllers/mapTiles.js +152 -152
  168. package/server/routes/map/controllers/maps.js +15 -15
  169. package/server/routes/map/controllers/marker_icon.js +43 -43
  170. package/server/routes/map/controllers/parseGeoFile.js +86 -86
  171. package/server/routes/map/controllers/pointHeight.js +55 -55
  172. package/server/routes/map/controllers/vtile.js +172 -172
  173. package/server/routes/map/index.mjs +249 -228
  174. package/server/routes/map/maps/add.map.js +43 -43
  175. package/server/routes/map/maps/del.map.js +18 -18
  176. package/server/routes/map/maps/get.map.js +118 -118
  177. package/server/routes/map/vtile1.js +179 -179
  178. package/server/routes/map/widgets/add.widget.js +38 -38
  179. package/server/routes/map/widgets/del.widget.js +22 -22
  180. package/server/routes/map/widgets/get.widget.js +40 -40
  181. package/server/routes/mapnik/controllers/clearTiles.js +106 -106
  182. package/server/routes/mapnik/controllers/createXml.js +67 -67
  183. package/server/routes/mapnik/controllers/createXmlMulti.js +76 -76
  184. package/server/routes/mapnik/controllers/fileSearch.js +38 -38
  185. package/server/routes/mapnik/controllers/fileStat.js +28 -28
  186. package/server/routes/mapnik/controllers/mapnikLogger.js +29 -29
  187. package/server/routes/mapnik/controllers/mapnikStat.js +19 -19
  188. package/server/routes/mapnik/controllers/pretile.js +144 -144
  189. package/server/routes/mapnik/controllers/rasterInfo.js +57 -57
  190. package/server/routes/mapnik/controllers/readDir.js +22 -22
  191. package/server/routes/mapnik/controllers/rtile.js +167 -167
  192. package/server/routes/mapnik/controllers/uploadRaster.js +157 -157
  193. package/server/routes/mapnik/functions/cartoBounds.js +32 -32
  194. package/server/routes/mapnik/functions/convertBoundToTile.js +27 -27
  195. package/server/routes/mapnik/functions/uploadXML.js +113 -113
  196. package/server/routes/mapnik/index.js +40 -40
  197. package/server/routes/permissions/controllers/catalog.permissions.edit.js +22 -22
  198. package/server/routes/permissions/controllers/catalog.permissions.js +7 -7
  199. package/server/routes/permissions/controllers/gis.catalog.js +80 -80
  200. package/server/routes/permissions/controllers/utils/get.permissions.js +59 -59
  201. package/server/routes/permissions/index.mjs +18 -18
  202. package/server/routes/root.mjs +3 -3
  203. package/utils.js +13 -13
@@ -1,345 +1,437 @@
1
- syntax = "proto3";
2
-
3
- import "google/protobuf/struct.proto"; // after syntax!
4
-
5
- package map;
6
-
7
- // ----------------------------
8
- // Map Service
9
- // ----------------------------
10
- service MapService {
11
- rpc PrintMap(PrintMapRequest) returns (PrintMapOut);
12
- rpc RenderTile(RenderTileRequest) returns (RenderTileOut);
13
- rpc ClearTile(ClearTileRequest) returns (ClearTileOut);
14
- rpc ReadDir(ReadDirRequest) returns (ReadDirOut);
15
- rpc FileStat(FileStatRequest) returns (FileStatOut);
16
- rpc FileSearch(FileSearchRequest) returns (FileSearchOut);
17
- rpc CreateXML(CreateXMLRequest) returns (stream JobProgress); // streaming XML creation
18
- rpc CreateIndex(CreateIndexRequest) returns (CreateIndexOut); // create/update index.geojson for folder
19
- rpc ConvertLog(ConvertLogRequest) returns (ConvertLogOut); // json state for current stream tasks
20
- rpc ConvertCog(ConvertCogRequest) returns (stream JobProgress); // streaming COG conversion
21
- rpc ConvertVector(ConvertVectorRequest) returns (ConvertVectorOut); // vector file/archive -> GeoJSON
22
- rpc ImportData(ImportDataRequest) returns (stream JobProgress); // streaming SHP -> PostGIS import
23
- rpc UploadXML(UploadXMLRequest) returns (UploadXMLOut);
24
- rpc UploadRaster(UploadRasterRequest) returns (UploadRasterOut);
25
- rpc GetRasterStatus(GetRasterStatusRequest) returns (GetStatusOut);
26
- rpc GetStat(GetStatRequest) returns (GetStatOut);
27
- rpc GetLogs(GetLogsRequest) returns (GetLogsOut);
28
- rpc GetRasterInfo(GetRasterInfoRequest) returns (GetRasterInfoOut);
29
- rpc GetMeta(GetMetaRequest) returns (GetMetaOut);
30
- }
31
-
32
- // ----------------------------
33
- // Messages for MapService
34
- // ----------------------------
35
- message PrintMapRequest {
36
- string path = 1;
37
- string geojson = 2;
38
- repeated double bbox = 3; // [minx, miny, maxx, maxy]
39
- int32 width = 4;
40
- int32 height = 5;
41
- string ttl = 6; // "5m", "1h", "1d" or "0"
42
- optional bool base64 = 7; // optional output mode flag: true -> base64, false -> raw bytes
43
- int32 opacity = 8; // 0-255
44
- repeated string colors = 9; // [ #00FF00, #0000FF]
45
- repeated string layers = 10;
46
- }
47
-
48
- message PrintMapOut {
49
- string base64 = 1;
50
- bool cache = 2;
51
- string err = 3;
52
- bytes data = 7; // raw PNG bytes (used when request.base64=false)
53
- }
54
-
55
- message RenderTileRequest {
56
- string name = 1;
57
- string path = 2;
58
- repeated double bbox = 3; // [minx, miny, maxx, maxy]
59
- int32 width = 4;
60
- string ttl = 5; // "5m", "1h", "1d" or "0"
61
- string debug = 6;
62
- optional int32 z = 7; // optional XYZ tile zoom
63
- optional int32 x = 8; // optional XYZ tile x
64
- optional int32 y = 9; // optional XYZ tile y
65
- bool meta = 10; // when true return tile metadata/path only (without base64 image payload)
66
- optional bool base64 = 11; // optional output mode flag: true -> base64, false -> raw bytes
67
- optional string format = 12; // optional tile image format: png|jpg|jpeg|webp
68
- }
69
-
70
- message RenderTileOut {
71
- string base64 = 1;
72
- bool cache = 2;
73
- string err = 3;
74
- string xml_path = 4;
75
- string tile_path = 5;
76
- string tile_url = 6;
77
- bytes data = 7; // raw PNG bytes (used when request.base64=false)
78
- }
79
-
80
- message ClearTileRequest {
81
- string name = 1;
82
- string path = 2;
83
- }
84
-
85
- message ClearTileOut {
86
- string result = 1;
87
- string err = 2;
88
- }
89
-
90
- message FileStatRequest {
91
- string path = 1;
92
- }
93
-
94
- message FileStatOut {
95
- bool exists = 1;
96
- string name = 2;
97
- int64 size = 3;
98
- string adate = 4;
99
- string cdate = 5;
100
- string mdate = 6;
101
- }
102
-
103
- message FileSearchRequest {
104
- string path = 1;
105
- string key = 2;
106
- string period = 3;
107
- int64 size = 4;
108
- }
109
-
110
- message FileSearchOut {
111
- bool exists = 1;
112
- int32 count = 2;
113
- repeated FileInfo files = 3;
114
- repeated DirInfo directories = 4;
115
- }
116
-
117
- message ReadDirRequest {
118
- string path = 1;
119
- }
120
-
121
- message FileInfo {
122
- string name = 1;
123
- int64 size = 2;
124
- string date = 3;
125
- string dir = 4;
126
- optional bool cog = 5; // COG flag for TIFF files
127
- }
128
-
129
- message DirInfo {
130
- string name = 1;
131
- int64 size = 2;
132
- string date = 3;
133
- int64 children = 4;
134
- }
135
-
136
- message ReadDirOut {
137
- bool exists = 1;
138
- int32 count = 2;
139
- repeated FileInfo files = 3;
140
- repeated DirInfo directories = 4;
141
- }
142
-
143
- message CreateXMLRequest {
144
- string path = 1;
145
- int32 srid = 2;
146
- int32 previewZoom = 3;
147
- repeated string layers = 4;
148
- bool vrt = 5;
149
- string name = 6;
150
- string debug = 7;
151
- string nocache = 8;
152
- string proj4 = 9;
153
- bool cog = 10; // enable COG pipeline and map.xml without preview/zoom split
154
- bool preview = 11; // build preview and include preview layer in XML
155
- bool recursive = 12; // recursive source scan for folder targets
156
- string compress = 13; // COG compression mode: AUTO|DEFLATE|ZSTD|LZW|JPEG
157
- bool recompress = 14; // allow re-converting files that are already COG
158
- int32 quality = 15; // JPEG quality (1..100), 0 means default 85
159
- bool single = 16; // when path is folder, create one XML per raster file
160
- string mode = 17; // folder mode: auto|single|multi (replaces legacy single=true)
161
- int32 minZoom = 18; // minzoom value for map.xml Parameters (default: 10)
162
- reserved 19, 20, 21, 22, 27;
163
- reserved "vrtResample", "vrtResolution", "vrtXRes", "vrtYRes", "vrtTap";
164
- string vrtSrcNodata = 23; // source nodata value(s), e.g. "0" or "0 0 0"
165
- string vrtNodata = 24; // VRT nodata value(s)
166
- bool vrtHideNodata = 25; // hide nodata in VRT
167
- bool vrtAddAlpha = 26; // add alpha band in VRT
168
- bool overwrite = 28; // overwrite existing xml when true
169
- }
170
-
171
- message CreateIndexRequest {
172
- string path = 1; // folder path under raster root
173
- bool recursive = 2; // include nested folders
174
- bool overwrite = 3; // recreate existing index.geojson
175
- }
176
-
177
- message CreateIndexOut {
178
- string path = 1; // relative index.geojson path
179
- bool created = 2; // true when index.geojson written in this call
180
- bool skipped = 3; // true when existing index.geojson kept as-is
181
- bool overwritten = 4; // true when existing index.geojson was replaced
182
- int32 source_count = 5; // discovered source TIFF count
183
- int32 feature_count = 6; // written feature count
184
- int32 skipped_sources_count = 7; // sources skipped due unreadable/missing geometry
185
- }
186
-
187
- message ConvertLogRequest {
188
- string path = 1; // optional filter by request path
189
- string method = 2; // optional filter by method (CreateXML|ConvertCog)
190
- }
191
-
192
- message ConvertLogOut {
193
- string data = 1; // json payload with current stream tasks
194
- string stat_path = 2; // relative path to stat file: log/stream/stat/[date].log
195
- string err = 3; // error text when failed
196
- }
197
-
198
- message ConvertCogRequest {
199
- string name = 1; // deprecated fallback: file name only
200
- string path = 2; // raster file or folder
201
- bool recursive = 3; // process nested folders when path is directory
202
- string compress = 4; // COG compression mode: AUTO|DEFLATE|ZSTD|LZW|JPEG
203
- bool recompress = 5; // allow re-converting files that are already COG
204
- int32 quality = 6; // JPEG quality (1..100), 0 means default 85
205
- int32 srid = 7; // optional target SRID for reprojection before COG conversion
206
- }
207
-
208
- message ConvertVectorRequest {
209
- bytes data = 1; // input vector file/archive bytes
210
- string format = 2; // optional input format hint: zip|shp|kml|gml|geojson|json
211
- int32 srs = 3; // target EPSG code, default 4326
212
- string filename = 4; // optional original filename for extension/layer detection
213
- }
214
-
215
- message ConvertVectorOut {
216
- string geojson = 1; // converted GeoJSON payload
217
- string err = 2; // error text when failed
218
- int64 size = 3; // output GeoJSON byte size
219
- }
220
-
221
- message ImportDataRequest {
222
- string path = 1; // path to .shp file or directory under vector root
223
- bool recursive = 2; // process nested folders when path is directory
224
- bool force = 3; // overwrite existing tables when true
225
- string mode = 4; // import mode: file|type (aliases: 1|2)
226
- string db = 5; // PostgreSQL URL: postgresql://user:pass@host:port/dbname
227
- string schema = 6; // target schema override
228
- string type = 7; // optional geometry type override, e.g. LineString
229
- }
230
-
231
- message UploadXMLRequest {
232
- string name = 1;
233
- string xml = 2;
234
- string encoding = 3;
235
- string path = 4;
236
- }
237
-
238
- message UploadXMLOut {
239
- string status = 1;
240
- string filepath = 2;
241
- }
242
-
243
- message UploadRasterRequest {
244
- string path = 1;
245
- bytes data = 2;
246
- bool chunked = 3;
247
- int64 filesize = 4;
248
- }
249
-
250
- message UploadRasterOut {
251
- string status = 1;
252
- int64 uploaded = 2;
253
- bool finished = 3;
254
- }
255
-
256
- message GetRasterStatusRequest {
257
- string path = 1;
258
- bool md5 = 2;
259
- }
260
-
261
- message GetStatusOut {
262
- bool exists = 1;
263
- string size = 2;
264
- bool finished = 3;
265
- }
266
-
267
- message GetStatRequest {
268
- string period = 1; // "5m", "1h", "1d"
269
- }
270
-
271
- message GetStatOut {
272
- google.protobuf.Struct result = 1; // dynamic stats structure
273
- }
274
-
275
- message GetLogsRequest {
276
- string path = 1; // "info", "info/2026-01-01.log" etc.
277
- }
278
-
279
- message GetLogsOut {
280
- string data = 1;
281
- string links = 2;
282
- string err = 3;
283
- }
284
-
285
- message GetRasterInfoRequest {
286
- string path = 1;
287
- int64 srid = 3;
288
- string proj4 = 4;
289
- }
290
-
291
- message FileItem {
292
- string name = 1;
293
- string size = 2;
294
- }
295
-
296
- message GetRasterInfoData {
297
- string total_size = 1;
298
- string extension = 2;
299
- int64 srid = 3;
300
- string proj4 = 4;
301
- repeated float extent = 5;
302
- repeated FileItem files = 6;
303
- int64 width = 7;
304
- int64 height = 8;
305
- int64 bands_count = 9;
306
- string resolution = 10;
307
- repeated string bands = 11;
308
- int64 color_depth = 12;
309
- string compression = 13;
310
- bool xml = 14;
311
- optional bool cog = 15;
312
- }
313
-
314
- message GetRasterInfoOut {
315
- GetRasterInfoData data = 1;
316
- bool cache = 2;
317
- }
318
-
319
- message GetMetaRequest {
320
- string path = 1;
321
- repeated double bbox = 2; // optional [minx, miny, maxx, maxy]
322
- }
323
-
324
- message GetMetaOut {
325
- google.protobuf.Struct data = 1; // raw metadata JSON
326
- bool cache = 2; // true when metadata file already existed
327
- string meta_path = 3; // relative metadata file path
328
- bool bbox_intersects = 4; // bbox vs metadata extent (true when bbox absent)
329
- }
330
-
331
- // ----------------------------
332
- // Job Service Messages
333
- // ----------------------------
334
- message JobRequest {
335
- string job_id = 1;
336
- string xml_name = 2;
337
- string xml_path = 3;
338
- repeated string layers = 4;
339
- }
340
-
341
- message JobProgress {
342
- string message = 1;
343
- string error = 2;
344
- bool done = 3;
345
- }
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/struct.proto"; // after syntax!
4
+
5
+ package map;
6
+
7
+ // ----------------------------
8
+ // Map Service
9
+ // ----------------------------
10
+ service MapService {
11
+ rpc PrintMap(PrintMapRequest) returns (PrintMapOut);
12
+ rpc RenderTile(RenderTileRequest) returns (RenderTileOut);
13
+ rpc GetTile(GetTileRequest) returns (GetTileOut);
14
+ rpc VectorTile(VectorTileRequest) returns (VectorTileOut);
15
+ rpc PoolClear(PoolClearRequest) returns (PoolClearOut);
16
+ rpc ClearTile(ClearTileRequest) returns (ClearTileOut);
17
+ rpc ReadFile(ReadFileRequest) returns (ReadFileOut);
18
+ rpc WriteFile(WriteFileRequest) returns (WriteFileOut);
19
+ rpc ReadDir(ReadDirRequest) returns (ReadDirOut);
20
+ rpc FileStat(FileStatRequest) returns (FileStatOut);
21
+ rpc FileSearch(FileSearchRequest) returns (FileSearchOut);
22
+ rpc CreateXML(CreateXMLRequest) returns (stream JobProgress); // streaming XML creation
23
+ rpc CreateIndex(CreateIndexRequest) returns (CreateIndexOut); // create/update index.geojson for folder
24
+ rpc ConvertLog(ConvertLogRequest) returns (ConvertLogOut); // json state for current stream tasks
25
+ rpc ConvertCog(ConvertCogRequest) returns (stream JobProgress); // streaming COG conversion
26
+ rpc ConvertVector(ConvertVectorRequest) returns (ConvertVectorOut); // vector file/archive -> GeoJSON
27
+ rpc ImportData(ImportDataRequest) returns (stream JobProgress); // streaming SHP -> PostGIS import
28
+ rpc DumpTable(DumpTableRequest) returns (stream JobProgress); // streaming PostGIS -> SHP dump
29
+ rpc UploadXML(UploadXMLRequest) returns (UploadXMLOut);
30
+ rpc UploadRaster(UploadRasterRequest) returns (UploadRasterOut);
31
+ rpc UploadChunk(UploadChunkRequest) returns (UploadChunkOut);
32
+ rpc GetRasterStatus(GetRasterStatusRequest) returns (GetStatusOut);
33
+ rpc GetStat(GetStatRequest) returns (GetStatOut);
34
+ rpc GetLogs(GetLogsRequest) returns (GetLogsOut);
35
+ rpc GetRasterInfo(GetRasterInfoRequest) returns (GetRasterInfoOut);
36
+ rpc GetMeta(GetMetaRequest) returns (GetMetaOut);
37
+ }
38
+
39
+ // ----------------------------
40
+ // Messages for MapService
41
+ // ----------------------------
42
+ message PrintMapRequest {
43
+ string path = 1;
44
+ string geojson = 2;
45
+ repeated double bbox = 3; // [minx, miny, maxx, maxy]
46
+ int32 width = 4;
47
+ int32 height = 5;
48
+ string ttl = 6; // "5m", "1h", "1d" or "0"
49
+ optional bool base64 = 7; // optional output mode flag: true -> base64, false -> raw bytes
50
+ int32 opacity = 8; // 0-255
51
+ repeated string colors = 9; // [ #00FF00, #0000FF]
52
+ repeated string layers = 10;
53
+ optional bool ignoreBusy = 11; // when true fallback to one-off renderer if pool is exhausted
54
+ }
55
+
56
+ message PrintMapOut {
57
+ string base64 = 1;
58
+ bool cache = 2;
59
+ string err = 3;
60
+ bytes data = 7; // raw PNG bytes (used when request.base64=false)
61
+ }
62
+
63
+ message RenderTileRequest {
64
+ string name = 1;
65
+ string path = 2;
66
+ repeated double bbox = 3; // [minx, miny, maxx, maxy]
67
+ int32 width = 4;
68
+ string ttl = 5; // "5m", "1h", "1d" or "0"
69
+ string debug = 6;
70
+ optional int32 z = 7; // optional XYZ tile zoom
71
+ optional int32 x = 8; // optional XYZ tile x
72
+ optional int32 y = 9; // optional XYZ tile y
73
+ bool meta = 10; // when true return tile metadata/path only (without base64 image payload)
74
+ optional bool base64 = 11; // optional output mode flag: true -> base64, false -> raw bytes
75
+ optional string format = 12; // optional tile image format: png|jpg|jpeg|webp
76
+ optional bool ignoreBusy = 13; // when true fallback to one-off renderer if pool is exhausted
77
+ optional int32 maxZoom = 14; // optional per-request max zoom override
78
+ }
79
+
80
+ message RenderTileOut {
81
+ string base64 = 1;
82
+ bool cache = 2;
83
+ string err = 3;
84
+ string xml_path = 4;
85
+ string tile_path = 5;
86
+ string tile_url = 6;
87
+ bytes data = 7; // raw PNG bytes (used when request.base64=false)
88
+ }
89
+
90
+ message GetTileRequest {
91
+ string path = 1; // tile path relative to tiles root
92
+ bool meta = 2; // when true return metadata/path only without binary payload
93
+ }
94
+
95
+ message GetTileOut {
96
+ string tile_path = 1; // normalized relative tile path under tiles/
97
+ bytes data = 2; // raw tile bytes when meta=false
98
+ string err = 3;
99
+ }
100
+
101
+ message VectorTileRequest {
102
+ string path = 1; // vector tile folder/path relative to tiles root
103
+ int32 z = 2;
104
+ int32 x = 3;
105
+ int32 y = 4;
106
+ bool meta = 5; // when true return metadata/path only without binary payload
107
+ }
108
+
109
+ message VectorTileOut {
110
+ string tile_path = 1; // normalized relative tile path under tiles/
111
+ bytes data = 2; // raw vector tile bytes when meta=false
112
+ string err = 3;
113
+ }
114
+
115
+ message ClearTileRequest {
116
+ string name = 1;
117
+ string path = 2;
118
+ }
119
+
120
+ message PoolClearRequest {
121
+ string path = 1;
122
+ }
123
+
124
+ message PoolClearOut {
125
+ string result = 1;
126
+ string err = 2;
127
+ }
128
+
129
+ message ClearTileOut {
130
+ string result = 1;
131
+ string err = 2;
132
+ }
133
+
134
+ message ReadFileRequest {
135
+ string path = 1;
136
+ }
137
+
138
+ message ReadFileOut {
139
+ string data = 1;
140
+ string path = 2;
141
+ string err = 3;
142
+ }
143
+
144
+ message WriteFileRequest {
145
+ string path = 1;
146
+ string data = 2;
147
+ }
148
+
149
+ message WriteFileOut {
150
+ string status = 1;
151
+ string path = 2;
152
+ string err = 3;
153
+ }
154
+
155
+ message FileStatRequest {
156
+ string path = 1;
157
+ }
158
+
159
+ message FileStatOut {
160
+ bool exists = 1;
161
+ string name = 2;
162
+ int64 size = 3;
163
+ string adate = 4;
164
+ string cdate = 5;
165
+ string mdate = 6;
166
+ }
167
+
168
+ message FileSearchRequest {
169
+ string path = 1;
170
+ string key = 2;
171
+ string period = 3;
172
+ int64 size = 4;
173
+ }
174
+
175
+ message FileSearchOut {
176
+ bool exists = 1;
177
+ int32 count = 2;
178
+ repeated FileInfo files = 3;
179
+ repeated DirInfo directories = 4;
180
+ }
181
+
182
+ message ReadDirRequest {
183
+ string path = 1;
184
+ }
185
+
186
+ message FileInfo {
187
+ string name = 1;
188
+ int64 size = 2;
189
+ string date = 3;
190
+ string dir = 4;
191
+ optional bool cog = 5; // COG flag for TIFF files
192
+ }
193
+
194
+ message DirInfo {
195
+ string name = 1;
196
+ int64 size = 2;
197
+ string date = 3;
198
+ int64 children = 4;
199
+ }
200
+
201
+ message ReadDirOut {
202
+ bool exists = 1;
203
+ int32 count = 2;
204
+ repeated FileInfo files = 3;
205
+ repeated DirInfo directories = 4;
206
+ }
207
+
208
+ message CreateXMLRequest {
209
+ string path = 1;
210
+ int32 srid = 2;
211
+ int32 previewZoom = 3;
212
+ repeated string layers = 4;
213
+ bool vrt = 5;
214
+ string name = 6;
215
+ string debug = 7;
216
+ string nocache = 8;
217
+ string proj4 = 9;
218
+ bool cog = 10; // enable COG pipeline and map.xml without preview/zoom split
219
+ bool preview = 11; // build preview and include preview layer in XML
220
+ bool recursive = 12; // recursive source scan for folder targets
221
+ string compress = 13; // COG compression mode: AUTO|DEFLATE|ZSTD|LZW|JPEG
222
+ bool recompress = 14; // allow re-converting files that are already COG
223
+ int32 quality = 15; // JPEG quality (1..100), 0 means default 85
224
+ bool single = 16; // when path is folder, create one XML per raster file
225
+ string mode = 17; // folder mode: auto|single|multi (replaces legacy single=true)
226
+ int32 minZoom = 18; // minzoom value for map.xml Parameters (default: 10)
227
+ reserved 19, 20, 21, 22, 27;
228
+ reserved "vrtResample", "vrtResolution", "vrtXRes", "vrtYRes", "vrtTap";
229
+ string vrtSrcNodata = 23; // source nodata value(s), e.g. "0" or "0 0 0"
230
+ string vrtNodata = 24; // VRT nodata value(s)
231
+ bool vrtHideNodata = 25; // hide nodata in VRT
232
+ bool vrtAddAlpha = 26; // add alpha band in VRT
233
+ bool overwrite = 28; // overwrite existing xml when true
234
+ }
235
+
236
+ message CreateIndexRequest {
237
+ string path = 1; // folder path under raster root
238
+ bool recursive = 2; // include nested folders
239
+ bool overwrite = 3; // recreate existing index.geojson
240
+ }
241
+
242
+ message CreateIndexOut {
243
+ string path = 1; // relative index.geojson path
244
+ bool created = 2; // true when index.geojson written in this call
245
+ bool skipped = 3; // true when existing index.geojson kept as-is
246
+ bool overwritten = 4; // true when existing index.geojson was replaced
247
+ int32 source_count = 5; // discovered source TIFF count
248
+ int32 feature_count = 6; // written feature count
249
+ int32 skipped_sources_count = 7; // sources skipped due unreadable/missing geometry
250
+ }
251
+
252
+ message ConvertLogRequest {
253
+ string path = 1; // optional filter by request path
254
+ string method = 2; // optional filter by method (CreateXML|ConvertCog)
255
+ }
256
+
257
+ message ConvertLogOut {
258
+ string data = 1; // json payload with current stream tasks
259
+ string stat_path = 2; // relative path to stat file: log/stream/stat/[date].log
260
+ string err = 3; // error text when failed
261
+ }
262
+
263
+ message ConvertCogRequest {
264
+ string name = 1; // deprecated fallback: file name only
265
+ string path = 2; // raster file or folder
266
+ bool recursive = 3; // process nested folders when path is directory
267
+ string compress = 4; // COG compression mode: AUTO|DEFLATE|ZSTD|LZW|JPEG
268
+ bool recompress = 5; // allow re-converting files that are already COG
269
+ int32 quality = 6; // JPEG quality (1..100), 0 means default 85
270
+ int32 srid = 7; // optional target SRID for reprojection before COG conversion
271
+ }
272
+
273
+ message ConvertVectorRequest {
274
+ bytes data = 1; // input vector file/archive bytes
275
+ string format = 2; // optional input format hint: zip|shp|kml|gml|geojson|json
276
+ int32 srs = 3; // target EPSG code, default 4326
277
+ string filename = 4; // optional original filename for extension/layer detection
278
+ string encoding = 5; // optional encoding, default UTF-8
279
+ }
280
+
281
+ message ConvertVectorOut {
282
+ string geojson = 1; // converted GeoJSON payload
283
+ string err = 2; // error text when failed
284
+ int64 size = 3; // output GeoJSON byte size
285
+ }
286
+
287
+ message ImportDataRequest {
288
+ string path = 1; // path to .shp file or directory under vector root
289
+ bool recursive = 2; // process nested folders when path is directory
290
+ optional bool force = 3; // overwrite existing tables when true; defaults to true when omitted
291
+ string mode = 4; // import mode: file|type (aliases: 1|2)
292
+ string db = 5; // PostgreSQL URL: postgresql://user:pass@host:port/dbname
293
+ string schema = 6; // target schema override
294
+ string type = 7; // optional geometry type override, e.g. LineString
295
+ }
296
+
297
+ message DumpTableRequest {
298
+ string path = 1; // target directory under vector/root where SHP files will be written
299
+ optional bool overwrite = 2; // overwrite existing shapefiles when true
300
+ repeated string include = 3; // optional allow-list of table names to dump
301
+ optional bool explodeMulti = 4; // dump multipart geometries as separate single-part features
302
+ repeated string ignore = 5; // optional deny-list of table names to skip
303
+ int32 limit = 6; // optional max number of tables to dump after filtering
304
+ }
305
+
306
+ message UploadXMLRequest {
307
+ string name = 1;
308
+ string xml = 2;
309
+ string encoding = 3;
310
+ string path = 4;
311
+ }
312
+
313
+ message UploadXMLOut {
314
+ string status = 1;
315
+ string filepath = 2;
316
+ }
317
+
318
+ message UploadRasterRequest {
319
+ string path = 1;
320
+ bytes data = 2;
321
+ bool chunked = 3;
322
+ int64 filesize = 4;
323
+ }
324
+
325
+ message UploadRasterOut {
326
+ string status = 1;
327
+ int64 uploaded = 2;
328
+ bool finished = 3;
329
+ }
330
+
331
+ message UploadChunkRequest {
332
+ string path = 1;
333
+ int64 part = 2;
334
+ int64 offset = 3;
335
+ bytes data = 4;
336
+ int64 filesize = 5;
337
+ }
338
+
339
+ message UploadChunkOut {
340
+ string status = 1;
341
+ int64 uploaded = 2;
342
+ bool finished = 3;
343
+ string path = 4;
344
+ }
345
+
346
+ message GetRasterStatusRequest {
347
+ string path = 1;
348
+ bool md5 = 2;
349
+ }
350
+
351
+ message GetStatusOut {
352
+ bool exists = 1;
353
+ string size = 2;
354
+ bool finished = 3;
355
+ }
356
+
357
+ message GetStatRequest {
358
+ string period = 1; // "5m", "1h", "1d"
359
+ string path = 2; // optional map_id or XML/map path filter
360
+ bool recursive = 3; // when path is a directory/map prefix, include nested maps
361
+ }
362
+
363
+ message GetStatOut {
364
+ google.protobuf.Struct result = 1; // dynamic stats structure
365
+ }
366
+
367
+ message GetLogsRequest {
368
+ string path = 1; // "info", "info/2026-01-01.log" etc.
369
+ }
370
+
371
+ message GetLogsOut {
372
+ string data = 1;
373
+ string links = 2;
374
+ string err = 3;
375
+ }
376
+
377
+ message GetRasterInfoRequest {
378
+ string path = 1;
379
+ int64 srid = 3;
380
+ string proj4 = 4;
381
+ }
382
+
383
+ message FileItem {
384
+ string name = 1;
385
+ string size = 2;
386
+ }
387
+
388
+ message GetRasterInfoData {
389
+ string total_size = 1;
390
+ string extension = 2;
391
+ int64 srid = 3;
392
+ string proj4 = 4;
393
+ repeated float extent = 5;
394
+ repeated FileItem files = 6;
395
+ int64 width = 7;
396
+ int64 height = 8;
397
+ int64 bands_count = 9;
398
+ string resolution = 10;
399
+ repeated string bands = 11;
400
+ int64 color_depth = 12;
401
+ string compression = 13;
402
+ bool xml = 14;
403
+ optional bool cog = 15;
404
+ }
405
+
406
+ message GetRasterInfoOut {
407
+ GetRasterInfoData data = 1;
408
+ bool cache = 2;
409
+ }
410
+
411
+ message GetMetaRequest {
412
+ string path = 1;
413
+ repeated double bbox = 2; // optional [minx, miny, maxx, maxy]
414
+ }
415
+
416
+ message GetMetaOut {
417
+ google.protobuf.Struct data = 1; // raw metadata JSON
418
+ bool cache = 2; // true when metadata file already existed
419
+ string meta_path = 3; // relative metadata file path
420
+ bool bbox_intersects = 4; // bbox vs metadata extent (true when bbox absent)
421
+ }
422
+
423
+ // ----------------------------
424
+ // Job Service Messages
425
+ // ----------------------------
426
+ message JobRequest {
427
+ string job_id = 1;
428
+ string xml_name = 2;
429
+ string xml_path = 3;
430
+ repeated string layers = 4;
431
+ }
432
+
433
+ message JobProgress {
434
+ string message = 1;
435
+ string error = 2;
436
+ bool done = 3;
437
+ }