タグ付けされた質問 「arcgis-engine」

ArcGIS Engineは、GISデータ、マップ、およびジオプロセシングをデスクトップアプリケーションおよびモバイルアプリケーションに埋め込むためのものです。


1
ArcEngineでのハイパーリンクツールの使用
ArcEngineでハイパーリンクツール(ControlsMapHyperlinkTool)を使用するのに苦労しています。誰もがそれを経験しましたか? ユーザーがハイパーリンクされた機能をクリックするたびに、「ハイパーリンクを起動できません」というメッセージが表示されることを除いて、正常に動作するようです。「スクリプト」ハイパーリンクを使用していますが、ArcMapで正常に機能します。クリック時にスクリプトを実行しようとしていないようです。IHotlinkExpressionPropertiesオブジェクトをチェックし、Expressionプロパティが正しく設定されています。何かご意見は?ありがとう!

3
フィーチャクラスのロックを解除
同じ機能クラスを使用するArcgisエンジンアプリの使用後または使用中に機能クラスを削除しようとすると、ロックに関するエラーが発生するため、コンピューターを再起動するまでこのロックに乗ることができません。 私はarcpyまたはarcobjects 10.1を使用してロックを削除する方法を知りたいのですが、ジオデータベースをロックするarcengineアプリ内のロックに乗ることができれば完璧でしょうそれらのうち、ArcObjectsを使用してロックを解放するソリューションを提供します。

3
パーソナルジオデータベースは、ファイルジオデータベースよりもインデックス付き属性の迅速なクエリに適していますか?
データをクエリして住所を検索するArcGIS Engineアプリケーションのデータを準備しています。ストリート名フィールド、家番号フィールド、またはその両方で検索する場合があります。パーソナルジオデータベースまたはSDEジオデータベースを使用する場合、単一列インデックスに加えて複数列属性インデックスを追加できます。何らかの理由で、属性インデックスの作成に関するESRIの記事によると、ファイルジオデータベースを使用する場合、複数列の属性インデックスは使用できません。なぜそうなのか、彼らは言及していません-ファイルジオデータベースは何らかの理由でそれらを必要としないのでしょうか? 家番号フィールドと街路名フィールドの複数列インデックスは、両方のフィールドを一度に検索するときの理論上のクエリパフォーマンスを理論的に改善するはずですが、パーソナルジオデータベースの使用に切り替える価値はありますか?パーソナルジオデータベースを使用すると、マルチカラムインデックスの利点が損なわれる可能性があると感じています。 私は、Esriがパーソナルジオデータベースからの移行を望んでいるという印象を受けてきましたが、これはパーソナルジオデータベースの方が適している場合ですか?これに関する経験がある場合、私は知りたいです。

4
1つではなく複数のファイルジオデータベースを使用したArcGIS Engineのパフォーマンス?
ArcGIS Engineアプリケーションのデータを整理する最適な方法を決定しようとしています。特に地図の表示とクエリの速度に興味があります。現在、すべてのデータをテーマに基づいて個別のファイルジオデータベースに分割しています。Transportation.gdb、Utilities.gdbなどがあります。データは必ずしもテーマに基づいて整理する必要はなく、すべてを1つのファイルジオデータベースに入れることを検討しています。 私は自分でテストを行いますが、コミュニティに質問を投げかけたかったのです。 一般に、単一のファイルジオデータベースの使用は、複数(約7)の小さいジオデータベースの使用よりも高速ですか?他の賛否両論にも興味があります。 注:ソフトウェアとすべてのデータは、お客様のローカルマシンにあります。Web上またはネットワーク経由でデータが提供されず、データ量がかなり少ない(約100,000個の機能)。

