目录

上一个主题

6.1. 使用 QGIS 加载数据

下一个主题

6.3. 在 QGIS 中导出样式


6.2. 使用 QGIS 连接数据库配图发布

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

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

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

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

6.2.1. QGIS连接postgresql

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

添加PostGIS表中,点击新建。

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

把QGIS关掉,重新打开。

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

6.2.2. 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

6.2.3. geoserver引用sld文件

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

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

点击提交,既保存了style。

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

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

6.2.4. geoserver编写style样式

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

复制style

先从一个基础模板开始。

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

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

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

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

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

填充、边线、透明度

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>

6.2.5. 指定几何对象

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

<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>

6.2.6. 注记

如下语句是制定一条规则,渲染 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>

6.2.7. 比例尺

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

<MaxScaleDenominator>32000</MaxScaleDenominator>
<MinScaleDenominator>32000</MinScaleDenominator>

更多内容参见官网:

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

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