カスタム ArcGIS Desktop ツール プロジェクトに取り組んでおり、自動リニア リファレンス機能を実装したいと考えています。簡単に言うと、ルートに沿って問題のあるセグメントを表示し、色分け (緑、黄、赤など) を使用して重大度を示したいと思います。これは非常に一般的なシナリオであり、このタスクを達成するための「正しい方法」は、特定のルート セグメントに異なるコードを割り当てることができる線形イベント テーブルを作成することであることがわかりました。私の同僚の中には手動で行う方法を知っている人もいますが、これをプログラムで複製する方法を見つけることができないようです。
現在のツールは C# で記述されており、問題のある領域を特定するために必要なすべての計算を既に実行しています。主な問題は、ArcObjects についてよく知らないため、どこから始めればよいかわからないことです。コード サンプルや提案は大歓迎です (C# が推奨されますが、C++、VB などはいずれにせよ確実に役に立ちます)。
編集 :
MakeRouteEventLayer ツールを使用しようとしていますが、さまざまな前提条件が満たされていないようです。ルートは SDE サーバーでホストされます。これまでのところ、私はこの方法で接続を確立しています:
ESRI.ArcGIS.esriSystem.IPropertySet pConnectionProperties = new ESRI.ArcGIS.esriSystem.PropertySet();
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory pWorkspaceFactory;
ESRI.ArcGIS.Geodatabase.IWorkspace pWorkspace;
ESRI.ArcGIS.Location.ILocatorManager pLocatorManager;
ESRI.ArcGIS.Location.IDatabaseLocatorWorkspace pDatabaseLocatorWorkspace;
pConnectionProperties.SetProperty("server", "xxxx");
pConnectionProperties.SetProperty("instance", "yyyy");
pConnectionProperties.SetProperty("database", "zzzz");
pConnectionProperties.SetProperty("AUTHENTICATION_MODE", "OSA");
pConnectionProperties.SetProperty("version", "dbo.DEFAULT");
pWorkspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactory();
pWorkspace = pWorkspaceFactory.Open(pConnectionProperties, 0);
pLocatorManager = new ESRI.ArcGIS.Location.LocatorManager();
pDatabaseLocatorWorkspace = (ESRI.ArcGIS.Location.IDatabaseLocatorWorkspace)pLocatorManager.GetLocatorWorkspace(pWorkspace);
今、私は MakeRouteEventLayer のコンストラクターのすべてを準備しようとして立ち往生しています。Feature LayerをInput Route Featuresとして渡す方法が見つからないようです。また、イベント テーブルの適切な作成方法もわかりません。文書化/コメントされておらず、データ型が言及されていないため、理解できないこれを除いて、私が達成しようとしていることに関連する例を見つけることができないようです。