2009-08-12 30 views
0

我试图使用MakeRouteEventLayer工具,但似乎无法获得满足的不同前提条件。这些路由托管在SDE数据库上。到目前为止,我通过建立与数据库服务器的连接来设置工作空间,但我不知道如何获取MakeRouteEventLayer的constructor所需的参数。我似乎无法找到我应该如何让特征层作为输入路由特征通过。另外,我不明白如何正确创建事件表。除了this one之外,我似乎无法找到任何与之相关的示例,但我不明白,因为它没有记录/评论,数据类型也没有提及。在ArcGIS中使用“MakeRouteEventLayer”

对于您的信息,我正在使用的工具是用C#编写的。

回答

0

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

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

  1. 设置你的工作空间到数据库(创建一个连接后)。使用C#相当于gp.Workspace =“此处连接”
  2. 第一个参数(必需)是路径要素图层名称,参考您的工作空间(如果工作空间是dbName,而里面是routeFL,则图层名称将是只有routeFL)。
  3. 第二个参数(必填)是每个唯一路由的标识符。它可以是您定义的RouteID,也可以是路由图层中每个功能的唯一标识符。
  4. 第三个参数(必需)是包含要在路径上定位事件的表。
  5. 第四个参数(必需)是事件的类型,POINT或LINE。它由事件所在的路径ID(Events表中标识您应该在的路径的一个字段),事件类型(POINT或LINE)以及From和To度量字段组成。如果您使用的是point,那么from就只用到一个,称为measure字段。
  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)命令即可完成。