在上篇中,已经简单修改了style,修改的是注记内容和注记字体、显示比例尺。

这篇中,详细讲一下怎么使用QGIS连接postgresql数据库,进行配图,并将style文件导出,引入到geoserver中。

QGIS入门与简单使用请参考:

https://blog.csdn.net/sinat_41310868/article/details/105355003

   

一、QGIS连接postgresql

图层管理工具栏,点击添加PostGIS图层工具。

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

 

添加PostGIS表中,点击新建。

弹出创建一个新的PostGIS连接对话框,填写连接信息,名称随便起,服务空着,主机如果是本机写localhost,其他写数据库IP,端口号默认5432,数据库填上;用户名和密码是数据库的用户名和密码,勾选保存,点击测试连接,试一下,连接成功的话,点击OK。

 

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

 

把QGIS关掉,重新打开。

点击浏览器面板中PostGIS下的对应表,添加到图层面板。

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

 

   二、QGIS配图

QGIS配图和sld文件导出参见:

0_4_QGIS样式配图

https://blog.csdn.net/sinat_41310868/article/details/105353142

0_15_QGIS导出geojson和sld文件

https://blog.csdn.net/sinat_41310868/article/details/105353547

 

   三、geoserver引用sld文件

数据——Styles——Add a new style,新增style。

 

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

 

Style Data中,选好工作区,点击Upload a style file中的浏览,选择sld文件,最后点击Upload即可。

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

点击提交,既保存了style。

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

sld的文件名自动赋值了样式名称。

但上传的sld文件会丢失一些属性,例如注记和比例尺等。

 

四、geoserver编写style样式

因为sld文件会丢失属性,所以style还是自己编写的好。

  1. 复制style

先从一个基础模板开始。

新建或者打开一个style,Data中,Style Content下。

或者Generate a default style,生成一个默认的style。

或者copy from existing style,复制一个现存的style。

跳出提示框,点击确定就行。

这里是复制一个现有的style,在这个基础上修改。

webGIS实践(geoserver+openlayer+django)2_2_geoserver style配置与QGIS连接数据库配图

 

  1. 填充、边线、透明度

Fill是填充,fill-opacity是透明度;stroke是边线颜色,stroke-width是边线宽度,stroke-opacity是边线透明度。

          <PolygonSymbolizer>

            <Fill>

              <CssParameter name="fill">#AAAAAA</CssParameter>

                       <CssParameter name="fill-opacity">1.0</CssParameter>

            </Fill>

            <Stroke>

              <CssParameter name="stroke">#000000</CssParameter>

              <CssParameter name="stroke-width">1</CssParameter>

              <CssParameter name="stroke-opacity">1.0</CssParameter>

            </Stroke>

          </PolygonSymbolizer>

  1. 指定几何对象

理论上说,一条记录不能有多种几何对象,但是有时候会有一条记录存了点线面多种几何对象的情况。这种情况下,就需要指定渲染的对象。

<Geometry><ogc:PropertyName>geom</ogc:PropertyName></Geometry>语句就是指定渲染geom字段。

 

        <Rule>

          <Name>rule1</Name>

          <Title>Gray Polygon with Black Outline</Title>

          <Abstract>A polygon with a gray fill and a 1 pixel black outline</Abstract>

          <PolygonSymbolizer>

            <Geometry><ogc:PropertyName>geom</ogc:PropertyName></Geometry>

            <Fill>

              <CssParameter name="fill">#AAAAAA</CssParameter>

                       <CssParameter name="fill-opacity">1.0</CssParameter>

            </Fill>

            <Stroke>

              <CssParameter name="stroke">#000000</CssParameter>

              <CssParameter name="stroke-width">1</CssParameter>

              <CssParameter name="stroke-opacity">1.0</CssParameter>

            </Stroke>

          </PolygonSymbolizer>

        </Rule>

 

  1. 注记

如下语句是制定一条规则,渲染name_ch字段为注记,且注记在比例尺大于1:32000的时候才显示。Font中的内容是字体,LabelPlacement中的内容是注记的锚点、背景、阴影等属性。

        <Rule>

          <MaxScaleDenominator>32000</MaxScaleDenominator>

          <TextSymbolizer>

            <Label>

              <ogc:PropertyName>name_ch</ogc:PropertyName>

            </Label>

            <Font>

              <CssParameter name="font-family">Microsoft YaHei</CssParameter>

              <CssParameter name="font-weight">Bold</CssParameter>

              <CssParameter name="font-size">14</CssParameter>

            </Font>

            <LabelPlacement>

              <PointPlacement>

                <AnchorPoint>

                  <AnchorPointX>0.5</AnchorPointX>

                  <AnchorPointY>0.5</AnchorPointY>

                </AnchorPoint>

                <Displacement>

                  <DisplacementX>0</DisplacementX>

                  <DisplacementY>-15</DisplacementY>

                </Displacement>

              </PointPlacement>

            </LabelPlacement>

            <Halo>

              <Radius>

                <ogc:Literal>2</ogc:Literal>

              </Radius>

              <Fill>

                <CssParameter name="fill">#FFFFFF</CssParameter>

              </Fill>

            </Halo>

            <Fill>

              <CssParameter name="fill">#000000</CssParameter>

            </Fill>

          </TextSymbolizer>

        </Rule>

 

  1. 比例尺

Style的比例尺是设在规则里,PolygonSymbolizer和TextSymbolizer的比例尺是分别设置的。

          <MaxScaleDenominator>32000</MaxScaleDenominator>

          <MinScaleDenominator>32000</MinScaleDenominator>

 

 

  1. 更多内容

更多内容参见官网:

https://docs.geoserver.org/stable/en/user/styling/index.html#styling

 

地图配图是一项比较繁琐复杂的工作,这里只是非常简单的讲了些geoserver风格文件配置的操作,如果需要了解更多内容,可以去看天地图数据配图标准和ArcGIS地图制图等内容。

 

 

相关文章: