6.2. 使用 QGIS 连接数据库配图发布¶
在上篇中,已经简单修改了style,修改的是注记内容和注记字体、显示比例尺。
这篇中,详细讲一下怎么使用QGIS连接postgresql数据库,进行配图,并将style文件导出,引入到geoserver中。
QGIS入门与简单使用请参考:
https://blog.csdn.net/sinat_41310868/article/details/105355003
6.3. QGIS连接postgresql¶
图层管理工具栏,点击添加 PostGIS 图层工具。
添加 PostGIS 表中,点击新建。
弹出创建一个新的 PostGIS 连接对话框,填写连接信息,名称随便起,服务空着,主机如果是本机写localhost, 其他写数据库IP,端口号默认5432,数据库填上; 用户名和密码是数据库的用户名和密码,勾选保存,点击测试连接,试一下,连接成功的话,点击OK。
把QGIS关掉,重新打开。
点击浏览器面板中 PostGIS 下的对应表,添加到图层面板。
6.4. 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.5. geoserver引用sld文件¶
数据——Styles——Add a new style,新增style。
Style Data中,选好工作区,点击Upload a style file中的浏览,选择sld文件,最后点击Upload即可。
点击提交,既保存了style。
sld的文件名自动赋值了样式名称。
但上传的sld文件会丢失一些属性,例如注记和比例尺等。
6.6. 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.7. 指定几何对象¶
理论上说,一条记录不能有多种几何对象,但是有时候会有一条记录存了点线面多种几何对象的情况。这种情况下,就需要指定渲染的对象。
<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.8. 注记¶
如下语句是制定一条规则,渲染 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.9. 比例尺¶
Style的比例尺是设在规则里, PolygonSymbolizer
和 TextSymbolizer
的比例尺是分别设置的。
<MaxScaleDenominator>32000</MaxScaleDenominator>
<MinScaleDenominator>32000</MinScaleDenominator>
更多内容参见官网:
https://docs.geoserver.org/stable/en/user/styling/index.html#styling
地图配图是一项比较繁琐复杂的工作,这里只是非常简单的讲了些geoserver风格文件配置的操作, 如果需要了解更多内容,可以去看天地图数据配图标准和ArcGIS地图制图等内容。