プログラミング– category –
-
ワークスペースで無効な文字列を取得する方法
ジオデータベースで使用できない文字を取得するためのコードです。ワークスペースの種類を変更することによって使用できない文字列は変化します。この例ではファイル ジオデータベースを対象としています。 -
データ フレーム内のすべてのフィーチャ レイヤで指定したフィールドの表示を切り替え
ArcMapでアクティブなデータ フレーム内の全てのフィーチャ レイヤから指定したフィールドの表示を切り替えるVBAマクロです。 アクティブなデータ フレーム内はすべてフィーチャ レイヤであることが前提です。 Do Until pLayerFields Is Nothing -
ArcMapのTOCで選択したレイヤのフィールド数をカウント
ArcMapのTOCで選択されたフィーチャ レイヤのフィールド数を数えるVBAマクロです。VBEditorを開いて適当なモジュールに貼り付けて実行してください。 レイヤが選択されていなかったり、フィーチャ レイヤ*以外のレイヤを選択していた場合はエラーとなります。 *フィーチャ レイヤ:シェープファイル やジオデータベース フィーチャクラスを元... -
ArcGIS 9.3.1 SP1と.NET Help日本語版(更新版)リリース
2010年2月5日付けでArcGIS 9.3.1 SP1が国内でリリースされたようです。 http://www.esrij.com/support/arcgis_desktop/patch/arcgis931sp1.jsp (要ログイン) 個人的にはArcGIS .NET Help日本語版の更新版リリースに注目です。 //www.esrij.com/support/arcgis_desktop/patch/ArcGIS93sp1_DotNetHelpHtml_J.jsp (要ログイン) .NET Helpは... -
ネットワーク解析レイヤの使用で消費したメモリの解放
ArcGIS のネットワーク解析レイヤを追加・削除し続けるとメモリ消費量が増加し続ける現象があり、メモリリークの疑いを検証するためにパフォーマンス モニターを使用しました。 本題の結論はメモリ リークではなく、レイヤ操作がスタックされるための仕様だそうです。 スタックを管理している IMxDocument::OperationStack から該当する Oper... -
ArcMapで元に戻す/やり直しの操作が可能なレイヤの追加を行う方法
ArcMapでレイヤを削除すると、[元に戻す]ボタンを押すことにより削除したレイヤを復元させることがきますが、これをArcObjectsで操作するにはAddLayersOperationクラスを使用するようです。 別の操作を行うのにVBAヘルプのサンプルを探してたらこんなコードを見つけました。この操作はDesktopでのみ利用可能となってます。 ※出典:ArcGIS &... -
ArcToolboxのツール数を数える方法
ふと、ArcGISで利用できるツールボックスの数がいくつあるのか数えたくなりました。 ESRIジャパンの製品資料によると基本ライセンスのツール数は掲載されてたのですが、エクステンションで利用できるツール数が分からなかったので数えてみました。手で数えるのが面倒だったので数を求めるメソッドを探してたら方法がありました。 下のコード... -
ArcMapのシンボル描画パフォーマンスが変化する現象
ArcMapの[データの追加]から追加したレイヤに設定されているデフォルトのシンボル表示速度が、一度[シンボル選択]ダイアログで別のシンボルを選択したり、[シンボル プロパティ エディタ]ダイアログを開いて[OK]を押すと(設定を変更しなくても)遅くなります。気になった人は50万点ぐらいのポイント フィーチャクラスを用意してArcM... -
フィーチャのジオメトリが不正かどうかを判定する方法
ArcGIS Destkopの[エディタ]ツールバーでフィーチャの形状を描く限り、基本的には図形の形状は正しく作成されますが、他社ソフトやArcView 3.xなどで作成したデータをArcGISに読み込む際に、ArcGISが認識できない不正なジオメトリを格納してしまう可能性があります。 これは、「ArcGISの空間演算はジオデータベースで行っている」というこ... -
ラスタ データセットのカラーマップを作成する方法
ArcGISでは、単バンド(1ビット、もしくは8ビット)のラスタ データセットに限ってカラーマップというセル値を表現する色をあらかじめデータ内に格納しておくことができます。 ラスタ セルの各色を表現するには任意のRGBを割り当てないといけませんが、1ビットや8ビットのラスタだとRGBを表現することはできません。通常はモノクロ、もしくは...