2.1關於 TerraExplorer v6.5 API
除了一些新的功能,API v6.5不同於API v6.1的最大改進是其對象ID系統。雖然在以前版本的API中,有兩個ID系統,一個用於對象在工程樹(ITreeItem61.ItemID)的和另一個在3D場景中的對象(ID),但在當前的API中,有且只有一個對象ID,它是識別對象的唯一方法。此ID是唯一的,並且它的值在TerraExplorer會話一直存在的,用於對象的持久性。所有對象被創建時就會返回這些ID,所有的項目樹操作(如刪除,選擇,查詢,移動的工程樹節點)都是基於這個唯一的對象ID。
由於API v6.5的這一變化,影響到ITreeItem65接口去除了ITEMID參數(與長/int參數類型),進而在IProjectTree65和整個API中都要使用ID參數(一個BSTR/字符串參數類型)。
2.2更新C#程序
Step1:創建SGWorld65實例取代原來的創建SGWorld61實例。
Step2:使用新的類型來重命名所有的變量。
如:IPosition6pos=…修改為IPosition65pos=…
注:圖形的相關接口,類似於IGeometry和ILinearRing原來沒有
版本的號的不需要重命名。
Step3:重新編譯代碼。
2.3更新javascript程序
Step1:創建一個SGWorld65實例代替SGWorld61實例
在腳本中,這通常需要改變<OBJECT>標記from:
<objectid="globe"
classid="clsid:3a4f91b1-65a8-11d5-85c1-0001023952c1"/>
to:
<objectid="globe"classid="clsid:3a4f9197-65a8-11d5-85c1-0001023952c1"/>
Step2:修復任何修改/刪除屬性和方法的變化
由於在JavaScript中有沒有類型,你只需要注意文件6.5版和6.1版之間切換。遺憾的是,不同於編譯語言,你沒有編譯器幫助識別那些地方。請參閱:“屬性和方法的變化在APIV6.5”本章中的更多細節。
2.4 屬性、方法和事件函數的改變
屬性:
ApplyTo
此屬性標識地形修改對象應用於3DML
AddedtoITerrainModifier65.
Code
新值添加到Code屬性
ModifiedinIAction65.
DataSourceFeatureID
此屬性的功能分配由數據源返回的ID.
AddedtoIFeatures65.
ElevationOffset
這個屬性決定高程偏移,使您能夠調整參照不同的基線定義的高程來源.
AddedtoITerrainRasterLayer65.
ElevationScale
這個屬性決定的比例因子海拔,讓您調整參照不同的基線定義的高程來源
AddedtoITerrainRasterLayer65.
Features
此屬性替換項目的屬性和獲得要素的方法,以及Count屬性,作為一個功能組中訪問各個功能的手段
AddedtoIFeatureGroup65.
ItemID(Deprecated)
此屬性(它返回一個對象的項目樹ID)被刪除,因為不再使用v6.5以前版本的API項目的樹ID。雖然在前面的API,有兩個ID系統,一個用於資料在工程樹(ITreeItem61.ItemID)的和其他在3D世界中的對象(ID),在當前的API,有一個單一的對象ID,它是識別對象的唯一手段。此ID是唯一的,並且它的值之間保持TerraExplorer會話,允許它被用於產品的持久性。對象被創建時,所有的項目樹管理(如刪除,選擇,查詢,移動的樹元素)以及所有的返回值是基於這種獨特的對象ID。
RemovedfromITreeItem65.
KeyStep
如果這個屬性決定的一個步驟是關鍵的一步,用來標記“chapter”的標題,使用戶可以快速跳轉演示文稿中的一章,使用Previous和Next按鈕在播放面板
AddedtoIPresentationStep65.
LocationSplineSpeed
這個屬性決定位置提示步驟播放演示文稿時,用樣條算法的速度。
AddedtoIPresentationStep65.
LocationSplineSpeedBehavior
這個屬性決定如何實施的LocationSplineSpeed屬性。
AddedtoIPresentationStep65.
NotInTreeID
這個屬性返回的ID應該傳遞一個元素
ParentGroupID,如果你不想要的元素添加到樹.
AddedtoIProjectTree65.
ObjectType
增加了兩個額外的對象類型值:OT_CONTOUR_MAP=42和OT_SLOPE_MAP=43.
ModifiedinITerraExplorerObject65
ParentGroupID
此屬性從ParentItemID重命名
ModifiedinIFeature65.
RootID
這個屬性返回的項目樹的根元素的ID.
AddedtoIProjectTree65.
Shadow(Deprecated)
此屬性已被除去從各種ITerrainXXX對象。它被替換的陰影功能,適用於所有/選定的對象,並且可以使用Command.Execute激活。
ShowHideValue
這個屬性決定是否顯示或隱藏對象或組在演示過程中。
AddedtoIPresentationStep65.
方法:
Create3DViewshed
此方法創建的圖形表示,所有地區的地形和3D模型和可見的對象,一個視野內,從一個給定的觀賞點。
AddedtoIAnalysis65.
CreateAttribute
attrType參數更名為屬性類型.
ModifiedinIAttributes65.
CreateContourMap
此方法創建一個描繪平等海拔等高線的連接點或着色地形地形高程差異,根據不同海拔的地形圖。
AddedtoIAnalysis65.
CreateFloodContinuousWaterRise
該方法的返回值更名為“FloodGroupID”和改變一個BSTR/字符串類型的項目ID,因為不再使用6.5API項目的樹ID.
ModifiedinIAnalysis65.
CreateFloodSingleWaterRise
該方法的返回值更名為“FloodGroupID”和改變一個BSTR/字符串類型的項目ID,因為不再使用6.5API項目的樹ID。
ModifiedinIAnalysis65.
CreateKMLLayer
這種方法加載一個KML圖層到項目。它取代LoadKMLLayer。
AddedtoICreator65.
CreateMeshLayerFromFile
此法加載一個的文件較統一,流優化的三維網狀層(3DML)IMeshLayer65數據庫。
AddedtoICreator65.
CreateMeshLayerFromSFS
此方法加載TerraGateSFSIMeshLayer65的較統一,流優化三維網狀層(3DML)數據庫。
AddedtoICreator65.
CreateSlopeMap
此方法創建一個地圖上的地形,可以顯示度(陡)和/或縱橫坡(方向)
AddedtoIAnalysis65.
DisablePresentationControl
這個全局設置屬性設置為true,指示,TerraExplorer隱藏屏幕上的演示控制播放介紹。
AddedtoIWindow65.
EndVisibilityQuery
這種方法釋放一個新的StartXXXVisibilityQuery資源。
AddedtoIAnalysis65.
Execute
新的值被添加到的CommandID參數。
ModifiedinICommand65.
GetFeature(Deprecated)
此方法返回一組中的功能所取代GetObject
RemovedfromIFeatureGroup65.
GetTerraObjectID(Deprecated)
刪除,因為這種方法檢索對象的實際基於對象ID項目TreeID上,不再使用v6.5以前版本的API項目的樹ID。
RemovedfromIProjectTree65.
GetXML2
替代棄用的GetXML方法,這種方法,它檢索一個XML字符串,定義被添加到導航地圖窗口中的地圖列表。
AddedtoITENavigationMap5.
LoadKMLLayer(Deprecated)
這種方法加載一個KML層到項目中被刪除,取而代之的CreateKMLLayer.
QueryPointVisibility
這種方法執行的最后StartXXVisibilityQuery呼叫。
AddedtoIAnalysis65.
SetOptionParam
新支持的參數字符串值增加了。
ModifiedinISGWorld65.
SetParent
該方法的返回值被刪除。
ModifiedinIProjectTree65.
StartShadowVisibilityQuery
AddedtoIAnalysis65.
此方法初始化陰影可視性查詢選定的位置和陰影效果。
StartViewshedVisibilityQuery
此方法初始化一個視域的能見度查詢特定的視域。
AddedtoIAnalysis65.
事件:
OnProjectTreeAction
額外的值添加到Action參數。
ModifiedinISGWorld65.
2.5 新增加接口
I3DMLFeatureLayer65
這個接口提供點功能在3DML功能層交互的屬性和方法。它使您可以訪問數據源的信息的基礎上,功能層和執行層的功能(如設置消息,工具提示,色調),以及執行空間查詢。
I3DMLFeatureLayers65
此接口返回的功能層的數目在3DML數據集,並提供了每一層的索引,以允許訪問的功能層。
I3DMLFeatureProperties65
此接口返回或設置特定的屬性值中的所有功能本3DML的功能層。
I3DViewshed65
此接口提供了用於計算並創建地形和3D模型和對象是可見的從指定的位置上的區域的圖形表示的屬性和方法。
IClipboard65
此接口使您可以添加多個項目到剪貼板,然后訪問這些項目。
IContourMap65
該接口提供了用於創建一個地形圖,描繪平等海拔等高線的連接點,或根據不同高度着色地形地形高程差異的屬性和方法。
IFeatureLayer65
由IFeatureLayer65替換ILayer61。現在IFeatureLayer65繼承ITerraExplorerObject65。
IKMLLayer65
此接口可以訪問到一個KML圖層上可以執行的行動。KML圖層加載到一個項目總是從本地或遠程數據源直接讀取,而不是進口飛文件存儲在。
IMeshLayer65
該接口提供了統一,流優化3D的網狀層(3DML)數據庫的訪問。可以創建3DML數據庫TerraBuilderCityBuilder的通過三維網狀城市模型合並圖層(產生由TerraBuilderPhotoMesh),連同分類層,其他模型層,或者,在TerraExplorer建立一個統一的,流優化的三維網狀層(3DML點圖層個別引用的3D模型文件)數據庫。
ISlopeMap65
這個接口提供的屬性和方法創建一個斜坡地圖上的地形,可以顯示度(陡)和/或縱橫(方向)