3
ArcMapで通常表示されるデータ形式はどれですか?
私の組織は、ArcGIS Engineで実行されるアプリケーションに取り組んでいます。アプリケーションの以前のバージョンでは、道路、区画、建物などを表示するために主にシェープファイルを使用していました。 私は大学の仕事でデータを管理するときにシェープファイルを避けるように教えられたので、ファイルジオデータベースに移行することを提案しました。 Esriは、ファイルジオデータベースがパフォーマンスとストレージ用に最適化されていると主張しています。 私の同僚は、シェープファイルは通常、より高速に描画されると聞いたことを覚えています。 私はこのトピックについて直接話している記事に出くわしなかったので、コミュニティに尋ねると思いました。 私はファイルジオデータベースに傾倒していますが、Shapefilesが提供するものを見逃していないかどうかを知るのは良いことです。

5
マップアプリケーションの標準縮尺、またはズームレベルとは何ですか?
スケールセットに制限されているArcEngineプログラムに取り組んでいます。それは現在持っています: 1:187.5 1:375 1:750 1:1500 1:3000 1:6000 1:12000 1:24000 1:50000 1:100000 私の縮尺に問題はないと思いますが、Webマッピングまたはその他のマッピングアプリケーションで使用される「標準」の縮尺セットがあるかどうかを知りたいと思います。

4
ArcGISのアップグレード後に以前のバージョンからArcGISエクステンションをアンインストールしますか?
ArcGIS 9.3.1(サーバー、デスクトップ、エンジン)をアンインストールしてから、ArcGIS10.0(サーバー、デスクトップ、エンジン)をインストールしました。 一部のアークマップ拡張機能をアンインストールしようとすると、エラー1001「インストーラータイプを取得できません」が発生しました。 つまり、このアドバイスに耳を傾けるのを忘れていました。 ArcGISをアンインストールする前に、カスタムコンポーネントをアンインストールする必要があることに注意してください。その理由は、カスタムコンポーネントはインストール/アンインストール時にロードする必要があるためです。 10.0をアンインストールして9.3.1を再インストールせずにこれを完全にアンインストールする方法を誰かが知っていますか? 更新:Revo Uninstallerを使用してクリーンアップした後、CCleanerを使用してレジストリをクリーンアップしたと思います。

2
グラフィックスを描画した後にビューを更新する最良の方法は何ですか?
ボタンをクリックしてポリゴンを描画し、機能を強調表示します。次に、ActiveViewを更新して、新しいポリゴンを表示する必要があります。この行は機能します: mapControl.ActiveView.ScreenDisplay.StartDrawing(StartDrawing(mapControl.ActiveView.ScreenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); mapControl.ActiveView.ScreenDisplay.DrawPolygon(feature.Shape); mapControl.ActiveView.ScreenDisplay.FinishDrawing(); mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewAll, feature.Extent, null); しかし、それは常にすべてのレイヤーをリロードします。私はPartialRefresh他の人とほとんどすべての方法で呼び出しを試みましたesriViewDrawPhaseが、どれも新しいポリゴンを表示しませんでした。 で再描画するよりも良い解決策はありesriViewDrawPhase.esriViewAllますか? 更新 を使用しILayerExtensionDraw.AfterDrawて描画フェーズをテストしましたが、AfterDrawはでのみヒットPartialRefresh()しesriViewAllます。拡張機能はMapControl.Layersのすべてのレイヤーに追加されます。毎回ヒットすると思っていましたか?mapControl.ActiveView.ScreenDisplay.DrawPolygon(feature.Shape);AfterDrawが発生しないように、どのレイヤーに描画しますか? 回答 カークのおかげで、ここに解決策があり、レイヤーを再ロードせずに、新しく追加されたグラフィックを表示します。 IGraphicsContainer con = _mapControl.Map as IGraphicsContainer; if (con != null) { IFillShapeElement fillShapeElement = new PolygonElementClass(); fillShapeElement.Symbol = fillSymbol; IElement element = (IElement)fillShapeElement; element.Geometry = feature.Shape; con.DeleteAllElements(); con.AddElement(element, 0); _mapControl.ActiveView.ScreenDisplay.Invalidate(feature.Extent, true, _mapControl.ActiveView.get_ScreenCacheID(esriViewDrawPhase.esriViewGraphics, null)); }

