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样式管理列表
图 2SLD样式新增
图 3JSON样式新增
图 4SLD样式编辑
图 5JSON样式编辑
图 6样式预览
图 7SLD样式关联列表
二、功能描述
- 样式列表:展示样式名称、样式格式、工作区、创建时间、修改时间等信息的分页列表;
- 创建/编辑:选择SLD(GeoServer样式)和JSON(Mapbox样式)格式,分别填写对应格式的样式相关信息;样式名称重复不能保存。
- 预览:预览绑定此样式的图层,默认样式优先级大于附加样式优先级;
- 关联:编辑关联图层的默认样式和附加样式;取消默认样式,系统会指定一个默认样式“generic”。
- 删除:根据ID删除单条记录。
三、接口设计
样式管理分页列表 | ||||
版本说明 | V1.0 | |||
服务地址 | style/getStylePageList | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | keywords | String | 否 | 关键字 |
pageNum | Int | 否 | 当前页 | |
pageSize | Int | 否 | 每一页的大小 | |
workspaceName | String | 否 | 工作区名称 | |
返回结果 | { "code": 200, "msg": null, "data": { "pageNum": 1, "pageSize": 10, "pages": 1, "total": 6, "pageData": [ { "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151", "styleName": "xa_sthx_poly", "workspaceName": null, "workspaceId": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb7", "styleName": "generic", "workspaceName": null, "workspaceId": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb8", "styleName": "raster", "workspaceName": null, "workspaceId": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb9", "styleName": "polygon", "workspaceName": null, "workspaceId": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fba", "styleName": "line", "workspaceName": null, "workspaceId": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fbb", "styleName": "point", "workspaceName": null, "workspaceId": null } ] } } |
SLD样式创建 | ||||
版本说明 | V1.0 | |||
服务地址 | style/addSldStyle | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "workspaceId": "WorkspaceInfo.e60e1a1e-ec69-4b5f-b9eb-b6475b8d5621", "rawStyle": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:se=\"http://www.opengis.net/se\" version=\"1.1.0\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <NamedLayer>\n <se:Name>xa_sthx_4495</se:Name>\n <UserStyle>\n <se:Name>xa_sthx_4495</se:Name>\n <se:FeatureTypeStyle>\n <se:Rule>\n <se:Name>Single symbol</se:Name>\n <se:PolygonSymbolizer>\n <se:Fill>\n <se:SvgParameter name=\"fill\">#f60318</se:SvgParameter>\n <se:SvgParameter name=\"fill-opacity\">0</se:SvgParameter>\n </se:Fill>\n <se:Stroke>\n <se:SvgParameter name=\"stroke\">#fb0a47</se:SvgParameter>\n <se:SvgParameter name=\"stroke-width\">1</se:SvgParameter>\n <se:SvgParameter name=\"stroke-linejoin\">bevel</se:SvgParameter>\n </se:Stroke>\n </se:PolygonSymbolizer>\n </se:Rule>\n </se:FeatureTypeStyle>\n </UserStyle>\n </NamedLayer>\n</StyledLayerDescriptor>\n", "hasDefault": false, "styleName": "xa_sthx_poly", "format": "SLD" } | |||
返回结果 | { "code": 200, "msg": "新增SLD样式成功", "data": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151" } |
JSON样式创建 | ||||
版本说明 | V1.0 | |||
服务地址 | style/addJsonStyle | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8", "rawStyle": "{\"id\":\"background\",\"type\":\"background\",\"paint\":{\"background-color\":\"rgba(185, 148, 148, 1)\"}}", "hasDefault": false, "styleName": "third-json", "format": "JSON" } | |||
返回结果 | { "code": 200, "msg": "新增JSON样式成功", "data": "StyleInfo.3aa34eac-f86b-48eb-801c-e38de98c2365" } |
SLD样式编辑 | ||||
版本说明 | V1.0 | |||
服务地址 | style/editSldStyle | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "styleId":"StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151", "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8", "rawStyle": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:se=\"http://www.opengis.net/se\" version=\"1.1.0\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <NamedLayer>\n <se:Name>xa_sthx_4495</se:Name>\n <UserStyle>\n <se:Name>xa_sthx_4495</se:Name>\n <se:FeatureTypeStyle>\n <se:Rule>\n <se:Name>Single symbol1</se:Name>\n <se:PolygonSymbolizer>\n <se:Fill>\n <se:SvgParameter name=\"fill\">#f60318</se:SvgParameter>\n <se:SvgParameter name=\"fill-opacity\">0</se:SvgParameter>\n </se:Fill>\n <se:Stroke>\n <se:SvgParameter name=\"stroke\">#fb0a47</se:SvgParameter>\n <se:SvgParameter name=\"stroke-width\">1</se:SvgParameter>\n <se:SvgParameter name=\"stroke-linejoin\">bevel</se:SvgParameter>\n </se:Stroke>\n </se:PolygonSymbolizer>\n </se:Rule>\n </se:FeatureTypeStyle>\n </UserStyle>\n </NamedLayer>\n</StyledLayerDescriptor>\n", "hasDefault": false, "styleName": "first-style2", "format": "SLD" } | |||
返回结果 | { "code": 200, "msg": "修改SLD样式成功", "data": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151" } |
JSON样式编辑 | ||||
版本说明 | V1.0 | |||
服务地址 | style/editJsonStyle | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "styleId":"StyleInfo.3aa34eac-f86b-48eb-801c-e38de98c2365", "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8", "rawStyle": "{\"id\":\"background\",\"type\":\"background\",\"paint\":{\"background-color\":\"rgba(23, 148, 148, 1)\"}}", "hasDefault": false, "styleName": "third-update-json", "format": "JSON" } | |||
返回结果 | { "code": 200, "msg": "修改JSON样式成功", "data": "StyleInfo.3aa34eac-f86b-48eb-801c-e38de98c2365" } |
SLD样式详情 | ||||
版本说明 | V1.0 | |||
服务地址 | style/sld/getDetail | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | styleId | String | 是 | 样式id |
返回结果 | { "code": 200, "msg": "获取SLD样式详情成功", "data": { "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151", "styleName": "first-style2", "workspaceName": "secondWP", "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8", "format": "SLD", "rawStyle": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:se=\"http://www.opengis.net/se\" version=\"1.1.0\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <NamedLayer>\n <se:Name>xa_sthx_4495</se:Name>\n <UserStyle>\n <se:Name>xa_sthx_4495</se:Name>\n <se:FeatureTypeStyle>\n <se:Rule>\n <se:Name>Single symbol1</se:Name>\n <se:PolygonSymbolizer>\n <se:Fill>\n <se:SvgParameter name=\"fill\">#f60318</se:SvgParameter>\n <se:SvgParameter name=\"fill-opacity\">0</se:SvgParameter>\n </se:Fill>\n <se:Stroke>\n <se:SvgParameter name=\"stroke\">#fb0a47</se:SvgParameter>\n <se:SvgParameter name=\"stroke-width\">1</se:SvgParameter>\n <se:SvgParameter name=\"stroke-linejoin\">bevel</se:SvgParameter>\n </se:Stroke>\n </se:PolygonSymbolizer>\n </se:Rule>\n </se:FeatureTypeStyle>\n </UserStyle>\n </NamedLayer>\n</StyledLayerDescriptor>\n", "legend": { "onlineResource": null, "width": 0, "heignt": 0, "format": null }, "hasDefault": false } } |
SLD默认样式列表 | ||||
版本说明 | V1.0 | |||
服务地址 | style/sld/default | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | 无 | |||
返回结果 | { "code": 200, "msg": "获取SLD默认样式列表成功", "data": [ { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb7", "styleName": "generic", "workspaceName": null, "workspaceId": null, "dateCreated": null, "dateModified": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb8", "styleName": "raster", "workspaceName": null, "workspaceId": null, "dateCreated": null, "dateModified": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb9", "styleName": "polygon", "workspaceName": null, "workspaceId": null, "dateCreated": null, "dateModified": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fba", "styleName": "line", "workspaceName": null, "workspaceId": null, "dateCreated": null, "dateModified": null }, { "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fbb", "styleName": "point", "workspaceName": null, "workspaceId": null, "dateCreated": null, "dateModified": null } ] } |
SLD样式预览 | ||||
版本说明 | V1.0 | |||
服务地址 | style/previewSld | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | ||||
返回结果 | { "code" : 0, "data" : [ { } ], "message" : "string" } |
JSON样式预览 | ||||
版本说明 | V1.0 | |||
服务地址 | style/previewJson | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | ||||
返回结果 | { "code" : 0, "data" : [ { } ], "message" : "string" } |
样式删除 | ||||
版本说明 | V1.0 | |||
服务地址 | style/deleteStylerById | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | styleId | String | 是 | 样式id |
返回结果 | { "code": 200, "msg": "xa-road删除成功", "data": "StyleInfo.6c9c1ac3-9ce5-4fe2-b60b-47c0f4481952" } |
样式批量删除 | ||||
版本说明 | V1.0 | |||
服务地址 | style/deleteStylerByIds | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | styleId | String | 是 | 样式id |
返回结果 | { "code": 200, "msg": "xa-road删除成功", "data": "StyleInfo.6c9c1ac3-9ce5-4fe2-b60b-47c0f4481952" } |
样式发布-样式发布界面的图层列表 | ||||
版本说明 | V1.0 | |||
服务地址 | style/publishing/info | |||
方法 | GET | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | styleId | String | 是 | 样式id |
keywords | String | 否 | 搜索关键字(匹配图层名称) | |
current | int | 否 | 当前页 | |
pageSize | int | 否 | 每页数 | |
返回结果 | { "code": 200, "msg": null, "data": { "pageNum": 1, "pageSize": 10, "pages": 1, "total": 2, "pageData": [ { "workspaceName": "firstWP", "layerId": "LayerInfo.764044e2-6c13-47bf-8efc-a0bd523706c7", "layerName": "6aa24711a54b40bfbab4bc35582dd017", "hasDefault": true, "associated": false }, { "workspaceName": "firstWP", "layerId": "LayerInfo.dc62e605-1299-47e0-8eb1-d48b57e9ddd7", "layerName": "UTM2GTIF", "hasDefault": false, "associated": false } ] } } Response head |
样式发布-默认操作 | ||||
版本说明 | V1.0 | |||
服务地址 | style/defaultStyler | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "layerId": "LayerInfo.764044e2-6c13-47bf-8efc-a0bd523706c7", "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151", "styleState": true } | |||
返回结果 | { "code": 200, "msg": "修改成功", "data": null } |
样式发布-关联操作 | ||||
版本说明 | V1.0 | |||
服务地址 | style/subjoinStyler | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "layerId": "LayerInfo.764044e2-6c13-47bf-8efc-a0bd523706c7", "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151", "styleState": true } | |||
返回结果 | { "code": 200, "msg": "修改成功", "data": null } |
获取边界信息接口 | ||||
版本说明 | V1.0 | |||
服务地址 | layerGroup/calculateBoxInfo | |||
方法 | POST | |||
参数说明 | 名称 | 数据类型 | 是否必填 | 参数说明 |
输入参数 | { "layers": [ { "name": "line", "defaultStyle": true, "style": "line" }, { "name": "polygon", "defaultStyle": true, "style": "polygon" } ] } | |||
返回结果 | { "code": 200, "msg": null, "data": { "minX": 21.897338, "minY": 118.1231864, "maxX": 26.3797419, "maxY": 122.082368, "crs": "EPSG:4326" } } |