阅读桌面应用程序的帮助文件可能会很有用,因为它解释得更好:ESRI WebHelp for ArcGIS 9.3.1。
在过去使用个人地理数据库时,我不得不处理类似的问题。所以本质上,这就是你需要做的:
- 将您的工作区设置为数据库(在创建到它的连接之后)。使用 gp.Workspace = "connection here" 的 C# 等价物
- 第一个参数(必需)是路径要素图层名称,参考您的工作空间(如果工作空间是 dbName 并且内部是 routeFL,则图层名称将仅为 routeFL)。
- 第二个参数(必需)是每个唯一路由的标识符。它可以是您定义的 RouteID,也可以是路径图层中每个要素的唯一标识符。
- 第三个参数(必需)是包含您要在路线上定位的事件的表。
- 第四个参数(必需)是事件的类型,POINT 或 LINE。它由事件所在的 routeID(事件表中的一个字段,用于标识您应该在的路径)、事件类型(POINT 或 LINE)以及 From 和 To 度量字段组成。如果您使用的是点,则 from 仅使用一个,称为度量字段。
- 第五个参数(必需)是您的输出层。请注意,这是一个 IN-MEMORY 层,因此它不接受路径,也不会永久存储。之后您可以在其上运行命令来存储它。
- 其余参数是可选的,包括:(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) 命令即可。