ArcObjects– tag –
-
GraphicTracker を使用したRPG風シンボルの移動
MapControl に GraphicTracker を使用してシンボルを移動するサンプルです。ほんとはアドルでやりたかったんだけど Ys PC-9801 版な画像が見つからなかったので Sa・Ga おとこ でやってみました。しかも移動はドラクエⅠ風です(前しか向きません)。 残念ながら戦闘モードには入りません。そのため、「かみはばらばらになった」も再現できま... -
フィーチャ レイヤに設定されているフィールドのエイリアス名を取得する方法
マップに追加したフィーチャ レイヤでは、フィールドに対してフィーチャクラスに設定されたエイリアス名とは別のエイリアス名を設定することができます。フィーチャ レイヤに設定したフィールドのエイリアス名を取得する方法です。コードは調査用に書いたので VBA になってます。 昨日はGISコミュニティフォーラムのプレフォーラムで ArcObje... -
ArcCatalogでフォルダ内のフィーチャクラスを効率よく取得する方法
後輩からこんな質問を受けました。 「あるフォルダに47都道府県の子フォルダがあり、その中一つずつジオデータベースがあります。ジオデータベースにはたくさんのフィーチャクラスがあるんですが、これらすべてのフィーチャクラスにすべてメタデータをインポートしたいです。今日はノー残業デーなので早く帰りたいです。」 かわいい後輩のた... -
ワークスペースで無効な文字列を取得する方法
ジオデータベースで使用できない文字を取得するためのコードです。ワークスペースの種類を変更することによって使用できない文字列は変化します。この例ではファイル ジオデータベースを対象としています。 -
データ フレーム内のすべてのフィーチャ レイヤで指定したフィールドの表示を切り替え
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ジャパンの製品資料によると基本ライセンスのツール数は掲載されてたのですが、エクステンションで利用できるツール数が分からなかったので数えてみました。手で数えるのが面倒だったので数を求めるメソッドを探してたら方法がありました。 下のコード...