1
FeatureLayerがすでに存在するかどうかを確認する方法は?
私は現在、ユーザーがマップ(mxd)をシステムにロードするときに、いくつかのカスタムfeatuerlayersを作成するプロジェクトに取り組んでいます。しかし、私の問題は、それらのレイヤーがすでに作成されているかどうかを確認する方法がわからないことです(たとえば、ユーザーがmxdをロードし、レイヤーを作成して保存し、mxdを再ロードすると、レイヤーがすでに存在するかどうかを確認する必要があります)。 ArcEngine10のFeatuerLayerClassに一意のIDがありますか?FeatureLayerClass.FeatureClassにOIDNameとObjectClassIDがありますが、それらは機能していないようです(ObjectClassIdを割り当てることができず、OIDNameにUniqueIdを使用したい)。 このように、layerをfeaturelayerclassビジネスオブジェクトとして作成しました。 コード: /// <summary> /// Unique Route LayerId /// </summary> public static Guid RouteFeatureLayerId { get { return Guid.Parse("ba25a332-0e48-4ce5-a4c5-38dc36c0700c"); } } /// <summary> /// Feature class that stores info on the routes /// </summary> public FeatureLayerClass RouteFeatureLayer { get { if (_routeFeatureClass == null) { IPropertySet property = …

2
非常に遅いArcSDE 10.1データ表示の回避策はありますか
ArcgisエンジンアプリケーションからのデータとArcSDEデータベースの表示が非常に遅いので、SDEデータベースはローカルホストにあるため、ネットワークの問題はありません。しかし、私はまだこの問題を解決する方法も理由もわかりません。 2 CPUのXeon 3.4 GHzと2 GbのRAMを搭載した64ビットマシンで作業しています。 データベースには20のフィーチャクラスが含まれていますが、一部のフィーチャクラスではフィーチャの最大数が100 000を超えていません。データの表示を待つ場合、10分間待つ必要があります。 データベースのインデックスを圧縮して再構築しようとしましたが、改善はまったくありません。 ArcMapからデータを表示しようとしましたが、同じ問題が見つかりました。 パフォーマンスモニターを使用して、CPUとネットワーク側のいくつかのボトルネックを指摘しました。 SDEINTERCEPTの詳細: @travisアドバイスを試したので、Arcmapを使用してsdeでmxd参照データを開き、この部分に7分かかると述べました。 [W 10:34:37.710] Command: QueryWithInfo [R 10:34:37.710] Long: 1 [R 10:34:37.710] Query Info: Num Columns: 1 Columns: "shape" SQL_Construct: [1] Tables: "gebase.sde.point" WhereClause: "type_point_id<3" Query Type: 4 Num Hints: 0 Num Parameter markers: 0 Logfile: <null> [W 10:34:37.718] …


1
ArcGIS Engineを使用したカスタムパン
いくつかの制約のため、ここでは説明しませんが、アプリケーションにカスタムパンを実装する必要があることに気づきました。 ArcGIS APIリファレンスでは、次のメソッドの使用を推奨しています。 IScreenDisplay2.PanStart(IPoint start) // Starts a pan IScreenDisplay2.PanMoveTo(IPoint moveTo) // Moves to a point IScreenDisplay2.PanEnd() // Ends the pan これらの各メソッドは、次のイベントハンドラーで(それぞれ)呼び出されます。 IMapControl4.OnMouseDown // Call PanStart() IMapControl4.OnMouseMove // Call PanMoveTo() IMapControl4.OnMouseUp // Call PanEnd() つまり、すべてがうまく機能し、イベントが処理され、パンが始まり、みんなが幸せです。 -だが- 画面が実際にパンする場所は、カーソルをドラッグした場所ではありません。マップはやや確定的なパターンで動き回りますが、APIが何をしているかを補正する方法がわかりません。私は啓発的なドキュメントを見つけることができませんでした。 誰かがAPIのこの部分の経験がありますか?サンプルコードやドキュメントは素晴らしいです!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.