開源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的三種方式,並使用其中一種方式進行實踐應用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章