Bootstrap

GeoServer改造Springboot源码二(数据源管理设计)

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数据源

二、功能描述

  1. 数据源列表:展示数据类型、工作区、数据源名称、类型、创建时间和修改时间等信息的分页列表;
  2. 查询:根据数据源名称查询数据源记录;
  3. 重置:重置查询结果,查询所有数据记录;
  4. 启停:启用和停用数据源,停用后的数据源,相关联的图层管理也对应停用,相关联的服务预览和图层预览会隐藏;
  5. 创建/编辑:新增信息需要进行名称的重复性校验,重复名称不能保存;
  6. 删除:根据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

  }

}

;