YouTube | Facebook | X(Twitter) | RSS

アノテーション フィーチャを変更する方法

2009/2/10 (火)

ArcGISのアノテーション フィーチャを編集するには,[アノテーション]ツールバーを使用しますが,これをArcObjectsで操作する方法は以下のとおり。各フィーチャの属性値にテキストやフォントサイズなどが格納されてますが,これは閲覧に用いるだけで,本質的な情報は,"ELEMENT"フィールド内にBlob型で格納されているバイナリがそれに該当します。この中身はIAnnotationFeature::AnnotationプロパティからTextElementオブジェクトとして取得することができます。これを更新することで,他のフィールドに格納された属性値も更新されます。

以下はサンプルコード

Sub ChangeAnnotation()
Dim pMxDocument As IMxDocument
Set pMxDocument = ThisDocument

Dim pMap As IMap
Set pMap = pMxDocument.FocusMap

Dim pFeatureLayer As IFeatureLayer
Set pFeatureLayer = pMap.Layer(0)

Dim pFeatureClass As IFeatureClass
Set pFeatureClass = pFeatureLayer.FeatureClass

Dim pFeature As IFeature
Set pFeature = pFeatureClass.GetFeature(0)

'該当のアノテーション フィーチャからQI
Dim pAnnotationFeature As IAnnotationFeature
Set pAnnotationFeature = pFeature

'AnnotationプロパティからTextElementオブジェクトを取得
Dim pTextElement As ITextElement
Set pTextElement = pAnnotationFeature.Annotation

Dim pSymbolCollectionElement As ISymbolCollectionElement
Set pSymbolCollectionElement = pTextElement

'エレメントの移動
Dim pTransform2D As ITransform2D
Set pTransform2D = pTextElement
pTransform2D.Move 10, 10

'アノテーションの色を変更
Dim pRGBColor As IRgbColor
Set pRGBColor = pSymbolCollectionElement.Color
pRGBColor.RGB = RGB(255, 0, 0)
pSymbolCollectionElement.Color = pRGBColor

'アノテーションの角度を変更
Dim pTextSymbol As ITextSymbol
Set pTextSymbol = pTextElement.Symbol
pTextSymbol.Angle = 90
pTextElement.Symbol = pTextSymbol

'アノテーションの描画を更新
Dim pGraphicsContainer As IGraphicsContainer
Set pGraphicsContainer = pMap

pGraphicsContainer.UpdateElement pTextElement

'再描画
pMxDocument.ActiveView.Refresh

End Sub
  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-プログラミング, ArcGIS
-,