Я работаю над пользовательским проектом ArcGIS Desktop, и я хотел бы реализовать в нем автоматическую линейную ссылку. Короче говоря, я хотел бы отображать проблемные сегменты вдоль маршрута и показывать степень тяжести, используя цветовой код (например, зеленый, желтый, красный и т. Д.). Я знаю, что это довольно распространенный сценарий и понял, что «правильный путь» для решения этой задачи - создать таблицу линейных событий, которая позволит мне назначать разные коды определенным сегментам маршрута. Некоторые из моих коллег знают, как это сделать вручную, но я не могу найти способ воспроизвести эту программу.Программный способ выполнения линейных ссылок в ArcGIS
Текущий инструмент написан на C# и уже выполняет все необходимые вычисления для определения проблемных областей. Проблема в основном заключается в том, что я не знаю, с чего начать, поскольку я не очень много знаю о ArcObjects. Любой образец кода или предложение приветствуются (предпочтительнее C#, но C++, VB и другие наверняка мне помогут).
EDIT:
Я пытаюсь использовать инструмент 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-х constructor. Я не могу найти, как я должен получить Feature Layer для передачи как Входной маршрут Особенности. Кроме того, я не понимаю, как правильно создать таблицу событий. Я не могу найти какой-либо пример, связанный с тем, что я пытаюсь выполнить, кроме this one, который я не понимаю, так как он не документирован/прокомментирован, и типы данных не упоминаются.
Очень информативный ответ, спасибо! –