C# 使用;MakeRouteEventLayer”一词;在ArcGIS中

C# 使用;MakeRouteEventLayer”一词;在ArcGIS中,c#,arcgis,arcobjects,C#,Arcgis,Arcobjects,我试图使用MakeRouteEventLayer工具,但似乎无法满足不同的先决条件。路由托管在SDE数据库中。到目前为止,我通过与数据库服务器建立连接来设置工作区,但我不知道如何获取MakeRouteEventLayer所需的参数。我似乎找不到应该如何让功能层作为输入路由功能通过。另外,我不知道如何正确地创建事件表。我似乎找不到任何与我试图实现的目标相关的例子,除此之外,我不理解,因为没有太多的文档/注释,也没有提到数据类型 供您参考,我正在使用的工具是用C#编写的。阅读桌面应用程序的帮助文件可

我试图使用MakeRouteEventLayer工具,但似乎无法满足不同的先决条件。路由托管在SDE数据库中。到目前为止,我通过与数据库服务器建立连接来设置工作区,但我不知道如何获取MakeRouteEventLayer所需的参数。我似乎找不到应该如何让功能层作为输入路由功能通过。另外,我不知道如何正确地创建事件表。我似乎找不到任何与我试图实现的目标相关的例子,除此之外,我不理解,因为没有太多的文档/注释,也没有提到数据类型


供您参考,我正在使用的工具是用C#编写的。

阅读桌面应用程序的帮助文件可能会有用,因为它解释得更好一些:

在过去使用个人地理数据库时,我不得不处理类似的问题。所以本质上,这就是你需要做的:

  • 将工作区设置为数据库(在创建与数据库的连接后)。使用C#等效于gp.Workspace=“此处连接”
  • 第一个参数(必需)是参照您的工作空间的管线要素图层名称(如果工作空间为dbName,内部为routeFL,则图层名称将仅为routeFL)
  • 第二个参数(必需)是每个唯一路由的标识符。它可以是您定义的RouteID,也可以是路由层中每个要素的唯一标识符
  • 第三个参数(必需)是包含要在路由上定位的事件的表
  • 第四个参数(必需)是事件的类型,点或线。它由事件所在的routeID(事件表中标识应在其上的路线的字段)、事件类型(点或线)以及“起点”和“终点”测量字段组成。如果您使用的是“点”,则“起点”仅使用一个,称为“测量”字段
  • 第五个参数(必需)是输出层。注意:这是一个内存层,因此它不接受路径,也不会永久存储。您可以在以后对其运行命令来存储它
  • 其余参数是可选的,包括:(a)事件文件中的偏移字段,(b)要添加并填充可能错误的错误字段,(c)要添加的角度字段,以指示管线和点事件之间的角度-不适用于管线事件,因为它们在管线上),(d)角度类型,垂直或相切,(e)是否记录互补角度(仅当您首先启用角度测量时),(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)命令即可