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. 第二个参数(必需)是每个唯一路由的标识符。它可以是您定义的 RouteID,也可以是路径图层中每个要素的唯一标识符。
  4. 第三个参数(必需)是包含您要在路线上定位的事件的表。
  5. 第四个参数(必需)是事件的类型,POINT 或 LINE。它由事件所在的 routeID(事件表中的一个字段,用于标识您应该在的路径)、事件类型(POINT 或 LINE)以及 From 和 To 度量字段组成。如果您使用的是点,则 from 仅使用一个,称为度量字段。
  6. 第五个参数(必需)是您的输出层。请注意,这是一个 IN-MEMORY 层,因此它不接受路径,也不会永久存储。之后您可以在其上运行命令来存储它。
  7. 其余参数是可选的,包括:(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)

上面的代码允许您在临时的内存层中创建 Route Event 层。要保存图层,只需运行 SaveToLayerFile(inLayer, outLayer) 命令即可。

于 2009-08-15T21:53:14.097 回答