今天原计划把Load/Unload Plugins完全弄明白,可是分析该功能的过程时发现Load/Unload Plugins没有想象的简单,而且它的实现代码中有很多重点知识点值得深入学习。所以,将该部分分两次总结。这次主要是为明天的深入学习做些铺垫,准备分两部分:World Wind Plugin基础知识、展示插件DEMO帮大家坚定信心。
World Wind Plugin基础知识
WorldWind魅力不仅是因为它是开源的三维软件,而且在于它更是一个开源的三维框架。很多朋友都想基于WorldWind搞开发,我原来也是冲着这目的来学习WorldWind,因为它是三维而且是开源的(即:免费的)。但我现在给出原因是:WorldWind具有着让你耳目一新的良好设计框架,它最大的优点就是它的框架思想,支持无限扩展插件。(关于它的架构我会系列在最后总结的,因为这是WW的一大亮点,很值得我们学习!)
扯远了,WorldWind支持动态加载插件,你需要做的只是写个插件,甚至只是一个简单的*.cs插件文件,就轻松地在三维环境下执行你的功能。
WW中主要应用了插件思想,其实现上可以分为两种:Add-on 和Plugin。
Add-on是什么意思?google翻译为“附加”。我们这样可以看待WorldWind:其核心的框架部分好比一副人的骨头架子;其所有各种功能好比“附加”到人骨头架子上的肉;其被各功能访问的数据好比人身体血管里的血液。没有血,人会成啥样?没有肉,人会成啥样??没有骨头,人又会成啥样???呵呵,想象一下,该理解什么是Add-on了吧!回到WW现实上,Add-on就是Earth、Moon等(如下图1),就是Flags of the World、Landmark等(如图2)。
图1: 图2:
“好像所有的功能都是Add-on了?”是的,Plugin可以被认为是一种Add-on,但是Plugins更强大,你可以简单地安装你所信任来源的插件,Plugins可是用C#,VB或J#写的代码,是被WorldWind在启动时加载和编译的,允许插件开发者在不修改源代码的情况下就可为WW添加新的功能特性。
如何安装?这个问题感觉是WW客户端用户该问的,对开发者有意义吗?当然啦,不知道用户需求咋搞开发呀!昨晚我还跟一网友聊,要先把WW的功能摸熟。
ADD-ON存放位置:我的在“C:\Program Files\NASA\World Wind 1.4\Add-ons”及下级文件夹下。如图:
将Add-on放到Add-ons文件夹下,如果是星体(如:地球、月亮等),放在外面一层。针对Earth的(如世界国家的国旗)放在Earth文件夹。拷贝过去后需重启WW。
Plugins安装:将开发的Plugin拷贝到“C:\Program Files\NASA\World Wind 1.4\Plugins”,然后通过Load/Unload加载进WW.如图:
注意:该处是从外面加载Plugin,还有是WW内部的Plugin。外部来的Plugin可以被Uninstall(不是Unload),内部的不可以。(后面会再详述)
插件官方下载:http://worldwindcentral.com/wiki/Add-on_Launchpad
展示插件DEMO帮大家坚定信心
请看http://www.cnblogs.com/wuhenke/archive/2009/12/11/1621459.html三楼网友留言,可能很多网友受他过激言论影响,今天我在查看资料时发现,NET版WW仍然在不断更新着,V1.4.1版修正了很多错误。请看http://sourceforge.net/projects/nasa-exp/develop .net版WW最新的更新提交是2009-12-5,更新频率还是很高的。
如果你不能上国外网,请看下面我摘录更新信息:“NASA
WorldWind ammianus committed revision 4087 to the NASA WorldWind SVN repository, changing 1 files.
2009-12-05 13:27:03 UTC by ammianus ”。即使它不更新,它里面也有很多知识值得我们学习的。
我今天做的插件Demo,功能很简单,只是帮大家建立学习WW的信息。将PluginDescendant文件夹(文件夹下包含PluginDescendant.cs)拷贝到“C:\Program Files\NASA\World Wind 1.4\Plugins”,可以加载插件啦!截图如下:
打开Load/unload对话窗口,发现里面已经有PluginDescendant插件啦!
是灰色的,选中它,点击Load按钮即可加载进去,变成绿色!
可以使用该插件啦,后面的选项框如果选中,表示下次启动时自动加载。
不好意思,上面文字打错了,是帮大家坚定信心!
参考资料:http://worldwindcentral.com/wiki/Add-on_Launchpad
参见 WW精简版插件框架:http://www.cnblogs.com/wuhenke/archive/2011/05/06/2039419.html
本系列其他部分:
WorldWind学习系列四:功能分析——Show Planet Axis、Show Position 、Show Cross Hairs功能
WorldWind学习系列三:简单功能分析——主窗体的键盘监听处理及拷贝和粘贴位置坐标功能
WorldWind学习系列三:功能分析——截屏功能和“关于”窗体分析