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
这个接口提供的属性和方法创建一个斜坡地图上的地形,可以显示度(陡)和/或纵横(方向)