World Wind.net SDK,现状和问题

春节前到现在,一直在跟踪World Wind项目的SVN,对其动态以及源代码研究的基本算透彻了。也做了一些研究工作,主要的目的是提供一个三维Virtual Globe的SDK,可以用于一些具体应用。

从World Wind的SVN上看,1.5版本有个初始的设计,是划分了内核和应用,可以作为SDK使用的,但个人估计这个设计的1.5也许看不到了。Java版本开发到目前为止应该至少1年了,SVN上有一个去年底的代码,看设计,比.net版本要好很多,但也不是最理想,例如矢量、模型支持的空间索引等在当时的代码里也没有看到踪迹。

Virtual Globe要成为"大众的GIS\",一方面和GE、Virtual Earth一样,需要在易用性、显示效果方面做足功夫,一方面还需要有一个与传统GIS沟通的桥梁,例如数据、例如可扩展性(分析功能)、例如互操作和可嵌入一般应用等等。

关于数据,似乎越来越不成为问题,数据互操作这么多年的炒作和研究,目前的主流系统,数据转换和交换已不成为问题,甚至可以和ArcGIS 9.2一样,在原格式的基础上使用、修改。还有一个很重要的方面,就是KML,KML已经提交OGC,也许不久就是OGC规范了,这也验证了在《3s新闻周刊》前面几期中我说过的,KML也许会成为空间数据的一个事实标准,而对于空间信息领域,最缺的不是规范和标准,而是事实标准,会是KML吗?

回到主题,目前个人在World Wind.net上的工作,一方面通过精简代码,重新封装了可以用于其他WinForm程序的控件;一方面对效率做了一些改进,包括mesh、 texture等的内存缓存,线程池的应用等。但这些工作都属于外科手术式的工作,限制诸多。World Wind程序25万行的代码,经过精简、去掉已经无用和不需要的,目前我工作的版本近15万行代码,完全是面向应用和显示的,要改造为一个合格的SDK,或者要做深入的改造优化,困难重重,从软件开发角度,这个版本也许到抛弃的时候了。

还有就是,WinForm目前似乎已经不可以在浏览器中和ActiveX一样使用,.net 1.1下是可以的,谁知道这个问题吗?这样,目前.net版本的WW也没有办法和Web程序集成。

如果自己重起炉灶,估计需要半年以上的专注时间,目前看来几乎没有可能,从应用角度,也许World Wind Java是个不错的选择。也许。至少,World Wind Java面向接口的设计可以很容易的替换掉一些部分。另外,也可以在浏览器中使用。

这些年一路走来,都是微软技术,虽然懂一点Python什么,但都是皮毛,要使用World Wind Java,意味着需要好好学学Java。年前和一个朋友聊天,说经常有学Java的冲动。也许还是必要的,毕竟不会很费力,只是时间问题。

posted on 2007-05-09 14:17 马维峰 阅读(1939) 评论(9)  编辑 收藏 所属分类: [02] GIS

评论

#1楼  2007-05-10 13:42 合金枪头      

WorldWind代码实在已经非常臃肿,以致于它几乎是同类软件中效率最低的一个,不如GE,更不如TerraVision。对于1.4版的代码,其实有很多优化工作可以做,特别是初始化和UI更新这两个部分,我把这个问题作为一个improvement bug提交给了WorldWind Issues(WW-798),但是他们建议我有时间的话就帮他们改一下,然后提交到svn上去,天啊~我哪有那个时间...

我现在就把希望寄托在1.5上了,并且未来如果有时间的话可以考虑帮他们把ww向mono移植;)   回复  引用  查看    

#2楼 [楼主] 2007-05-10 13:56 马维峰      

@合金枪头
WorldWind Issues(WW-798)看了,第一个问题,初始化时是使用同步方式下载地图列表等数据,GE等是使用异步方式,会导致启动缓慢。
第二个问题,目前的数据加载其实也是View改变了触发的,只不过在后台线程判断。三维系统一般都是使用一个后台线程加载数据,如果是通过主线程触发Update,那么这个Update是使用同一个线程还是另外的?同一个会导致延迟,另外的会导致线程的不断创建和销毁,或者使用线程池。   回复  引用  查看    

#3楼  2007-05-10 14:05 合金枪头      

@马维峰
这么快呀;-o

我在跟踪它更新View的代码的时候,有时会发现我改变了View之后,要过很久(喝杯水,上个厕所再回来),才走到QuadTile的Update中去,不知道老马有没有遇到过这个问题。所以我觉得WW的View更新还可以更快   回复  引用  查看    

#4楼  2007-05-10 22:10 liujun      

呵呵,两年前我就有在WW上写了点东西,不过我觉得在这种大众化的东西上面投入太多精力,绝对是需要有钱有闲的。弄出些成果固然好,可是能拿来管饭吗?还不如象51ditu这样耕好自己的地,产点粮食的好。   回复  引用  查看    

#5楼 [楼主] 2007-05-10 23:32 马维峰      

@合金枪头
更新跟踪好像不好搞,因为所有的Update都不是主线程,更新不更新View都会Update。
程序缺省应该是每秒钟跑4、5次,当然如果跑慢了,就跑不到这个数量。这样的缺点是CPU占有率有点高,例如更新了位置(View),GE在我的机器上通常就30左右的CPU,WW经过我优化后还要60左右,原来的版本要80-90。
所以,WW优化的空间确实很大。
  回复  引用  查看    

#6楼 [楼主] 2007-05-10 23:34 马维峰      

刚看了WW Java的一个演示,看演示,效率和WW的最初版本,大概我知道是04年左右吧,在一个朋友家安装的,效率差不多。
所以,Google也许压根不会着急WW吧,呵呵。
回头有时间写点相关的东西。   回复  引用  查看    

#7楼  2007-05-13 23:03 合金枪头      

@马维峰
真希望你能把你的优化工作提交到WW的svn里面去,很有价值的贡献啊   回复  引用  查看    

#8楼  2007-05-14 02:23 杨特 [未注册用户]

123456789
  回复  引用    

#9楼  2007-05-16 21:32 电子展览网 [未注册用户]

学习ing...   回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
博客园首页

新闻频道

社区

小组

博问

网摘

闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
成果网帮您增加网站收入


相关链接:
 


导航

公告

欢迎访问:

联系方式:
  • Email: mweifeng#gmail.com
  • MSN: mimicico#hotmail.com

订阅:
  • 订阅到抓虾

统计

与我联系

搜索

 

常用链接

留言簿(89)

随笔分类(436)

随笔档案(347)

文章分类(34)

文章档案(24)

GIS站点

个人链接

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