public void CreateLineEventSource(Geodatabase geodatabase, string routeFeatureClassName = "Roads", string eventTableName = "Accidents", string routeIdFieldName = "RID", string toMeasureFieldName = "toMeasure", string fromMeasureFieldName = "fromMeasure", string offsetFieldName = "Offset")
{
using (FeatureClass routesFeatureClass = geodatabase.OpenDataset<FeatureClass>(routeFeatureClassName))
using (Table eventsTable = geodatabase.OpenDataset<Table>(eventTableName))
{
RouteInfo routeInfo = new RouteInfo(routesFeatureClass, routeIdFieldName);
EventInfo eventInfo = new LineEventInfo(eventsTable, routeIdFieldName, fromMeasureFieldName, toMeasureFieldName, offsetFieldName);
RouteEventSourceOptions routeEventSourceOptions = new LineEventSourceOptions() { IsPositiveOffsetOnRight = true };
using (RouteEventSource routeEventSource = new RouteEventSource(routeInfo, eventInfo, routeEventSourceOptions))
using (RouteEventSourceDefinition routeEventSourceDefinition = routeEventSource.GetDefinition())
{
// Locating errors
IReadOnlyList<RouteEventSourceError> errors = routeEventSource.GetErrors();
// Route event source fields
IReadOnlyList<Field> routeEventSourceFields = routeEventSourceDefinition.GetFields();
// Add RouteEventSource to the ArcGIS Pro map
FeatureLayerCreationParams layerParams = new FeatureLayerCreationParams(routeEventSource)
{
Name = "HighCrashAreas"
};
LayerFactory.Instance.CreateLayer<FeatureLayer>(layerParams, MapView.Active.Map);
}
}
}