0

MakeRouteEventLayer ツールを使用しようとしていますが、さまざまな前提条件が満たされていないようです。ルートは SDE データベースでホストされます。これまでのところ、データベース サーバーに接続してワークスペースを設定していますが、MakeRouteEventLayer のコンストラクターで必要な引数を取得する方法がわかりません。フィーチャ レイヤーを入力ルート フィーチャとして渡す方法がわかりません。また、イベント テーブルの適切な作成方法もわかりません。あまり文書化/コメントされておらず、データ型が言及されていないため、私が理解していないこれを除いて、私が達成しようとしていることに関連する例を見つけることができないようです。

参考までに、私が取り組んでいるツールは C# で書かれています。

4

1 に答える 1

0

デスクトップ アプリケーションのヘルプ ファイル ( ESRI WebHelp for ArcGIS 9.3.1 ) を読むと役立つ場合があります。

過去にパーソナル ジオデータベースを操作していたときも、同様の問題に対処しなければなりませんでした。したがって、本質的に、これはあなたがする必要があることです:

  1. ワークスペースをデータベースに設定します (データベースへの接続を作成した後)。gp.Workspace = "connection here" に相当する C# を使用します。
  2. 最初の引数 (必須) は、ワークスペースを参照するルート フィーチャ レイヤー名です (ワークスペースが dbName で内部が routeFL の場合、レイヤー名は routeFL のみになります)。
  3. 2 番目の引数 (必須) は、一意の各ルートの識別子です。これは、定義した RouteID か、ルート レイヤー内の各フィーチャの一意の識別子です。
  4. 3 番目の引数 (必須) は、ルートで検索するイベントを含むテーブルです。
  5. 4 番目の引数 (必須) は、イベントのタイプ (POINT または LINE) です。これは、イベントが配置されている routeID (イベント テーブル内のフィールドで、イベントのルートを識別するフィールド)、イベントのタイプ (POINT または LINE)、および From および To 測定フィールドで構成されます。ポイントを使用している場合、from は 1 つだけ使用され、メジャー フィールドと呼ばれます。
  6. 5 番目の引数 (必須) は、出力レイヤーです。これは IN-MEMORY レイヤーであるため、パスを受け入れず、永続的に保存されないことに注意してください。後でコマンドを実行して保存できます。
  7. 残りの引数はオプションで、以下が含まれます: (a) イベント ファイルのオフセット フィールド、(b) 追加され、発生する可能性のあるエラーが入力されるエラー フィールド、(c) ルート間の角度を示すために追加される角度フィールドポイント イベント - ライン イベントはルート上にあるため、ライン イベントでは機能しません)、(d) 角度のタイプ (垂直または接線)、(e) 補角を記録するかどうか (最初のイベントで角度測定を有効にした場合のみ) place)、(f) ルートの左/右のオフセット方向、オフセットを以前に有効にした場合のみ、最後に (g) ポイントのタイプ (マルチポイントまたはポイント)。

これにより、フィールドをよりよく理解してタスクを完了することができれば幸いです。Python の例が少し役立つかもしれません。

gp.workspace = "myDB.mdb"
# Route file to use
routeFC = "myRoutes"
# The identifier for each route
routeID = "rID"
# Where my events are stored
eventTable = "accidents"
# My events use a routeID to identify route they are on, are POINTS and their measure field is called "mile"
eventProperties = "routeID POINT mile"
# Temporary layer to save everything to
outputLayer = "accidentEvents"
# Have no offset
offset = "#"
# Need to add the errors for verification purposes
error = "ERROR_FIELD"
# Need to store angles
angles = "ANGLE_FIELD"
# Need perpendicular angle
angleType = "NORMAL"
# Run the command now to create the layer
gp.MakeRouteEventLayer(routeFC, routeID, eventTable, eventProperties, outputLayer, offset, error, angles, angleType)

上記のコードを使用すると、ルート イベント レイヤーを一時的なインメモリ レイヤーに作成できます。レイヤーを保存するには、SaveToLayerFile(inLayer, outLayer) コマンドを実行するだけで完了です。

于 2009-08-15T21:53:14.097 に答える