FAQ
単一シンボル レンダラーでの表示

ナレッジ番号:5270 | 登録日:2023/07/26 | 更新日:2023/12/28

概要

単一レンダラーは、指定レイヤーのフィーチャを同一のシンボルで描画するためのものです。このサンプル コードは、フィーチャ レイヤーを単一レンダラーで表示する方法を示しています。

Image

サンプル コード

フィーチャ レイヤーを単一レンダラーで表示

メソッドの引数として与えたフィーチャ レイヤーに、単一レンダラーを適用して再描画するサンプルです。

static void SimpleRenderer(IFeatureLayer pFeatureLayer)
{
        IGeoFeatureLayer pGeoFeatureLayer = pFeatureLayer as IGeoFeatureLayer;

        //レンダラーを作成する。
        ISimpleRenderer pSimpleRenderer = new SimpleRenderer();
        //塗りつぶしシンボルを作成する。
        ISimpleFillSymbol pSimpleFillSymbol  = new SimpleFillSymbolClass();
        //塗りつぶしシンボルの色を作成する。
        IRgbColor pRGBColor = new RgbColorClass();
        pRGBColor.Red = 125;
        pRGBColor.Green = 184;
        pRGBColor.Blue = 70;
        //塗りつぶしシンボルに色を適用する
        pSimpleFillSymbol.Color = pRGBColor;

        //塗りつぶしスタイルを指定する
        ///////////////////////// その他の指定例 //////////////////////////////////
        pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSBackwardDiagonal;
        //45度の右上がり斜線

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSCross;
        //水平、垂直方向の交差線

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSDiagonalCross;
        //45度の交差斜線

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSForwardDiagonal;
        //45度の右下がり斜線

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSHollow;
        //中空の塗りつぶし(esriSFSNullと同じ).

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSHorizontal;
        //水平線

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSNull;
        //塗りつぶしをしない

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
        //同一色による均一な塗りつぶし

        //pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSVertical;
        //垂直線
        ////////////////////////////////////////////////////////////////////////

        //境界線の幅を指定するために、境界線のライン シンボルを取得する
        ISimpleLineSymbol pLinesymbol  = pSimpleFillSymbol.Outline as ISimpleLineSymbol;
        //境界線のラインシンボルの幅を指定する
        pLinesymbol.Width = 0.5;
        //幅を変更したライン シンボルを、境界線のライン シンボルとして設定する
        pSimpleFillSymbol.Outline = pLinesymbol;
        //レンダラーに作成したシンボルを適用する
        pSimpleRenderer.Symbol = pSimpleFillSymbol as ISymbol;
        //レイヤー(GeoFeatureLayer)にレンダラ(SimpleRenderer)を適用する
        pGeoFeatureLayer.Renderer = pSimpleRenderer as IFeatureRenderer;

        ((IMxDocument)ArcMap.Document).UpdateContents();
        ((IActiveView)ArcMap.Document.FocusMap).Refresh();
}
Shared Sub SimpleRenderer(ByVal pFeatureLayer As IFeatureLayer)
        Dim pGeoFeatureLayer As IGeoFeatureLayer= CType(pFeatureLayer,IGeoFeatureLayer)

        'レンダラーを作成する。
        Dim pSimpleRenderer As ISimpleRenderer = New SimpleRenderer()
        '塗りつぶし シンボルを作成する。
        Dim pSimpleFillSymbol As ISimpleFillSymbol = New SimpleFillSymbolClass()
        '塗りつぶし シンボルの色を作成する。
        Dim pRGBColor As IRgbColor = New RgbColorClass()
        pRGBColor.Red = 225
        pRGBColor.Green = 84
        pRGBColor.Blue = 30
        '塗りつぶし シンボルに色を適用する
        pSimpleFillSymbol.Color = pRGBColor

        '塗りつぶしスタイルを指定する
        '///////////////////////// その他の指定例 //////////////////////////////////
        pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSBackwardDiagonal
        '45度の右上がり斜線

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSCross
        '水平、垂直方向の交差線

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSDiagonalCross
        '45度の交差斜線

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSForwardDiagonal
        '45度の右下がり斜線

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSHollow
        '中空の塗りつぶし(esriSFSNullと同じ).

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSHorizontal
        '水平線

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSNull
        '塗りつぶしをしない

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid
        '同一色による均一な塗りつぶし

        'pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSVertical
        '垂直線
        '//////////////////////////////////////////////////////////////////////////////

        '境界線の幅を指定するために、境界線のライン シンボルを取得する
        Dim pLinesymbol As ISimpleLineSymbol = pSimpleFillSymbol.Outline
        '境界線のライン シンボルの幅を指定する
        pLinesymbol.Width = 0.5
        '幅を変更したライン シンボルを、境界線のライン シンボルとして設定する
        pSimpleFillSymbol.Outline = pLinesymbol
        'レンダラーに作成したシンボルを適用する
        pSimpleRenderer.Symbol = pSimpleFillSymbol
        'レイヤー(GeoFeatureLayer)にレンダラー(SimpleRenderer)を適用する
        pGeoFeatureLayer.Renderer = pSimpleRenderer

        CType(My.ArcMap.Document, IMxDocument).UpdateContents()
        CType(My.ArcMap.Document.FocusMap, IActiveView).Refresh()
End Sub

メタデータ

種類

製品