1つの背景
ArcMapの層では、マップ機能を持つシンボルで直接カスタマイズすることができます。我々はGeoServerに発表された良い地図とレイヤをSHPますしかし、もし、あなたがレイヤースタイルが完全に失われています。実際には、その理由は、そのスタイルがSHPファイルに保存されませんが、中にMXDまたはMSDに格納され、ArcMapのを使用して良い層で、非常に簡単です。
それでは、どのよう私たちが行うことができますGeoServer剥離層も効果に到達するためにマップをカスタマイズすることができますか?
2 SLDはじめに
SLDが短いための様式化されたレイヤディスクリプタ(スタイル付きレイヤディスクリプタ)である2005年OGCに提案された標準であり、この規格は、拡張の視覚表現をマッピングするために、特定の条件下でWMSサーバを可能にします。SLDがない場合には、あなただけの引当金の一部は、地図上のサーバー上の優れた視覚的なスタイルを持って使用することができます。そして、私たちは非常にマップの可視化の柔軟性を拡大し、クライアント、概要および他の操作から、独自のスタイルを定義するためにマップすることができますSLD標準を達成するために使用する場合。
SLD-仕様はSLDスタイルをカスタマイズすることによって可視化マップレイヤをレンダリングするように構成されたXML形式の地図表示を使用して定義され、フィルタは、のようなカスタムの凡例を提供することができます。ルールは、彼女は、データ・セットは、分類に関連するすべての重要なパラメータは、ルール要素に提供されなければならない(フィルターを使用して)与えられたパラメータに基づいて分類されていることができますので、SLDの最も重要な要素です。
SLDは、カスタムスタイルをマッピングするためには、の組み合わせを使用する必要がありSE(シンボルエンコーディング)この標準を。SEは別のOGC標準であり、そしてこれはまた、XMLスキーマ定義に基づいており、標準は、私たちはマップ要素に異なる記号を表現するために異なるスタイルをカスタマイズすることができます。この言語を使用してSLDファイルは、そのマップはレンダリングマップサービスの場合に、ユーザー定義のスタイルによって説明することができます。
次のようにSLDドキュメントアーキテクチャの要素は次のとおりです。
スタイルSLDドキュメントは、一般的な部分が含まれていますが、次のように最も重要なものは以下のとおりです。
FeatureTypeStyle:この部分は、文書の全体のスタイルのルートであり、適用されるスタイルの特徴であるどのようなタイプを示しています。FeatureTypeStyleはルール要素が条件付きのマッピングを可能にする、一つ以上の要素のルールが含まれています。
規則(ルール):スケールルールは、グループにある属性条件をレンダリング特徴とマップによれば、一般的なルールは、レンダリング要素、点、線、面などのいずれかのタイプを可能にするが、同時に、および注釈よいです使用しています。
Symbolizerは、(シンボル):Symbolizerは、それぞれ標準のSymbolizer 1.0、PointSymbolizer(ドット表記)、LineSymbolizer(ラインシンボル)、PloygonSymbolizer(顔シンボル)、TextSymbolizer(注釈)を5つの忠タイプを含む、データを視覚化する方法を指定しましたRasterSymbolizer(グリッド)。
ちょうど色や太さよりは、SLDによって提供することができます。、破線のようなレンダリング又は点線とすることができるポリゴンカスタムタイル画像を充填することができる;点は、円形、正方形、星、あるいは自己定義されたテキストまたは指定するグラフィック画像として、一般的な形状を設けてもよいですスタイルは、与えられたの属性データに基づいて行うことができる要素ができるように、
これは、さまざまなスタイルの中にレンダリングされます。
一般的なパラメータ:
シンボル |
意味 |
<名前> |
スタイル名 |
<FeatureTypeStyle> |
スタイルの要素 |
<ルール> |
ルール |
<OGC:フィルタ> |
フィルタ |
<OGC:PropertyIsBetween> |
これは、2つの属性値の間にフィルタを定義するために使用されます |
<OGC:PropertyIsLessThan> |
プロパティの値を定義するために使用されるフィルタよりも少ないです |
<OGC:PropertyIsGreaterThan> |
より大きな属性値を定義するために使用されるフィルタ |
<OGC:PropertyName意味> |
プロパティ・フィールド名 |
<OGC:リテラル> |
プロパティ値 |
<PointSymbolizer> |
ポイントマーカー |
<LineSymbolizer> |
ラインマーカー |
<PolygonSymbolizer> |
表面マーカー |
<CssParameter名= "埋めます"> |
塗りつぶしの色 |
<CssParameter名=「フォントファミリ」> |
フォント |
<CssParameter名=「フォントスタイル」> |
フォントのスタイル |
<CssParameter名=「フォントサイズ」> |
フォントサイズ |
3つのポリゴン層は、例えば、詳細に説明します
3.1基本的な色の塗りつぶし
3.1.1構造
... PolygonSymbolizer |
|
...... 塗りつぶし |
充填 |
......... CssParameter名= "埋めます" |
カラー |
......... CssParameter名=「フィル不透明度」 |
透明度 |
...... ストローク |
境界 |
......... CssParameter名= "ストローク" |
カラー |
......... CssParameter名=「ストローク幅」 |
幅 |
3.1.2例
透明との境界ポリゴン
SLD:
<FeatureTypeStyle> |
效果:
3.2图片填充
3.2.1结构
…PolygonSymbolizer |
|
……Fill |
|
………GraphicFill |
|
…………Graphic |
|
……………ExternalGraphic |
|
………………OnlineResource |
图片来源 |
………………Format |
图片格式 |
……………Size |
大小 |
3.2.2示例
带有使用图片填充的多边形
SLD:
<FeatureTypeStyle> <Fill> <GraphicFill> <Graphic> <ExternalGraphic> <OnlineResource xlink:type="simple" xlink:href="20101.gif" /> <Format>image/gif</Format> </ExternalGraphic> <Size>20</Size> </Graphic> </GraphicFill> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke> </PolygonSymbolizer> </Rule> |
效果:
3.3注记显示
3.2.1结构
…TextSymbolizer |
|
……Label |
|
………ogc:PropertyName |
注记的属性字段名称 |
……Font |
字体 |
………CssParameter name="font-family" |
字体类型 |
………CssParameter name="font-size" |
字体大小 |
………CssParameter name="font-style" |
字体样式 |
………CssParameter name="font-weight" |
字体加粗 |
……LabelPlacement |
注记的位置 |
………PointPlacement |
注记点位置 |
…………AnchorPoint |
|
……………AnchorPointX |
|
……………AnchorPointY |
|
…………Displacement |
|
……………Displacement X |
|
……………Displacement Y |
|
…………Rotation |
设置旋转角度 |
……Fill |
填充 |
………CssParameter name="fill" |
填充颜色 |
3.2.2示例
带有注记的填充色透明的多边形
SLD:
<TextSymbolizer>
|
效果:
3.4 分属性渲染
3.4.1结构
…PolygonSymbolizer |
|
……Rule |
|
………Filter |
|
………PolygonSymbolizer |
|
………TextSymbolizer |
|
3.4.2示例
根据属性字段值范围用不同颜色渲染。
SLD:
<FeatureTypeStyle> <Rule> <Name>SmallCOMM</Name> <Title>Less Than 510104024008</Title> <ogc:Filter> <ogc:PropertyIsLessThan> <ogc:PropertyName>COMID</ogc:PropertyName> <ogc:Literal>510104024008</ogc:Literal> </ogc:PropertyIsLessThan> </ogc:Filter> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#66FF66</CssParameter> </Fill> </PolygonSymbolizer> </Rule> <Rule> <Name>MediumCOMM</Name> <Title>510104024008 to 510104024011</Title> <ogc:Filter> <ogc:And> <ogc:PropertyIsGreaterThanOrEqualTo> <ogc:PropertyName>COMID</ogc:PropertyName> <ogc:Literal>510104024008</ogc:Literal> </ogc:PropertyIsGreaterThanOrEqualTo> <ogc:PropertyIsLessThan> <ogc:PropertyName>COMID</ogc:PropertyName> <ogc:Literal>510104024011</ogc:Literal> </ogc:PropertyIsLessThan> </ogc:And> </ogc:Filter> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#33CC33</CssParameter> </Fill> </PolygonSymbolizer> </Rule> <Rule> <Name>LargeCOMM</Name> <Title>Greater Than 510104024011</Title> <ogc:Filter> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>COMID</ogc:PropertyName> <ogc:Literal>510104024011</ogc:Literal> </ogc:PropertyIsGreaterThan> </ogc:Filter> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#009900</CssParameter> </Fill> </PolygonSymbolizer> </Rule> </FeatureTypeStyle> |
效果:
在SLD中还根据3.3的注记写法,增加了注记的显示。
3.5分级渲染
3.5.1结构
…PolygonSymbolizer |
|
……Rule |
|
………MinScaleDenominator |
|
………MaxScaleDenominator |
|
………PolygonSymbolizer |
|
………TextSymbolizer |
|
3.5.2示例
通过设置不同比例尺时的显示颜色,展示不同的效果。
SLD:
<FeatureTypeStyle> <Rule> <Name>Large</Name> <MaxScaleDenominator>5746</MaxScaleDenominator> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#CCCCCC</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> <CssParameter name="stroke-width">7</CssParameter> </Stroke> </PolygonSymbolizer> </Rule> <Rule> <Name>Medium</Name> <MinScaleDenominator>5746</MinScaleDenominator> <MaxScaleDenominator>12000</MaxScaleDenominator> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#0000CC</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> <CssParameter name="stroke-width">4</CssParameter> </Stroke> </PolygonSymbolizer> </Rule> <Rule> <Name>Small</Name> <MinScaleDenominator>12000</MinScaleDenominator> <PolygonSymbolizer> <Fill> <CssParameter name="fill">#0000CC</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke> </PolygonSymbolizer> </Rule> </FeatureTypeStyle> |
效果图:
4 注意
4.1 注记渲染时某些注记未显示
初始时,某个要素的注记无法显示:
放大后其又可以出现:
出现这种情况,往往是因为注记显示的地方在另外一个要素下面。
解决方法比较简单,利用LabelPalcement元素调整注记显示的地方便可解决。例如:
<LabelPlacement> |
4.2 中文出现乱码
出现这样的情况,一般是SLD中未进行正确的格式编码赋值。
首先将编码改成GB2312。例如:
<?xml version="1.0" encoding="GB2312"?> |
如果发现还是乱码,则很有可能是目前字体不支持中文。
例如当字体是Arial时,不支持中文:
<CssParameter name="font-family">Arial</CssParameter> |
将字体改成微软雅黑,则注记不再重现乱码:
<CssParameter name="font-family">微软雅黑</CssParameter> |