geoserver sld閱讀筆記

簡介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:前綴。 關鍵的一點是,標籤需要有前綴,它們屬於命名空間。

發佈了77 篇原創文章 · 獲贊 12 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章