欢迎来到天天文库
浏览记录
ID:10275983
大小:87.50 KB
页数:25页
时间:2018-06-14
《worldwind学习系列十一》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、WorldWind学习系列十一:VirtualEarth插件学习 学习WorldWind有很长时间了,理论学习算是基本完成了。我体会是WW的学习主要分为两大步:WW框架体系学习和WW插件学习。学习WW插件逐步深入后,必然要首先学习Direct3D编程,这也算是我的经验之谈吧。今天VirtualEarth插件学习完成,也标志着我可以从WW理论转向WW实践啦。虽然我总结介绍的是VirtualEarth插件,但是希望网友阅读下面的内容前,最好能够先深入学习Direct3D编程、BMNG和GlobeIcon插件的底层渲染,这些都是学习VirtualEarth的基础。 VirtualEarth
2、插件包括以下几个类: VirtualEarthForm窗体类 VirtualEarthPlugin插件类,继承自Plugin(重要) VeReprojectTilesLayer渲染对象类,继承自RenderableObject(重要) VeTile瓦片对象类(真正实现大部分功能的)(重要) Projection投影变换类(重要) Search类 PushPin类 我们先看看VirtualEarthPlugin,所有的插件类必须继承自Plugin.cs,必须重写Load()和Unload()方法。这两个方法分别实现插件的加载和卸载。 Load()方法一般是实现添加菜单和添加工具按钮,跟前面
3、介绍插件都很类似的,自己开发插件时模仿着这套路写就行。 public override void Load() { try { //判断当前World为Earth(注:其他星体可通过名字判断) if (ParentApplication.WorldWindow.CurrentWorld.IsEarth) { //初始化VE插件控制窗体 m_Form = new VirtualEarthForm(ParentAppli
4、cation); m_Form.Owner = ParentApplication; //添加VE插件菜单 m_MenuItem = new MenuItem("MicroSoft VirtualEarth"); m_MenuItem.Click += new EventHandler(menuItemClicked); ParentApplication.PluginsMenu.MenuItems.Add(m_Menu
5、Item); //#if DEBUG string imgPath = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + "\Plugins\VirtualEarth\VirtualEarthPlugin.png"; //#else // _pluginDir = this.PluginDirector
6、y; // string imgPath = this.PluginDirectory + @"VirtualEarthPlugin.png"; //#endif if (File.Exists(imgPath) == false) { Utility.Log.Write(new Exception("imgPath not found " + imgPa
7、th)); } //添加工具按钮,会出现工具栏里 m_ToolbarItem = new WorldWind.WindowsControlMenuButton( "MicroSoft VirtualEarth", imgPath,
此文档下载收益归作者所有