吐槽Skyline的编程

吐槽Skyline的编程和操作

  【新注2019年7月28日】:看了很多的二次开发文档,无论是Skyline还是arcgis,抑或是监控等行业的API,都有一个非常严重的问题,就是API的可读,但无法串联成线。首先这些平台的API存在“青黄不接”,即要么太过简单,要么太过原始。所提供的API仅限如图层控制这么简单功能,个人主观能动性,尤其是参数配置、缓存管理等方面做的很差,编程人员不得不规避调用API中所导致的相关问题。参数的设置非常不合理,有些太过底层,传入的对象不能识别类型和类别。接口泛滥,无法将实体与接口对应起来。这应该也是开源产品做的比较优秀的地方。

【原文】

   对于一个不是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的首页越来越慢了...

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值