ArcObjects– tag –
-
ArcMapのシンボル描画パフォーマンスが変化する現象
ArcMapの[データの追加]から追加したレイヤに設定されているデフォルトのシンボル表示速度が、一度[シンボル選択]ダイアログで別のシンボルを選択したり、[シンボル プロパティ エディタ]ダイアログを開いて[OK]を押すと(設定を変更しなくても)遅くなります。気になった人は50万点ぐらいのポイント フィーチャクラスを用意してArcM... -
フィーチャのジオメトリが不正かどうかを判定する方法
ArcGIS Destkopの[エディタ]ツールバーでフィーチャの形状を描く限り、基本的には図形の形状は正しく作成されますが、他社ソフトやArcView 3.xなどで作成したデータをArcGISに読み込む際に、ArcGISが認識できない不正なジオメトリを格納してしまう可能性があります。 これは、「ArcGISの空間演算はジオデータベースで行っている」というこ... -
ラスタ データセットのカラーマップを作成する方法
ArcGISでは、単バンド(1ビット、もしくは8ビット)のラスタ データセットに限ってカラーマップというセル値を表現する色をあらかじめデータ内に格納しておくことができます。 ラスタ セルの各色を表現するには任意のRGBを割り当てないといけませんが、1ビットや8ビットのラスタだとRGBを表現することはできません。通常はモノクロ、もしくは... -
ArcMapでレイヤが表示されているかどうかを判定する方法
ArcMapのデータフレームでレイヤを表示するかどうかはILayer::Visibleプロパティで設定できますが,表示縮尺の制御をしている場合は,表示にチェックを入れてもレイヤが表示されません。現在レイヤが表示されている状態かどうかを判断するにはIMapLayers::IsLayerVisibleプロパティを使用します。 -
ArcObjectsによる測地成果2000対応地理座標変換
これまで,日本測地系(東京測地系)のデータセットを日本測地系2000(世界測地系)に変換するには,ArcTKY2JGDを使用する必要がありました。このツールは,ArcCatalogのコマンド ボタンから起動するツールで,既存のフィーチャクラス(シェープファイルやジオデータベース)から測地基準系を変換した新しいフィーチャクラスを作成するという... -
ポリラインやポリゴンの頂点を表示する方法
ArcMap のスケッチツールでは、作図中のラインで頂点が強調されて表示しますが、編集操作をしていない状態だとポリラインやポリゴンのどこに頂点が打ってあるのか分かりません。 それが ArcObjects 9.1 Developer Help のサンプル プログラムをインストールするとこんなことができるようになります。 ラインの頂点部分が目で確認できるように... -
The ArcObjects Object Model Diagram
新年度になって会社で席替えがありました。部署再編と人事異動の関係で、自分はオフィスの真ん中から壁際の座席に移動することになりました。そこで、前からやってみたかったArcObjects Object Model Diagram(OMD)のポスターを壁一面に貼ってみました。 ArcObjectsはバージョン9.3で4000を超えるクラスがあって、OMDをA0サイズで印刷しても1... -
アノテーション フィーチャを変更する方法
ArcGISのアノテーション フィーチャを編集するには,[アノテーション]ツールバーを使用しますが,これをArcObjectsで操作する方法は以下のとおり。各フィーチャの属性値にテキストやフォントサイズなどが格納されてますが,これは閲覧に用いるだけで,本質的な情報は,"ELEMENT"フィールド内にBlob型で格納されているバイナリがそれに該当... -
「選択フィーチャからレイヤを作成」で作成されたレイヤを判別する方法
ArcMap の機能に、特定のレイヤーから選択されたフィーチャ群を新しいレイヤーとして作成する機能があります。 レイヤを右クリック → [選択] → [選択フィーチャからレイヤーを作成] この操作で新しく作成されたレイヤーは、特定のフィーチャ群だけが抜き出されただけで、データソースなどその他のプロパティはすべて出力元のレイヤと同じ情報... -
レイヤーをコピーする方法
ArcObjects には IClone というインタフェースがあり、これを実装しているクラスは IClone::Clone() メソッドによってオブジェクトの複製が行えます。しかし、TOC でレイヤをコピー&貼り付けのように、レイヤの複製を行いたい場合は、レイヤー クラスに IClone 実装されていないためが使えません。 その代わりに使用するのが IObjectCo...