Geoserver数据库服务配置 - MySql
- 前言
- 一、应用软件版本信息
- Geoserver
- MySql
- 二、图层服务
- 1. 数据库连接创建
- 2. 图层数据选择发布
- 2.1 直接发布数据库链接下的物理表或者视图内容
- 2.2 由Geoserver创建视图内容获取数据
- 三、样式配置
- 1. 样式内容文件sld的创建
- 1.1 创建普通样式内容
- 1.2 根据数据字段进行分段渲染
- 总结
前言
这里文档使用主要为geoserver与mysql数据库。
其他geoserver相关配置参考的文章可以参考 geoserver服务管理-图层与图层组发布、样式管理
一、应用软件版本信息
Geoserver
使用版本:2.17.5
JDK版本:1.8.0_114
Web应用服务器: Tomcat-8.5.6
具体使用可以依据服务器以及版本差异进行JDK与Web应用服务器的选择,不做强制限定
- 注意:这里使用geoserver会根据服务器自动分配内存,这里注意使用32位版本和64为版本服务器的差异,请保证至少分配内存512mb以上。内存影响切片生成的速度。
具体查看可以参考(默认用户admin/geoserver): - 跨域问题: geoserver\WEB-INF\web.xml 中根据自己的服务器类型tomcat还是netty 去掉 cross-origin 注释即可
MySql
使用版本:5.7.26 / 8.0.21
- 进行连接时,若原先MySql没有进行时区设置的重配置,需要自己进行时区的配置项设置。进行设置:set global time_zone = ‘+8:00’;,否则可能出现如下的错误报告内容:
二、图层服务
1. 数据库连接创建
进入数据存储操作界面
选择对应的数据库源(这里选择Mysql),依据配置内容进行数据存储的新增
2. 图层数据选择发布
此步骤主要为构建geoserver接收的geometry类型数据,常见使用的数据库函数有以下两个类别:
geometry ST_GeomFromGeoJSON(text geomjson)
geometry ST_GeomFromText(text WKT)
geometry为函数范围数据类型,text为函数接收参数数据类型。Geojson与WKT数据规范可以自行查找相关资料,了解格式规范。
进入新建图层操作窗口的界面
注意:
mysql5版本不会检查经纬度范围,经度在前、纬度在后,mysql8版本会检查经纬度范围,使用时可以设置数据图层geometry的srid为0,进行自适应配置。
在发布面类型
数据最好用geometry ST_GeomFromText(text WKT, srid)
,指定srid进行数据发布,mysql8版本用0来自适应数据检查
2.1 直接发布数据库链接下的物理表或者视图内容
选择已建立的数据源,选择对应表或者视图进行发布
确认配置内容,点击确认进行服务的发布
2.2 由Geoserver创建视图内容获取数据
创建视图配置的图层
编写相应的数据获取语句
点击确认,进入如2.1步骤内容,详细可参考说明。点击确认完成服务的发布。
三、样式配置
1. 样式内容文件sld的创建
进入样式管理操作界面创建自定义样式
在图层操作操作窗口选择需要编辑的图层服务,在发布选项卡选择已创建好的样式,点击保存,进行图层服务的样式修改。
1.1 创建普通样式内容
面样式(一个图层只能对应设置一个样式),点击提交创建完成
其余点、线的样式设置与此类似,可自行操作。
1.2 根据数据字段进行分段渲染
通过设置属性字段的过滤条件,设置不同的样式类型。
此sld样例仅作参考,此处根据traffic字段不同的值,设置颜色为绿色、橙色、红色。
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>traffic</Name>
<UserStyle>
<Title>A dark orange line style</Title>
<FeatureTypeStyle>
<Rule>
<Name>ydzs</Name>
<Title>green line</Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>traffic</ogc:PropertyName>
<ogc:Literal>1</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#00FF00
</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#00FF00</CssParameter>
<CssParameter name="stroke-width">0.5</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<Name>ydzs</Name>
<Title>orange line</Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>traffic</ogc:PropertyName>
<ogc:Literal>2</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FFFF00
</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#FFFF00</CssParameter>
<CssParameter name="stroke-width">0.5</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<Name>ydzs</Name>
<Title>red line</Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>traffic</ogc:PropertyName>
<ogc:Literal>3</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FF0000
</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">0.5</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
总结
以上为此次对geoserver数据库配置的一个间的记录,如果对你有所帮助,希望不要吝啬你的一个赞