タグ付けされた質問 「arcobjects」

ArcObjectsは、Esri Inc.のCOMベースのAPIのセットであり、ArcGIS Desktop、ArcGIS Engine、ArcGIS Serverなどの製品で使用されています。

3
ArcObjectsを使用してGeoTransformationを選択しますか?
現在、ArcObjectsを使用してデスクトップアドインツールを構築しています。 フィーチャクラスを選択するようユーザーに要求します フィーチャクラスをWebメルカトルに再投影します いくつかのジオプロセシングを実行します フィーチャクラスの初期座標系は、多くの異なる地理的システムまたは投影システムの1つである可能性があります。その結果、必要に応じてユーザーにGeoTransformationも選択させる必要があります。明らかに、esriSRGeoTransformationType、esriSRGeoTransformation2Type、esriSRGeoTransformation3Typeの列挙で提供される変換の膨大なリストをユーザーに提示できます。しかし、それは膨大なリストになるでしょう。入力座標系と出力座標系に基づいてリストを絞り込みたいのですが、その絞り込み方法を理解できませんでした。 誰でもこれを行った経験がありますか?プロジェクトツールのUIがまさにこの絞り込み操作を行うので、何らかの方法が必要であることはわかっています。しかし、徹底的なインターネット検索にもかかわらず、私は方法を見つけることができません。

2
マルチパッチを使用してカスタムレンダラーにIFeatureRenderer.Drawを実装することは可能ですか?
変更されたジオメトリをレンダリングする必要があるカスタムレンダラーがあります。入力フィーチャはすべてIFeatureCursor、ポリゴンエレメントとして経由で入力されます。(これはこの例と似ていますが、ポイントをレンダリングしていません。) 新しいジオメトリを渡すか/ / etcをIFeatureDraw.Draw呼び出すことで、ポリゴン、ライン、ポイントを簡単にレンダリングできます。 IDisplay.DrawPolygonIDisplay.DrawPoint ただし、IDisplayはマルチパッチを描画するメカニズムを提供せず、これをジオメトリとして渡しIFeatureDraw.Drawて画面に何も描画しません。 このメソッド内で、マルチパッチ要素を(好ましくはテクスチャリングを使用して)直接「描画」する方法はありますか?


3
地域拡大アルゴリズムを探しています
地価を表すラスターセットを使用していて、ランダムな形状のポリゴンを自動的に作成したいが、各ポリゴンの重心点を指定して、特定のサイズまたは地価、あるいはその両方を設定します。重心点は、その特定のポリゴンに属する最初のラスターセル(シードセルと呼ばれるピクセル)として機能し、次に、領域拡大アルゴリズムは、サイズや土地の値の制約があるまで、重心ピクセルの周りにピクセルを追加し始めます。ポリゴンのが満たされます。 既存の地域成長アルゴリズムについて何か考えを持っている人はいますか?または、少なくとも私が操作するArcObjectsまたはインターフェイスのクラスであり、各ピクセルの値を読み取るために、新しいピクセルを追加して新しいポリゴンを作成しますか? 上記が理にかなっていて、誰かが私を助けてくれることを願っています。 編集する 基本的に、遺伝的アルゴリズム(GA)を使用して、規則的な形状と一連の制約(サイズ、地価など)を備えたポリゴンを自動的に作成するつもりです。しかし、最初にGAにフィードするためにランダムなソリューションのセットを作成する必要があります。たとえば、道路で囲まれたエリアであるランドブロックでは、すでに4セントロイドポイントと言っています。各重心点は、新しい土地区画のおおよその位置を表します。さらに、各重心は、各区画の属性、つまりサイズと地価に関連付けられています。それで、各重心に基づいて各パーセルのランダムな形状の作成を開始するために、領域成長アルゴリズムのシードポイントとして各重心から始めたいと思います。 上記が理にかなっていることを願っています。この領域拡大アルゴリズムをどのように作成できるか、またはVBAとArcObjectsにすでにアルゴリズムが存在するかどうかを楽しみにしています。

1
ArcGIS 10アドイン:ドッキング可能なウィンドウを前面に
C#.NET 3.5で記述されたArcGIS 10 ArcMapアドインがありESRI.ArcGIS.Desktop.AddIns.DockableWindow(これもから継承UserControl)ESRI.ArcGIS.Desktop.AddIns.Tool、マップでクリックするとドッキング可能なウィンドウが更新されます。 OnMouseDown()(ドッキング解除モードの場合)ツールのメソッドでドッキング可能ウィンドウをZオーダーの前面に移動したいのですが。現在、ユーザーが別のドッキング可能なウィンドウを開いて自分のウィンドウの上に置き、ツールでクリックすると、ウィンドウは更新されますが、前面には表示されません。IDockableWindow.Show(true)ツールでクリックした後、ウィンドウが表示されることを確認するために、既に呼び出しています。私も試しましUserControl.BringToFront()たが、効果はありません。 私が現在持っている最善の回避策は、にIDockableWindow.Show(false)続けてを呼び出すIDockableWindow.Show(true)ことですが、ウィンドウを非表示にして再表示するのは不快であり、完全に再描画する必要があるため、かなりの時間がかかります。 組み込みのIdentifyウィンドウにはこの問題はなく、Identifyツールを使用するたびに一番上に表示されるので、それを行う方法があることは明らかです。 誰かがこれに対するより良い解決策を知っていますか?ありがとう! 編集:これは私がこれを解決するために使用したコードです。カークとペトルに感謝! public static void BringDockableWindowToFront(IDockableWindow dockableWindow, IntPtr dockableWindowControlHandle) /// <summary> /// Workaround for bringing a dockable window to the top of the Z order. /// dockableWindowControlHandle is the Handle property of the UserControl implemented by the dockable window /// </summary> { IWindowPosition …

