FAQ
ArcObjects で個別値レンダラーに設定された RGB 値を出力する方法

ナレッジ番号:5387 | 登録日:2023/07/26 | 更新日:2024/11/21

概要

フィーチャ レイヤーに設定された個別値レンダラーに対して、それぞれの値に設定されたシンボルのRGB 値を取得するサンプル コードを紹介します。

サンプル コード

以下は、ライン レイヤーに設定された個別値シンボルの RGB 値を取得する例です。

    Const OUTPUT_FILE = "C:\Dev\RGBValues.txt"

    Dim pMxDoc As IMxDocument
    Dim pGeoFeatureLayer As IGeoFeatureLayer
    Dim pUVRend As IUniqueValueRenderer
    Dim pLineSym As ILineSymbol
    Dim pRGB As IRgbColor
    Dim f As Long
    Dim sVal As String

    pRGB = New RgbColor
    Dim pMxDocument As IMxDocument = My.ArcMap.Document
    pGeoFeatureLayer = pMxDocument.FocusMap.Layer(0)
    pUVRend = pGeoFeatureLayer.Renderer

    'Shift JISで書き込む
    '書き込むファイルが既に存在している場合は、上書きする
    Dim sw As New System.IO.StreamWriter(OUTPUT_FILE, _
        False, _
        System.Text.Encoding.GetEncoding("shift_jis"))

    '書き込み
    sw.Write("Value,Red,Green,Blue" & vbCrLf)
    
    '個別値の数だけRGBを取得
    For f = 0 To pUVRend.ValueCount - 1
        sVal = pUVRend.Value(f)
        pLineSym = pUVRend.Symbol(sVal)
        pRGB.RGB = pLineSym.Color.RGB
        sw.Write(sVal & "," & CStr(pRGB.Red) & "," & CStr(pRGB.Green) & "," & CStr(pRGB.Blue) & vbCrLf)
    Next f

    '閉じる
    sw.Close()

    MessageBox.Show("処理が終わりました。")

メタデータ

種類

製品