三维数字地球发布平台探索--几款开源软件介绍
已有 3288 次阅读 2009-03-11 14:40 探索完平台内容后,本来打算介绍数据类型和数据处理方面,不过决定将相关的开源软件介绍和基于开源软件进行相关开发的要点进行说明。下一章将继续数据的探索。 1.WorldWind 知名度很高,介绍也很全。链接在这里 目前分为.net版本和java版本。 开发语言:c#.java 渲染方式:DirectX,Opengl(Java) WorldWind的优势 WorldWind的软件架构应该来说还是很不错的,很优秀。开放的设计,使得Worldwind的扩展非常方便和快捷,目前已有上百种各式各样的插件,很多插件都很有意思和实用。使用.net和java,研究它的工作原理变的相对容易。 相对来说.net版本的容易深入些。java版的严格面向对象方法的使用,使得java版的精简,但深入起来不如.net容易。 以前交流的时候,我经常会推荐WorldWind。很好很强大。 这里以.net版进行说明。 下面的缺陷不能掩盖WorldWind的光彩。 WorldWind的缺陷 总体架构设计没太大问题。主要在内部的几点 1.速度慢。几个原因导致worldwind在实际使用中存在速度慢的问题. a)影像数据组织混乱。由于worldwind在系统设计时面向的就是各个行业各种数据的集成。因此他设计时的兼容,导致同一地区数据获取重复(占内存资源)、不同数据获取服务器速度不一致影响。 b)c#异常。捕获异常占用了worldwind大部分时间。导致显示、数据获取时严重的停顿。 c)SRTM的动态生成。如果你想像取图工具一样把SRTM下载下来,那简直不可能。 d)QueueDownload实际运作时,一旦出现异常和错误,将导致数据下载停顿。需要重新调整视角。而貌似多线程的下载,实际效果并不明显。这就导致显示出现停顿。 2.三维支持能力稍差。 尤其是在模型的支持方面,虽然有个ModelFeature类来进行三维显示。这里有问题: a)不支持LOD,虽然.x文件设计时能支持,不过显然ModelFeature不支持。 b)模型显示漂移。当你放大到最详细时,会发现模型左右上下晃动。 c)模型未按tile形式组织。Cache、内存、释放等方式都存在问题。 3.矢量支持 worldwind的矢量处理显示类比较混乱。效果也不是太好。 4.KML支持 通过一个插件能够支持KML,不过想达到googleearth的添加等功能,还需要做很多工作。 5.内存泄露 按理,c#不会存在内存泄露。出现问题的地方是QuadTile.Dispose,D3D的纹理没有进行清除。使得资源占用越来越大,速度越来越慢 6.DEM显示缺陷 每个Tile之间未作平滑处理,经常会出现深坑、断档。 7.影像黑边 大多数基于worldwind的软件,可以看到影像边缘很明显的黑边、锯齿。究其原因,是Jpg压缩,出现黑色渗透交融导致黑边锯齿。 两种解决办法,a)边缘地带采用png。b)严格的数据组织。 WorldWind的国内应用 可以说,国内很多高手都解决了上述的问题,并且发扬WorldWind的优势。典型代表EVGlobe等等。很不容易,从某种角度上来说,确实是自主研发。 2.OSSIMPlanet 链接: 开发语言:c++ 渲染方式:opengl 相比WorldWind而言,名气并太大。虽然推荐时,我一般不推荐它,但他确实是另外一个很强大的开源数字地球。我不推荐它的原因是: 1)基于c++。光研究了解它就要花好多成本,这并不太适合国内公司和单位。门槛高,时间长,见效慢。 2)相关资料少。它涉及到太多的大型开源库,而国内翻译的资料相对少很多。不像WorldWind,拿套源代码就能开干。 但我很喜欢它,作为技术人员来说,我推荐大家去看。很多乐趣和知识在里面。很优雅,很内涵,值得收藏。 OSSIMPlanet优势 1)基于OSG(Open Scene Graph),一个很庞大很工业很成熟的开源软件。这点很吸引我。国内很多公司采用,如西安赛能。地址: 仅OSG就能列出非常多的文章,使用OSG的好处不胜列举。要描述清楚需要花很多篇幅。这里我们就带过。 2)平滑快速高效的显示效果。 3)作为平台来说,他涵盖的内容很全,比如你可以用OSG做出媲美TerraBuilder的软件。用GDAL+OSG支持绝大多数矢量、影像、模型文件。 4)完美的模型支持。不用说LOD,连整个城市装入一点问题没有。在很早以前,有个叫做VTP的虚拟城市开源软件。 5)专业化,确实很专业。 6)脚本支持。通过采用OSG的osgInterper(这部分实在是太美妙了),能快速绑定Python,Lua,JavaScript,Ruby。 7)想了解更多的优势,还是自己去下个来看吧。 OSSIMPlanet缺陷 从技术角度来讲,OSSIMPlanet的缺陷几乎没有。不过,上面说过了,想基于它形成自己的产品和解决方案,要花很多投入和资金。因此它的硬伤就是,不适合商业化。 OSSIMPlanet国内应用 几年前,我和一个开发工作室聊过。他们采用的是OSG以及基于OSG开发的数字地球,参考了ossimplanet但未直接使用。因此,国内应用,没有。 这个工作室产品名为VirtualTerran。后来貌似变成了mapok(不确定,知道的请联系我) 3.Gps3D 地址: 这款开源软件应该来说更侧重于gps功能。当然也包含了三维地球的部分功能。 开发语言:c++ 渲染方式:Opengl 这个开源软件很小巧也很实用。作为技术参考来说,非常不错。可以参考的部分是经纬度转三维坐标,WMS、WFS的远程调用以及Tile的三维显示。 缺点就不多说,毕竟方向不一致,不能以平台来要求它。 4.Earth3D 地址: 这款开源软件适合初步研究三维地球。它显示了三维地球,并显示了国界线。 开发语言:c++ 渲染方式:Opengl 作为初步研究,还是不错的。毕竟起点的第一步就是如何显示三维地球并贴上MODIS数据。它还能显示国界线。很不错的参考。 5.其他更多的开源软件 目前为止,我发现的开源软件就是以上4种,如果你知道更多,请告诉我。 总结: 1.WorldWind最成熟,最适合商业化. 2.技术最优OSSIMPlanet