2
ArcObjects for ArcObjectsのフィーチャキャッシュはどこにアクセスしますか?
ArcMapはフィーチャデータを含むすべてのレイヤーのキャッシュを保持しているようで、レイヤーを更新したり変更を適用したりするたびに、このキャッシュを使用します。私が見つけたように、ArcMapが最初からレイヤーを描画する場合、このクエリをジオデータベースに送信します。 "featureClassName"からObjectId、Shapeを選択します[ここで "レイヤー定義クエリ式"] 編集モードでスナップを使用する場合、このキャッシュ内のフィーチャデータは、マウスの移動中のスナップ状態を決定するために使用されるようです。ArcMapが空間データをこのキャッシュ、ESRIシェイプ形式、またはWKBとしてどのように格納するのかわかりませんが、これらのフィーチャデータを取得する必要があります。 IFeatureClass::get_Featureメソッドを使用する代わりに、そのキャッシュ(レイヤーキャッシュ)を使用してレイヤーのフィーチャデータを取得する方法はありますか?.....たぶん私の考えは正しくなく、レイヤーにキャッシュがありません(レイヤーのオプションであり、レイヤー描画の速度を向上させるキャッシュを意味するわけではありません)が、空間データはほぼ確実ですレイヤー(マップ)の一部はArcMapのメモリのどこかに保存され、ArcMapは編集操作中のスナップなどの操作にそれを使用します。ArcMapデータのこの部分にアクセスする方法はありますか(実際に存在する場合)? キャッシュをセットアップしたくありArcMap cache.ISpatialCacheManagerません。データを取得したいのですが、キャッシュから特定のデータを取得する方法がありません。私が何を言っているのかをもっと詳しく説明しましょう。 このコードをプログラム内に配置すると //C# IFeature ipF=ipMyFeatureClassObject.GetFeature(10); ArcMapがジオデータベースに選択コマンドを発行するとします。 select * from MyFeatureClassTableName Where ObjectId=10 データの記録を返します。 編集モードでは、ArcMapはこのメソッドを使用して空間データを取得し、マップ上のフィーチャのスナップ状態を計算できません。このメソッドには時間がかかり、スナップ計算には高速データの取得が必要です。また、マウスはどこにでも移動できるためです。マップとスナップはすべてのズームで有効になっています。これらすべての目撃者は、空間データがメモリ内のどこかで利用可能でなければならないことを示しており、それにアクセスする方法を探しています。 これらすべての消費量が満たされない場合、ArcMapがジオデータベースから空間データをその場で取得するために使用する完璧な方法が必要です(たとえば、マップ範囲に基づいた4または6レベルの空間インデックスとマウス位置を使用してパーツのみを取得する)マウスの動きが非常に速いときの空間データのこの方法では、マウスの最小インデックス領域が変更されたときにのみジオデータベースにアクセスできます。 ArcObjectデータソース以外のデータソース用に「スケッチツール」や「編集ツール」などのツールを開発していて、ArcMapと並行してキャッシュを設定したくない場合は、ArcMapと同じデータを使用したいこのデータソースのメモリに格納します。 さて、皆さんはこれらが本当の前提であると思いますか?そうであれば、そのメモリ内のArcMap空間データにアクセスする方法はありますか?

2
ArcGIS 10デスクトップアドイン内のArcObjectsを介してカスタムマップタイルを使用できますか?
ArcGIS 10デスクトップアドインを介して、ArcMapでカスタムマップタイルをプログラムで使用およびレンダリングできますか? AddInは、ArcObjects SDK for C#/。NETおよびArcGIS 10を使用して構築されています。マップタイルのプルおよびレンダリングは、AddInの主要な機能ではありません。しかし、それが可能であれば、この機能を実装したいと思います。 詳細: ITiledMapServer2インターフェイスが関係しているというヒントを受け取りましたが、私にはわかりません。また、このタスクに関する情報がArcObjectsドキュメントに不足しています。ArcGIS for Flex API内の同等のクラスはTiledMapServiceLayerですが、これもデスクトップアプリ内のArcMapアドインであり、Webアプリではありません。 GoogleマップのJS / Flash APIに似た、同じズーム、タイルY、タイルXタイルスキーマで独自のタイルを生成する社内ソフトウェアがあります。 マップタイルの提供にApacheを使用しているため、現在、ArcGIS Serverを使用していません(タイルのオーサリング、ArcGIS Serverマップサービスとしての公開など)。 私はSOに質問を投稿し、ここに投稿するように勧められました。 前もって感謝します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.