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加载mysql geoserver mysql_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. 数据库连接创建

进入数据存储操作界面

geoserver加载mysql geoserver mysql_tomcat_02

选择对应的数据库源(这里选择Mysql),依据配置内容进行数据存储的新增

geoserver加载mysql geoserver mysql_mysql_03


geoserver加载mysql geoserver mysql_geoserver_04

2. 图层数据选择发布

此步骤主要为构建geoserver接收的geometry类型数据,常见使用的数据库函数有以下两个类别:

geometry ST_GeomFromGeoJSON(text  geomjson)
geometry ST_GeomFromText(text  WKT)

geometry为函数范围数据类型,text为函数接收参数数据类型。Geojson与WKT数据规范可以自行查找相关资料,了解格式规范。

进入新建图层操作窗口的界面

geoserver加载mysql geoserver mysql_图层_05

注意:
mysql5版本不会检查经纬度范围,经度在前、纬度在后,mysql8版本会检查经纬度范围,使用时可以设置数据图层geometry的srid为0,进行自适应配置。

在发布面类型数据最好用geometry ST_GeomFromText(text WKT, srid),指定srid进行数据发布,mysql8版本用0来自适应数据检查

2.1 直接发布数据库链接下的物理表或者视图内容

选择已建立的数据源,选择对应表或者视图进行发布

geoserver加载mysql geoserver mysql_图层_06

确认配置内容,点击确认进行服务的发布

geoserver加载mysql geoserver mysql_图层_07

2.2 由Geoserver创建视图内容获取数据

创建视图配置的图层

geoserver加载mysql geoserver mysql_图层_08

编写相应的数据获取语句

geoserver加载mysql geoserver mysql_mysql_09

点击确认,进入如2.1步骤内容,详细可参考说明。点击确认完成服务的发布。

三、样式配置

1. 样式内容文件sld的创建

进入样式管理操作界面创建自定义样式

geoserver加载mysql geoserver mysql_geoserver_10

在图层操作操作窗口选择需要编辑的图层服务,在发布选项卡选择已创建好的样式,点击保存,进行图层服务的样式修改。

geoserver加载mysql geoserver mysql_geoserver加载mysql_11

1.1 创建普通样式内容

面样式(一个图层只能对应设置一个样式),点击提交创建完成

geoserver加载mysql geoserver mysql_tomcat_12

其余点、线的样式设置与此类似,可自行操作。

1.2 根据数据字段进行分段渲染

通过设置属性字段的过滤条件,设置不同的样式类型。

geoserver加载mysql geoserver mysql_mysql_13

此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数据库配置的一个间的记录,如果对你有所帮助,希望不要吝啬你的一个赞