問題タブ [arcobjects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1384 参照

.net - GCが手動で強制されるまで、リリースされたArcObjects COMオブジェクトがファイナライズされないのはなぜですか?

ESRI独自の.NET相互運用機能アセンブリを介してESRIのArcObjectsCOMライブラリを使用する地理データを処理するための.NETアプリケーションに取り組んでいます。

本番環境で実行している場合、プロセスごとのメモリ制限が2GBに達するため、一部の操作中にプロセスがクラッシュする可能性があります。(ArcObjectsは32ビットライブラリです。)これは、一部の処理ステップで多くの一時的なArcObjectsジオメトリオブジェクトが作成される可能性があるためです。FinalReleaseComObjectおよび関連するヘルパーメソッドを使用してこれらのオブジェクトを手動で解放したにもかかわらず、メモリリークが発生し、最終的にメモリが不足します。ただし、をWaitForPendingFinalizers呼び出して定期的に呼び出すことでGC.Collect、 GCにメモリを強制的に解放させFinalReleaseComObject、メモリ使用量を制御することができます。それ以外の場合、プロセスが終了するまで(正常または異常に)多くのオブジェクトがメモリに残ります。

最初の質問:ArcObjects COMオブジェクトによって保持されているメモリがすぐに解放されないのはなぜですか?または、GCが、リリースされたCOMオブジェクトをファイナライズして、クラッシュする前にメモリを再利用するのではなく、プロセスをクラッシュさせるのはなぜですか?

アプリケーションはWindows200864ビットで本番環境で実行されますが、私はWindows732ビットを使用して開発しています。プロセスを本番ボックスでクラッシュさせることはできますが、開発ボックスでクラッシュさせることはできません。これは、ローカルでは通常、デバッグビルドを使用してVisual Studioで実行しているためだと思いましたが、リリースビルドを使用してデバッガーなし(デバッグなしで開始)でも試しましたが、それでもそれほど多くは使用されませんでした本番環境と同じようにメモリを使用し、クラッシュしません。

2番目の質問:なぜですか?

編集:以前の実験では、GC.Collect明示的に呼び出していたとしても、それだけでは不十分であることがわかりました。アルゴリズムを繰り返すたびにメモリ使用量を抑えてから呼び出すユーティリティメソッドがありますGC.CollectGC.WaitForPendingFinalizers

0 投票する
2 に答える
3822 参照

c# - Rhino.Mocks と ref パラメータ

ref パラメーターを持つメソッドのテストに問題があります。私はライブラリ/コードの所有者ではないため、変更できません。そのため、ref パラメータを削除するよう提案しないでください。

この Web サイトを参照として使用しています: http://ayende.com/wiki/Rhino%20Mocks%203.5.ashx#OutandRefarguments

テストは次のとおりです。

ここに私が見つけているエラーがあります:

Rhino.Mocks.Exceptions.ExpectationViolationException : ICommandBar.Add(ESRI.ArcGIS.esriSystem.UIDClass, 0); 予想 #0、実際の #1。

すでにいくつかの方法を試しましたが、うまくいきません。ビルド メソッドの実装は次のとおりです。これは、ビルドする関数のリストと、関数が関連付けられているユーザーを受け取るだけです。彼が関数を持っている場合は、add メソッドを使用してビルドする必要があります。

誰かが私を助けることができますか?

0 投票する
3 に答える
722 参照

java - ArcGIS の拡張

私は、ArcGis の機能を拡張しなければならない論文プロジェクトを任されています。私は、ArcGIS 10 で実行できる Python で記述されたモデルを作成するように依頼されました。このモデルには、ユーザーがさまざまなシェープファイルをドラッグ アンド ドロップし、特定の変数の値を入力して、効率よく走るモデル。モデルの実行が完了すると、ポイント A からポイント B への風力タービンの最も費用対効果の高いコレクター ケーブル ルートをレイアウトする新しいシェープファイルが作成されます。

そのような機能/拡張機能が ArcGIS に既に存在するかどうかを知りたいので、車輪を再発明する必要はありません。そうでない場合、このために ArcGIS を拡張するために学ぶのに最適なプログラミング言語は何ですか (Python 対 Visual Basic 対 Java)。私の経歴は、Java、PHP、Jquery、および Javascript です。また、正しい方向へのポインタ、つまりドキュメント、リソースなども大歓迎です

0 投票する
1 に答える
377 参照

c# - AutoMapperまたはValueInjecterを使用してソースプロパティをターゲットメソッドにマップすることは可能ですか?

単純でプレーンなソースオブジェクトを、インターフェイス(IFeatureClassSetValue(index, value) )を実装し、宛先'プロパティ'を設定するための名前のパブリックメソッドのみを持つ宛先オブジェクトにマップしようとしています。

オブジェクト(DTO / BO)をIFeatureClassを実装するオブジェクトに動的にマッピングできるようにしたい。FindField(string fieldname)フィールドのインデックスは、フィールドのインデックスを返すと呼ばれるインターフェイスの別のメソッドを使用して見つけることができます。

AutoMapperまたはValueInjecterを使用してこの種の作業を行うことは可能だと思いますか。それとも、これを行うのに役立つパターンや何かがありますか?もしそうなら、それを行う方法を教えていただけますか?ドキュメントと既存の例を確認しましたが、ニーズに合った例が見つかりません。

よろしく、クリスチャン

0 投票する
0 に答える
314 参照

.net - スケマティック属性の作成方法 (ArcObject .Net api)

スケマティック ダイアグラム テンプレートとエレメント クラスを作成するための ArcCatalog(10.1) Addin(C#) を作成しています。ここで、Link クラスの OriginNode や ExtrimityNode、他のクラスの Constant および別のフィールド Attribute などのいくつかの属性を作成する必要があります。

次のような要素クラスを作成しましたが、 ISchematicElementClass emtClass = [ISchematicDataset].CreateSchematicElementClass(elmClassName, esriSchematicElementType.esriSchematicNodeType);を作成できませんでした。

Element Class Object にはメソッド CreateSchematicAttribute("NodeName", uid) がありますが、管理できません。

「コレクションにアイテムが見つかりません」というエラーが表示されます

誰か助けてくれませんか....

ありがとう

0 投票する
1 に答える
537 参照

vb.net - ISelectionSetのSearchメソッドに渡されたFeatureCursorインスタンスはNullReferenceExceptionをスローします

アークマップ用のカスタムツールをVB.Netで作成しようとしています。しかし、ISelectionSetのSearch()メソッドに渡されるFeatureCursorに問題があります。

これが私のコードの一部です:

Search()内のprovCursorの下に青い波線が表示され、「変数'provCursor'は、値が割り当てられる前に参照によって渡されます。実行時にnull参照例外が発生する可能性があります。」私はもう試した

ただし、New FeatureCursorの下の波線は、「'ESRI.ArcGIS.Geodatabase.FeatureCursorClass.Friend Sub New()'は、'Friend'であるため、このコンテキストではアクセスできません」と表示します。私も試しました

しかし、成功しませんでした。

すべてのデバッグ試行で、Arcmapが次のエラーでクラッシュしました:タイプ「System.NullReferenceException」の最初のチャンスの例外がMicrosoft.VisualBasic.dllで発生しました

誰かが私のコードの何が問題なのかを理解するのを手伝ってもらえますか?助けていただければ幸いです。

-槍兵

上記のコードまたは以前のコードでエラーが発生したかどうかは実際にはわかりません。したがって、サブプロシージャのコンテンツ全体を投稿します。

0 投票する
1 に答える
334 参照

vb.net - 使用済みの IWorkspace に対する IDatabaseCompact.Compact()

vb.net で ArcMap-AddIn を作成しています。compactIWorkspace(mdb) にアクセスしようとするとエラーが発生しました。エラーは次のとおりです。

COM例外

コンピュータ 'XXXXXX' のユーザー 'ADMIN' によって既に開かれているデータベースを開こうとしました。データベースが使用可能になったら、もう一度試してください。

ESRI.ArcGIS.Geodatabase.IDatabaseCompact.Compact() で MyProject.MyClass.CompactGDB(IWorkspace pWS) で

使用済みワークスペースを圧縮するにはどうすればよいですか? 私のワークスペースも使用した他の8つの機能があります。

助言がありますか?

コード:

0 投票する
1 に答える
407 参照

vb.net - VB.Netでプログラムによってフィールドをオフにします

ArcmapでVB.net経由でアドインボタンを作成しています。このボタンをクリックすると、識別ツールが実行されます。ただし、選択したフィールドのみを識別ダイアログに表示したい。不要なフィールドを非表示にして、ボタン使用後に再度表示することを考えました。

プログラムでフィールドをオフ/オンにする方法を知っている人はいますか?

0 投票する
3 に答える
513 参照

arcobjects - 2 つのポリゴンの結合後に共有エッジを削除する

隣り合った 2 つのポリゴンがあります (左の画像)。2 つのポリゴンの結合を実行すると、左の画像のような輪郭を持つ 1 つのポリゴンができます。私が探しているのは、右側に示すように、2 つのポリゴンの共有エッジを削除する方法です。arcobjects (.net) と arcdesktop 10.1 を使用しています。これを実現するための優れた組み込みメソッドがあることを願っています。ありがとう。

左の画像は、結合後に得られるものです。 右の画像は私が欲しいものです。

0 投票する
1 に答える
480 参照

wcf - WCF と ArcGIS Silverlight API を使用してサーバーから feature.shape を返す

私はarcgis Silverlight APIを使用しています

私がする必要があるのは、オブジェクト ID によってフィーチャからジオメトリを取得して、それにズームすることだけです

だから私はジオメトリを取得するためにWCFサービスを使用しましたが、私は言うエラーを見つけました

型 'System.__ComObject' をシリアル化できません

私を助けてくれませんか?

前もって感謝します