2011年4月,Skyline推出了最新版本的软件(version 6.0),相对于以前版本软件,新版本软件改善和增加了很多新能功能;同时,开放的APIs也进行了很大的调整,变得更加丰富合理、简单易用。那么,新版本开放的APIs相对于早期的APIs都有哪些明显变化和改进呢?
1. TerraExplorer与SGWorld的关系?
在新版本的开发及运行环境中,保持了对以前版本APIs支持的兼容性,通过TerraExplorer接口依然可以调用早期版本的功能APIs;但如果使用新版本的APIs,则需要通过SGWorld接口来实现;不同时期的接口可以混合使用;
2. 从软件UI上的变化对应IMenu到ICommand6的变化?
在以前版本中,用户通过IMenu接口可以实现对TerraExplorer(包括View和Pro版本)软件菜单功能的快速调用,而新版本软件的界面风格上做了很大的改变,如果要实现对菜单功能的快速调用,则需要通过ICommand6接口来实现;
3. 从ILayer5到ILayer6的变化?
ILayer6相对ILayer5改进了很多,首先是调整了图层组织结构,增加了FeatureGroups6、FeatureGroup6、Features6 、Feature6、IFeatureAttributes6、IFeatureAttribute6等对象;其次是增加了实现拓扑查询的ExecuteSpatialQuery方法;另外,ILayer6对象也支持新建、编辑和保存;
4. ClientData属性的变化?
导入Skyline的SHP文件,SHP文件原有的属性信息,在Skyline5版本的时候,是保存在对象的ClientData属性中的;但在Skyline6版本中,那些信息是记录在IFeature6对象的IFeatureAttributes6中的,而没有保存到ClientData属性中;ClientData属性仅用来记录用户需要自定义增加的属性字段及信息;
5. 创建几何对象方法的变化?
利用新版本的APIs创建几何对象,需要先创建IPosition6或者IGeometry来确定对象的几何结构和位置,进而才能创建ITerrainLabel6、ITerrainModel6、ITerrainPolyline6、ITerrainBuilding6等对象;IGeometry可以通过ICreator6的IGeometryCreator来创建;
6. 新增几何对象拓扑关系的判断和计算?
通过ISpatialRelation和ISpatialOperator接口,能够实现几何对象拓扑关系的判断和计算,进而实现相对复杂空间分析计算,如缓冲区分析等;
7. 多边形属性的增加?
多边形IPolygon接口,增加了Area、Centroid、Dimension、Envelope等属性,这样可以更方便实现面积量算、根据对象的外接矩形实现定位等功能;
8. IColor6接口的增加?
通过这个接口,更容易实现几何对象颜色和透明度的定义和设置;
9. 全新的IAnalysis6接口?
在新版本的APIs中,Skyline首次开放了IAnalysis6接口,其中包括实现淹没分析、通视分析、视域分析、剖面分析等功能的方法;
10. 从ITerrainRoute5到IPresentation6的变化?
ITerrainRoute5在新版本中升级成了IPresentation6,增加了很多属性和方法,并直接提供了输出成视频文件的方法,提供了强大的自定义PPT汇报功能;
11. ITimeSpan6和IDateTime6的结合?
利用新增加的IDateTime6和ITimeSpan6接口,可以很好地设置FLY工程中实体对象的可见周期,并能够通过Time Slider进行灵活控制;
12. 对WKT和WKB支持的增加?
用户可以通过Well-known text (WKT)来定义空间投影坐标系和空间几何对象的空间信息;也可以通过Well-known Binary (WKB)来定义空间几何对象的空间信息;
13. IShadow6的增加?
通过IShadow6,可以创建、显示、隐藏和删除三维对象的阴影效果;在展示创建好的对象阴影效果时,需要打开太阳光源和使用Time Slider进行控制;
14. 新APIs更好地支持Javascript开发?
利用新APIs进行Web开发,可以解决以前APIs中一个函数方法多个返回值的问题,这样就可以完全使用Javascript进行Skyline的B/S系统开发;