GeoServer改造Springboot源码一(公共部分)
GeoServer改造Springboot源码二(数据源管理设计)
GeoServer改造Springboot源码三(数据源管理代码)
GeoServer改造Springboot源码四(图层管理设计)
GeoServer改造Springboot源码五(图层管理代码)
GeoServer改造Springboot源码六(工作区管理设计)
GeoServer改造Springboot源码七(工作区管理代码)
GeoServer改造Springboot源码八(图层预览设计)
GeoServer改造Springboot源码九(图层预览代码)
GeoServer改造Springboot源码十(样式管理设计)-CSDN博客
GeoServer改造Springboot源码十一(样式管理代码)-CSDN博客
一、界面设计
图 1数据源管理列表
图 2选择数据源类型
1、PostGis
图 3新增PostGis数据源
2、Shapefile
图 4新增Shapefile数据源
3、GeoTiff
图 5新增GeoTiff数据源
二、功能描述
- 数据源列表:展示数据类型、工作区、数据源名称、类型、创建时间和修改时间等信息的分页列表;
- 查询:根据数据源名称查询数据源记录;
- 重置:重置查询结果,查询所有数据记录;
- 启停:启用和停用数据源,停用后的数据源,相关联的图层管理也对应停用,相关联的服务预览和图层预览会隐藏;
- 创建/编辑:新增信息需要进行名称的重复性校验,重复名称不能保存;
- 删除:根据ID删除单条记录。
三、接口设计
数据源分页列表 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/getDataStorePageList | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | keywords | string | 否 | 数据源名称 |
pageNum | integer | 否 | 当前页 | |
pageSize | integer | 否 | 每页数量 | |
返回结果 | { "code": 200, "msg": null, "data": { "pageNum": 1, "pageSize": 10, "pages": 1, "total": 1, "pageData": [ { "id": "DataStoreInfo.fe22e593-2ab8-48df-a08e-b3826adc70af", "name": "testPostGis111", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "workspaceName": "firstWP", "enabled": true, "type": "PostGIS", "description": null, "dateCreated": "2023-10-17 11:02:21", "dateModified": "2023-10-17 11:02:20" } ] } } |
数据源批量删除 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/deleteDataStoreByIds | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | ids | String | 是 | 数据源id集合,以,号隔开 |
recurse | String | 否 | 是否删除所有关联,默认false | |
purge | String | 否 | 清除模式(none/all/metadata)针对栅格数据 默认none | |
返回结果 | { "code": 200, "msg": "删除数据源成功", "data": [ "DataStoreInfo.bd1ca93b-3e16-4e57-812a-3e808b0b070a" ] } |
数据源删除 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/deleteDataStoreById | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | id | String | 是 | 数据源id |
recurse | String | 否 | 是否删除所有关联,默认false | |
purge | String | 否 | 清除模式(none/all/metadata)针对栅格数据 默认none | |
返回结果 | { "code": 200, "msg": "删除数据源成功", "data": [ "DataStoreInfo.bd1ca93b-3e16-4e57-812a-3e808b0b070a" ] } |
数据源启停 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/changeStatus | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | id | String | 是 | 数据源id |
type | String | 是 | 数据源type | |
enable | Boolean | 是 | 数据源状态 | |
返回结果 | { "code": 200, "msg": "启停数据源成功", "data": "DataStoreInfo.da6b0279-1acb-40fb-83e1-d4c2a52fac20" } |
1、PostGis
PostGis创建 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/addPostGis | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "dataStoreInfoVo": { "id": "", "type": "postgis", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "name": "testPostGis2", "description": "测试postgis连接", "enabled": true }, "postgisParametersVo": { "host": "192.168.1.241", "port": 5432, "database": "test_db", "schema": "public", "user": "postgres", "passwd": "postgres", "exposePrimaryKeys": false, "maxConnections": 10, "minConnections": 1, "fetchSize": 1000, "batchInsertSize": 1, "connectiontimeout": 20, "validateconn": true, "testWhileIdle": true, "evictorRunPeriodicity": 300, "maxConnectionIdleTime": 300, "evictorTestsPerRun": 3, "looseBbox": true, "estimatedExtends": true, "sslmode": "DISABLE", "preparedStatements": false, "maxOpenPreparedStatements": 50, "encodeFunctions": true, "simplificationMethod": "FAST", "createDatabase": false, "simplify": true } } | |||
返回结果 | { "code": 200, "msg": "新增PostGIS数据源成功", "data": "DataStoreInfo.b89cba17-8ac7-4b66-a69b-04711851518c" } |
PostGis编辑 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/editPostGis | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "dataStoreInfoVo": { "id": "DataStoreInfo.b89cba17-8ac7-4b66-a69b-04711851518c", "type": "postgis", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "name": "testPostGis2", "description": "测试postgis连接", "enabled": true }, "postgisParametersVo": { "host": "192.168.1.241", "port": 5432, "database": "test_db", "schema": "public", "user": "postgres", "passwd": "postgres", "exposePrimaryKeys": false, "maxConnections": 10, "minConnections": 1, "fetchSize": 1000, "batchInsertSize": 1, "connectiontimeout": 20, "validateconn": true, "testWhileIdle": true, "evictorRunPeriodicity": 300, "maxConnectionIdleTime": 300, "evictorTestsPerRun": 3, "looseBbox": true, "estimatedExtends": true, "sslmode": "DISABLE", "preparedStatements": false, "maxOpenPreparedStatements": 50, "encodeFunctions": true, "simplificationMethod": "FAST", "createDatabase": false, "simplify": true } } | |||
返回结果 | { "code": 200, "msg": "修改PostGIS数据源成功", "data": "DataStoreInfo.b89cba17-8ac7-4b66-a69b-04711851518c" } |
PostGis详情 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/postGis/getDetail | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | id | string | 是 | 数据源id |
返回结果 | { "code": 200, "msg": "获取postgis数据源详情成功", "data": { "dataStoreInfoVo": { "id": "DataStoreInfo.bb959966-a0ce-409f-8a61-f3f615ff882d", "name": "testPostGis", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "workspaceName": "firstWP", "enabled": true, "type": "postgis", "description": "测试postgis连接", "dateCreated": null, "dateModified": null }, "postgisParametersVo": { "host": "192.168.1.241", "database": "test_db", "user": "postgres", "passwd": "postgres", "namespace": null, "maxConnections": 10, "minConnections": 1, "validateconn": true, "fetchSize": 1000, "connectiontimeout": 20, "testWhileIdle": true, "evictorRunPeriodicity": 300, "maxConnectionIdleTime": 300, "evictorTestsPerRun": 3, "primaryKeyMetadataTable": null, "maxOpenPreparedStatements": 50, "exposePrimaryKeys": false, "sessionStartupSQL": null, "sessionCloseUpSQL": null, "callbackFactory": null, "defaultWorkspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "dbtype": "postgis", "looseBbox": true, "estimatedExtends": true, "port": 5432, "schema": "public", "createDatabase": false, "createDatabaseParams": null, "preparedStatements": false, "encodeFunctions": true, "simplify": true, "simplificationMethod": "FAST", "sslmode": "DISABLE", "batchInsertSize": 1 } } } |
PostGis默认参数 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/postgis/defaultValue | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | 无 | |||
返回结果 | { "code": 200, "msg": null, "data": { "host": "localhost", "database": null, "user": null, "passwd": null, "namespace": null, "maxConnections": 10, "minConnections": 1, "validateconn": true, "fetchSize": 1000, "connectiontimeout": 20, "testWhileIdle": true, "evictorRunPeriodicity": 300, "maxConnectionIdleTime": 300, "evictorTestsPerRun": 3, "primaryKeyMetadataTable": null, "maxOpenPreparedStatements": 50, "exposePrimaryKeys": false, "sessionStartupSQL": null, "sessionCloseUpSQL": null, "callbackFactory": null, "defaultWorkspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "dbtype": "postgis", "looseBbox": true, "estimatedExtends": true, "port": 5432, "schema": "public", "createDatabase": false, "createDatabaseParams": "", "preparedStatements": false, "encodeFunctions": true, "simplify": true, "simplificationMethod": "FAST", "sslmode": "DISABLE", "batchInsertSize": 1 } } |
2、Shapefile
Shapefile创建 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/addShapfile | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "type": "Shapefile", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "name": "shpRectangle2", "description": "描述shap", "enabled": true, "url": "/home/gmserver/anonymous/test/1697008712603/shp/6aa24711a54b40bfbab4bc35582dd017.shp", "charset": "ISO-8859-1", "spatialIndex": true, "memoryMapped": false, "cacheMemoryMaps": true, "id": "" } | |||
返回结果 | { "code": 200, "msg": "新增Shapefile数据源成功", "data": "DataStoreInfo.b89cba17-8ac7-4b66-a69b-04711851518c" } |
Shapefile编辑 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/editShapefile | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "type": "Shapefile", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "name": "shpRectangle2", "description": "描述shap", "enabled": true, "url": "/home/gmserver/anonymous/test/1697008712603/shp/6aa24711a54b40bfbab4bc35582dd017.shp", "charset": "ISO-8859-1", "spatialIndex": true, "memoryMapped": false, "cacheMemoryMaps": true, "id": "DataStoreInfo.b89cba17-8ac7-4b66-a69b-04711851518c" } | |||
返回结果 | { "code": 200, "msg": "修改Shapefile数据源成功", "data": "DataStoreInfo.b89cba17-8ac7-4b66-a69b-04711851518c" } |
Shapefile详情 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/shapefile/getDetail | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | id | string | 是 | 数据源id |
返回结果 | { "code": 200, "msg": "获取shapefile数据源详情成功", "data": { "id": "DataStoreInfo.da6b0279-1acb-40fb-83e1-d4c2a52fac20", "name": "2346", "workspaceId": "WorkspaceInfo.0ae4ca88-0a83-4edc-8504-574113c4557f", "workspaceName": "测试", "enabled": true, "type": "shapefile", "description": null, "dateCreated": null, "dateModified": null, "defaultWorkspaceId": "WorkspaceInfo.0ae4ca88-0a83-4edc-8504-574113c4557f", "charset": "ISO-8859-1", "spatialIndex": true, "memoryMapped": null, "timezone": null, "namespace": null, "cacheMemoryMaps": true, "url": "d:\\anonymous\\test\\1697594373057\\xa_water_4490Line.shp", "fstype": null } } |
Shapefile默认参数 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/shapefile/defaultValue | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | 无 | |||
返回结果 | { "code": 200, "msg": null, "data": { "id": null, "name": null, "workspaceId": null, "workspaceName": null, "enabled": true, "type": "shapefile", "description": null, "dateCreated": null, "dateModified": null, "defaultWorkspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "charset": "ISO-8859-1", "spatialIndex": true, "memoryMapped": false, "timezone": "Asia/Shanghai", "namespace": null, "cacheMemoryMaps": true, "url": null, "fstype": "shape" } } |
GeoTiff创建 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/addGeoTiff | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "id": "", "type": "geotiff", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "name": "GeoTiff-4", "description": "第三个GeoTiff测试文件", "enabled": true, "url": "/home/gmserver/anonymous/test/1697185574240/tif1.tiff" } | |||
返回结果 | { "code": 200, "msg": "新增GeoTiff数据源成功", "data": "CoverageStoreInfo.e739e9f0-6578-4868-8e7c-62eaf6450ef1" } |
3、GeoTiff
GeoTiff编辑 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/editGeoTiff | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "id": "CoverageStoreInfo.e739e9f0-6578-4868-8e7c-62eaf6450ef1", "type": "geotiff", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "name": "GeoTiff-4", "description": "第三个GeoTiff测试文件", "enabled": true, "url": "/home/gmserver/anonymous/test/1697185574240/tif1.tiff" } | |||
返回结果 | { "code": 200, "msg": "新增GeoTiff数据源成功", "data": "CoverageStoreInfo.e739e9f0-6578-4868-8e7c-62eaf6450ef1" } |
GeoTiff详情 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/geoTiff/getDetail | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | id | string | 是 | 数据源id |
返回结果 | { "code": 200, "msg": "获取tiff数据源详情成功", "data": { "id": "CoverageStoreInfo.d74ea729-9dce-4e1c-8423-b0ab0fea8702", "name": "GeoTiff-3", "workspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "workspaceName": "firstWP", "enabled": true, "type": null, "description": "第三个Tiff影像", "dateCreated": null, "dateModified": null, "url": "tiff/UTM2GTIF.tiff" } } |
GeoTiff默认参数 | ||||
版本说明 | V1.0 | |||
服务地址 | dataStore/geoTiff/defaultValue | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | 无 | |||
返回结果 | { "code": 200, "msg": null, "data": { "defaultWorkspaceId": "WorkspaceInfo.efcd7621-ae68-4337-81cc-e47812a105b4", "enabled": true } } |