2009-08-12 29 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)命令即可完成。