zoukankan      html  css  js  c++  java
  • 开源WebGIS实施方案(五):基于SLD实现图层符号化及其应用

    SLD概述

    SLD(OpenGIS® Styled Layer Descriptor):图层样式注记。其当前版本是1.1.0。SLD是一种描述地图图层样式的标准,一般用于WMS中的图层符号化。

    说白了,SLD就是以xml文件的结构形式,定义了一组图层渲染的规则。一个简单的面状SLD示例如下:

    <?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
        <sld:UserLayer>
            <sld:LayerFeatureConstraints>
                <sld:FeatureTypeConstraint/>
            </sld:LayerFeatureConstraints>
            <sld:UserStyle>
                <sld:Name>municipality</sld:Name>
                <sld:FeatureTypeStyle>
                    <sld:Name>group 0</sld:Name>
                    <sld:Rule>
                        <sld:Name>New rule</sld:Name>
                        <sld:PolygonSymbolizer>
                            <sld:Fill>
                                <sld:CssParameter name="fill">#E9E9E9</sld:CssParameter>
                                <sld:CssParameter name="fill-opacity">0.5</sld:CssParameter>
                            </sld:Fill>
                            <sld:Stroke>
                                <sld:CssParameter name="stroke">#0000FF</sld:CssParameter>
                            </sld:Stroke>
                        </sld:PolygonSymbolizer>
                    </sld:Rule>
                </sld:FeatureTypeStyle>
            </sld:UserStyle>
        </sld:UserLayer>
    </sld:StyledLayerDescriptor>

    如何创建SLD 文件

    既然SLD本质上就是一个xml文件,所以我们当然有多种方式来创建SLD了。一般来说,主要有以下几类方式

    1、纯手写。

    2、利用开源软件对图层进行符号化渲染,再导出对应的SLD文件。

    3、先使用ArcGIS配图,再通过某种“黑科技”手段将图层样式导出为SLD。

    对于第一种方式,难度不是一般的高,不推荐使用。当然, 如果是一头很大很大的牛,可以考虑这么做。

    第二种方式是目前用的最多的一种方式,比较可行的软件有uDig、QGIS等,在桌面软件中进行符号化配置,然后就可以直接导出SLD文件。但这类开源软件使用起来多少都有一些bug,需要小心避坑。

    第三种方式,其实也可以算是第二种方式中的一个特例。作为全球领先的GIS软件,ArcGIS在制图表达上有着无可比拟的优势,但作为一个商业公司,与开源免费的精神有着不可调和的价值冲突,所以ArcGIS中并不提供导出图层符号化SLD文件功能。所以这个时候Coder就可以发挥专长来创造某种“黑科技”了——将ArcGIS图层渲染样式导出为SLD文件。

    uDig配图并创建SLD

    这里选用uDig来创建SLD文件。

    对城市点图层进行符号化,在样式编辑器中指定分类渲染,并且分别设置每一个类别的渲染符号、标注内容、标注样式等

    效果图如下:

    提醒一下,配图是一门技术活,也是一门艺术活,水略深。

    导出SLD文件:

     

    按照类似的方式,可以分别制作每一个图层的SLD文件。

    在GeoServer中应用SLD

    在桌面GIS软件中完成制图,相应的完成了SLD的创建工作。如果想要在WMS中展现出与桌面GIS中相同的渲染效果,就需要在GeoServer中应用SLD了。

    在GeoServer管理后台中添加新样式,确保SLD内容符合规则,设置好其它参数后提交。

    对GeoServer中,针对相应图层应用该Style。对于未发布的图层,可以在发布设置时候直接选用该Style,图层发布请参考开源WebGIS实施方案(四):GeoServer发布PostGIS数据。对于已发布的图层,可以进行编辑,选用该Style

    依照类似的方式,对其它图层应用Style。完成后,使用GeoServer的WMS服务获取地图渲染效果图

    总结:本文简单介绍了SLD是什么、能够起什么作用,介绍了创建SLD的三种方式,并使用其中一种方式进行实践应用。

  • 相关阅读:
    [dfs+水] hdu 4462 Scaring the Birds
    [Leetcode]-containsNearbyDuplicate
    測试流程的规范性与重要性
    柯里化函数之Javascript
    android AChartEngine源代码
    Android高斯模糊
    linux64位系统中g++4.4.7下使用wcsncpy函数有造成段错误的BUG(其它g++版本号未知)
    便利贴女孩_百度百科
    法爱格官方旗舰店
    法爱格2014 春夏新款欧美纯色修身高腰无袖吊带V领 拼接性感 连衣裙 黑色 M【图片 价格 品牌 报价】-京东
  • 原文地址:https://www.cnblogs.com/hans_gis/p/6952954.html
Copyright © 2011-2022 走看看