GeoServer中利用SLD配圖之矢量圖層配圖
最近工作中使用到了 geoserver 發(fā)布 tif 圖,發(fā)布圖層后需要給圖層設(shè)置樣式。
發(fā)布圖層就不在這里說了,可以參考其他博客,主要記錄一下編寫圖層樣式。
SLD是風(fēng)格化圖層描述器(Styled Layer Descriptor)的簡稱,是2005年OGC提出的一個標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)在一定條件下允許WMS服務(wù)器對地圖可視化的表現(xiàn)形式進行擴展。在沒有SLD之前,只能使用一些已經(jīng)在服務(wù)器上規(guī)定好的樣式來對地圖進行可視化。而當(dāng)使用了實現(xiàn)了SLD標(biāo)準(zhǔn)之后,它允許我們從客戶端來對地圖進行定義自己的樣式,分級顯示等操作,極大的擴展了地圖可視化的靈活性。
該SLD-規(guī)范是采用XML定義地圖顯示樣式,通過自定義SLD來配置地圖圖層渲染的可視化風(fēng)格,可以設(shè)置過濾器,自定義圖例等。rule是SLD最重要的一個元素,因為她允許根據(jù)給定的某個參數(shù)(使用過濾器)對數(shù)據(jù)集進行分類,所有的與分類有關(guān)的重要參數(shù)都必須在rule元素中設(shè)置。
對于使用SLD來進行地圖的自定義樣式,則必須結(jié)合使用SE(Symbology Encoding)這個標(biāo)準(zhǔn)。SE是OGC的另一個標(biāo)準(zhǔn),這個也是基于XML模式定義的,這個標(biāo)準(zhǔn)允許我們自定義不同的符號樣式來表達地圖上不同的要素。SLD文件使用這種語言,這樣在地圖渲染時地圖服務(wù)可以解釋由用戶定義的樣式。
我們可以在管理界面中查看我們發(fā)布的圖層類型,后面寫樣式時需要根據(jù)我們圖層類型不同使用不同的標(biāo)簽。
OGC 樣式圖層描述符 (SLD) 標(biāo)準(zhǔn)定義了用于表達的語言 地理空間數(shù)據(jù)的樣式。 GeoServer 使用 SLD 作為其主要樣式語言。
SLD包含了圖層和樣式元素標(biāo)簽,用于描述如何進行設(shè)置樣式,SLD是基本XML格式編寫,里面有很多種標(biāo)簽。
可以先看看一個簡單的SLD文件如下:這個文件表示雙色漸變,當(dāng)我們的數(shù)據(jù)范圍在 70-256 中間時,會進行線性插值,及填充兩種顏色的中間點。
StyledLayerDescriptor 根標(biāo)簽
StyledLayerDescriptor 標(biāo)簽是SLD的根標(biāo)簽,包含了XML頭信息。
NamedLayer 命名圖層標(biāo)簽
NamedLayer 表示命名圖層,指定要設(shè)置樣式的現(xiàn)有圖層。
Name:要設(shè)置樣式的圖層名稱
Description:圖層描述
NamedStyle:設(shè)置應(yīng)用于圖層目錄的樣式
UserStyle:設(shè)置應(yīng)用于圖層的樣式
UserStyle 用戶樣式標(biāo)簽
Name:樣式的名稱,用于在外部引用它
Title:樣式標(biāo)題
FeatureTypeStyle:用于定義單個元素類型樣式
Rule 樣式規(guī)則標(biāo)簽(重點)
我們可以在這個標(biāo)簽中設(shè)置過濾規(guī)則,滿足某些規(guī)則的才進行渲染
filter 篩選器,如比較大小,滿足時應(yīng)用規(guī)則
定義符號化器,按照上面介紹的圖層類型,符號化器有多種,我使用的是柵格類型的,其他類型可以參照官網(wǎng) SLD參考
PointSymbolizer:點符號化器
LineSymbolizer:線符號化器
PolygonSymbolizer:多邊形符號化器
TextSymbolizer:文本符號化器
RasterSymbolizer:柵格符號化器
想了解其他標(biāo)簽用法的話也可以參考官網(wǎng)。
生成樣式時,遇到過通過wms接口訪問接口時,無法查看到右上角的圖例,我們可以在接口路徑后面拼接上&format_options=layout:style-editor-legend&legend_options=countMatched:true;fontAntiAliasing:true 來生成,主要是需要第一個參數(shù)設(shè)置layout文件路徑。
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。