GeoServer使用

安装

创建容器

docker run -d --name geoserver \
-p 8180:8080 \
-e GEOSERVER_ADMIN_USER=geoserver \
-e GEOSERVER_ADMIN_PASSWORD=123456 \
-e TOMCAT_EXTRAS=false \
-v $(pwd)/opt_geoserver_data_dir:/opt/geoserver/data_dir \
kartoza/geoserver:2.23.1

添加MySQL支持(注意版本一致)

wget https://nchc.dl.sourceforge.net/project/geoserver/GeoServer/2.23.1/extensions/geoserver-2.23.1-mysql-plugin.zip
unzip geoserver-2.23.1-mysql-plugin.zip -d geoserver-2.23.1-mysql-plugin
docker cp geoserver-2.23.1-mysql-plugin/gt-jdbc-mysql-29.1.jar geoserver-23:/usr/local/tomcat/webapps/geoserver/WEB-INF/lib/
docker cp geoserver-2.23.1-mysql-plugin/mysql-connector-java-8.0.28.jar geoserver-23:/usr/local/tomcat/webapps/geoserver/WEB-INF/lib/
  • 高版本驱动连接低版本数据库可能遇到LocalDateTime强制转换错误,复制驱动时使用低版本驱动即可。(如未遇到,建议使用ZIP包中的版本)
  • mv mysql-connector-java-8.0.21.jar geoserver-2.23.1-mysql-plugin/mysql-connector-java-8.0.28.jar
  • 测试8.0.21驱动,连接8.0.19数据库正常。

重启生效

docker restart geoserver

达梦数据库支持

测试2.22.4可正常连接达梦数据库,需添加依赖到lib目录,重启生效。
官方安装包中提供的居然不能用。。。
MD5 853f09b67358486820b95aac4098fd83
附驱动包

避免tomcat展示报错信息
/usr/local/tomcat/conf/server.xml配置文件中的<Host>配置项中添加如下配置:

<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />

创建图层

添加“工作区”,名字用英文。
添加“数据存储”,填对应的数据库信息。
添加“图层”,选择列表中某个表(一般使用视图,过滤好需要的数据,也可使用CQL过滤)。
注意“数据”页的“定义SRS”,选择正确的坐标系,“边框”点“从数据中计算”,如果空间数据有误,会导致计算出错。如不计算,预览页的默认缩放有问题,不确认是否影响图层使用。
注意“发布”页的“Default Style”,必须选择一个已存在的,可选默认的纯色,也可在侧栏的“Styles”中新增。
点击“Layer Preview”预览。

点可以替换为对应emoji的png图
emoji素材

地图动态图标

点击侧栏中的【Styles】,新增一个。
指定某个字段,按照对应值动态显示图片

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
                       xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <NamedLayer>
        <Name>event_dyn</Name>
        <UserStyle>
            <Title>event_dyn</Title>
            <FeatureTypeStyle>
                <Rule>
                  <ogc:Filter>
                      <ogc:PropertyIsEqualTo>
                        <ogc:PropertyName>status</ogc:PropertyName>
                        <ogc:Literal>1</ogc:Literal>
                      </ogc:PropertyIsEqualTo>
                  </ogc:Filter>
                  <PointSymbolizer>
                    <Graphic>
                      <ExternalGraphic xmlns="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink">
                        <OnlineResource xlink:type="simple" xlink:href="event.png" />
                        <Format>image/png</Format>
                      </ExternalGraphic>
                      <Size><ogc:Literal>32</ogc:Literal></Size>
                    </Graphic>
                  </PointSymbolizer>
                </Rule>
                <Rule>
                  <ogc:Filter>
                      <ogc:PropertyIsEqualTo>
                        <ogc:PropertyName>status</ogc:PropertyName>
                        <ogc:Literal>2</ogc:Literal>
                      </ogc:PropertyIsEqualTo>
                  </ogc:Filter>
                  <PointSymbolizer>
                    <Graphic>
                      <ExternalGraphic xmlns="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink">
                        <OnlineResource xlink:type="simple" xlink:href="event_done.png" />
                        <Format>image/png</Format>
                      </ExternalGraphic>
                      <Size><ogc:Literal>32</ogc:Literal></Size>
                    </Graphic>
                  </PointSymbolizer>
                </Rule>
            </FeatureTypeStyle>
        </UserStyle>
    </NamedLayer>
</StyledLayerDescriptor>
posted @ 2022-05-26 23:27  一年`  阅读(62)  评论(0编辑  收藏  举报