吐槽Skyline的编程

吐槽Skyline的编程和操作

   对于一个不是GIS毕业的孩子,Skyline 从5 到6编程越来越让我吃了。我想了下,根本原因是它越来越把它看做一个地理信息系统,不断引入地理方面的概念,同时不提供方便的方法进行格式转换。
 
    1)首先要吐槽的IGeometry。
IGeometry是地理位置信息,可以是点,线,面等。Skyline提供的几个函数,包括CreateGeometryFromWKB,CreateGeometryFromWKT。那么什么是WKB和WKT呢,这个需要自己查资料,最后发现是OGC的一种通用格式。且不说构建这种格式需要编程了解什么是WKB或者WKT,单单构建WKT你都需要逐字去检查是否拼写错误。好吧,你或许说,自己可以写个处理函数进行转换。但是,Skyline创建任何三维对象都用一个IGeometry,到底这个IGeometry可以是什么呢?比如多边形按照理解可以理解为多线段,从而l提供MultiLine。也可以理解为多点的连接,从而提供MultiPoint。当然也可以理解为一个多边形,从而提供Polygon。但是Skyline并不理解前面两种格式!你让我情何以堪。你不会怪我思想不单纯吧。
    
    2)参数object化
     Object是什么,物体!你能理解我的Object指的是什么?好女人味哦!看这个函数
ITerrain3DPolygon65 Create3DPolygon(    

       IGeometry     pIGeometry,

       [double ObjectHeight = 20],

       [object LineColor = 0xFF00FF00],

       [object FillColor = 0xFF646464],

       [AltitudeTypeCode AltitudeType = AltitudeTypeCode.ATC_TERRAIN_RELATIVE],

       [string GroupID = ““],

       [string Description = ""])
这里的LineColor和FillColor都是object类型。如果不看帮助文档,C#的智能提示会告诉你 LineColor是Object对象。好吧,那我就猜测,Color可以用RGB表示,也可以用HSB之类的表示吧。排除掉除RGB的颜色格式,我作为一般人还真想不到为啥用类型Object。费劲心机打开帮助文档,原来这是一个重载函数,object可以是IColor对象,也可以是number,也可以是HTML的字符串颜色格式。难道你不觉得object是一个炸弹么!
   
 3)不支持高亮
  无论哪个版本,Skyline都不支持高亮对象!这个特性让我个程序员成为众矢之的。所以凭借丰富的想象力,发明了把对象放大,查询属性构建立方体的包围盒,启动编辑状态,改变对象属性等等损招!一听到高亮,我分分钟想剖腹自杀!

4)使用TerrainExplorer Pro版本,在场景中选择一个对象,很难映射到图层树中去
这个 缺点导致你不得不一个个图层去查找对象,这对于编辑的时候实在是让人崩溃
5)矢量数据图层中对象选择后很难查看属性
这个也是很致命的,如果一个矢量图层被表示未Model,选择一个Model后要想查看属性,那么就会提示你不能查看,除非转换回去。这明显是矢量图层设计架构出现错误。
6)组对象必须通过矢量的方式才能附带属性
举例来说,你有一大堆模型,导入到平台中后发现模型是没有附件属性的。好像只能把这些模型转换为shp图层,然后对shp添加字段(也可以类似的采用Excel等格式)。这个缺点是很明显的,就是要么提前做好数据,否则后面再做,死人。
7)保存工程
Skyline的保存是很恶心的。为啥,因为你编辑一大堆后,发现错了一点,比如不小心删了个对象。这时候你要么放弃编辑的状态,要么保存后再把最后的错误进行修复。skyline的弱保存功能,使得对数据的编辑是让人抓狂的。
8)网络搭建能力弱
        首先是配套的TerraGate要收费,但TerraGate基本只用来发布地形服务。三维模型的需要IIS,矢量shp文件不能网络下载(需要搭建WFS之类的服务)。所以要完整的搭建网络版还是需要蛮多知识的。
9)启动过程慢
 哎呀,打开TerrainExplorer的首页越来越慢了...

猜你喜欢

转载自blog.csdn.net/htsitr2/article/details/40106827