簡介SLD
地理空間數據沒有內在的可視化組件。 爲了能看到的數據,必須風格。 樣式指定顏色,厚度和用於呈現在地圖數據等可見屬性。
在GeoServer的,造型是使用一種標記語言,稱爲實現樣式化圖層描述符 ,或SLD的簡稱。 SLD是一種基於XML的標記語言,是非常強大的,雖然有些複雜。 該頁面提供了一個介紹SLD以及它是如何工作的範圍內的GeoServer的能力。
記
GeoServer使用SLD專門用於造型,術語“SLD”和“風格”會經常被互換使用。
SLD概念
在GeoServer的造型是最經常使用XML SLD樣式文件中規定。 風格文件與GeoServer的層(featuretypes)相關的指定應如何呈現 。 樣式文檔指定一個單一命名圖層 ,併爲它的用戶風格 。 層和風格可以具有元數據元素,如名稱識別它們,顯示它們一個標題 ,和描述它們的細節的抽象 。 內的頂層樣式是一個或多個特徵類型的風格 ,其充當“虛層”,以提供對描繪順序(允許的造型效果,如套管線道路)的控制。 每個要素類型樣式包含一個或多個規則,它們控制如何基於功能屬性和縮放級別樣式被應用。 規則通過使用過濾器 ,它是包含謂詞 , 表達式和過濾功能邏輯條件選擇適用的功能。 以指定的樣式爲單獨的特徵的細節,規則包含任意數量symbolizers的。 Symbolizers指定樣式的點 , 線和多邊形 ,以及柵格和文本標籤 。
欲瞭解更多信息,請參閱SLD參考 。
風格類型
矢量數據的GeoServer可以服務包括三類形狀: 點,線和多邊形 。 線(一維形狀)是最簡單的,因爲它們僅具有邊緣樣式(也稱爲“stroke”)。 多邊形的二維形狀,有一個邊緣和一個內部(也稱爲“fill”),這兩者都可以有不同的樣式。 儘管他們缺乏維度,他們都具有edge和fill(更不用說size),能夠修改樣式。 對於填充,顏色可指定; 對於stroke(筆劃),顏色(color)和厚度(thickness)可以被指定。
GeoServer的同時也是柵格數據。 這可以裝飾有各種各樣的過彩色調色板,不透明度,對比度和其它參數的控制。
更先進的樣式是可能的。 點可以與衆所周知的形狀,如圓形,方形,星形,甚至是自定義的圖形或文字來指定。 線可以風格以短線風格(dash styles .)和散列(hashes)來修飾。 多邊形可以填充自定義平鋪圖形。 樣式可以基於在數據屬性,因此,某些特徵是不同的樣式。 基於屬性的文本標籤也可以被修飾(style)。 造型(styling)也可以通過縮放水平來確定,從而使功能顯示在適合其表觀大小的方法。可能性是巨大的。
一個基本的風格例子
瞭解SLD的一個好方法是學習風格的例子。 下面是可應用到包含分的層,樣式它們作爲紅色圓圈爲6像素的大小的簡單的SLD。 (這是在Points指導書中的第一個例子)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?XMLversion="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version=“1.0.0”
XSI:schemaLocation =“http://www.opengis.net/sld StyledLayerDescriptor.xsd”
xmlns =“http://www.opengis.net/sld”
xmlns:OGC =“http://www.opengis.net/ogc”
xmlns:XLink=“http://www.w3.org/1999/xlink”
XMLNS:XSI =“http://www.w3.org/2001/XMLSchema-instance”>
<NamedLayer>
<Name>Simple point </Name>
<UserStyle>
<Title>GeoServer SLD Cook Book: Simple point</Title>
<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>circle </ WellKnownName>
<Fill>
<CssParameter name= "fill" > #FF0000 </ CssParameter>
</Fill>
</Mark>
<Size> 6 </Size>
</Graphic>
</ PointSymbolizer>
</Rule>
</ FeatureTypeStyle>
</ UserStyle>
</ NamedLayer>
</ StyledLayerDescriptor>
|
雖然這個例子看上去很長,只有幾行是真正重要的是理解。 第14行指出了“PointSymbolizer”被用來style的數據點。線15-17狀態點都將使用指定的圖形形狀樣式通過一個“公知的名稱”,在這種情況下,一個圓。 SLD提供的名字爲許多形狀,如“square”,“star”,“triangle”等行18-20指定要填充的#FF0000(紅色)顏色的形狀。 這是一個RGB顏色代碼,寫入十六進制,在#RRGGBB的形式。 最後, 第22行指定形狀的大小爲6個像素的寬度。 該結構的其餘部分包含關於樣式的元數據,如名稱標識的樣式和在圖例使用的標題。
記
在SLD文件的一些標籤都有前綴,如OGC。 這是因爲它們是在XML命名空間來定義。 頂級StyledLayerDescriptor標籤(2-7行 )指定了兩個XML命名空間,一個叫的xmlns,和一個叫的xmlns:OGC。第一空間是默認的文檔,所以屬於它的標籤不需要前綴。 屬於第二標記所需要的前綴OGC:。 實際上,該命名空間前綴可以是任何標識符。 第一名字空間可以被稱爲的xmlns:SLD(因爲它往往是),然後在這個例子中所有的標籤都需要一個SLD:前綴。 關鍵的一點是,標籤需要有前綴,它們屬於命名空間。