1、在 WorldWindow 启动过程中,直接读取的配置文件有三个:

一个是在程序启动前,使用静态模块配置程序的配置文件

System.setProperty("gov.nasa.worldwind.app.config.document","gov/nasa/worldwindx/applications/worldwindow/config/worldwindow.worldwind.xml");

一个是私有静态成员变量设置的与应用程序有关的配置文件

private static final String APP_CONFIGURATION = "gov/nasa/worldwindx/applications/worldwindow/config/AppConfiguration.xml";

一个是 Configuration 类中私有静态成员变量设置的配置文件

private static final String CONFIG_WW_DOCUMENT_NAME = "config/worldwind.xml";

2、在入口 main 函数调用前,程序会调用 Configuration 的 isWindowsOS 方法判断系统的类型,此时加载 Configuration 类,进而调用其构造函数,在 Configuration 的构造函数中,会读取之前设置的配置文件名,然后将配置文件 worldwindow.worldwind.xml 和 worldwind.xml 加入到配置文件列表中,最后逐一读取配置文件

3、在 worldwindow.worldwind.xml 文件中,主要配置了程序启动时的初始图层

在 InitialLayerConfiguration.xml 文件中配置了各个图层的标题,类型,相关的其他配置文件和状态

其中与影像调度、地型渲染相关的就是在 Blue Marble 图层,也就是 BMNGWMSLayer.xml 文件中配置的

4、在 worldwind.xml 文件中,配置了 WorldWind 程序的地型配置文件以及与场景数据有关的对象的类型

在构造 WWPanelImpl 时,会构造 Model 类对象,在这里是 BasicModel 对象

在构造 BasicModel 时,会构造 Globe 类对象,在这里是 Earth 对象

在构造 Earth 时,会调用父类 EllipsoidalGlobe 的 makeElevationModel 方法构造 ElevationModel 类对象

在 makeElevationModel 方法中,首先取到地型配置文件,然后使用工厂模式,调用 BasicFactory 的 create 方法构造 ElevationModel 类对象

在 BasicFactory 的 create 方法中,会构造 Factory 类对象,在这里是 BasicElevationModelFactory 类对象

依次调用了 createFromConfigSource 、doCreateFromElement 方法通过读取地型配置文件 EarthElevationModelAsBil16.xml 构造 ElevationModel 对象,最后调用 createCompoundModel 方法构造了 CompoundElevationModel 类对象(),调用 createNonCompoundModel 方法构造了 WMSBasicElevationModel 对象()

在构造 WMSBasicElevationModel 时,通过 wmsGetParamsFromDocument 方法读取了配置参数,然后调用了父类 BasicElevationModel 的构造函数,使用读取的配置参数构造了 LevelSet 类对象,此时已读取到第 0 层的经纬度差为20°,所以 WorldWind 第 0 层的地型切分为 9 X 18()

5、在 AppConfiguration.xml 文件中,配置了与应用程序有关的一些对象的类型

在进入 main 函数后,会调用 Controller 对象的 start 方法,继而构造了 AppConfiguration 对象,然后调用了该对象的 configure 方法,然后依次调用 configureFeatures、registerConfiguration 方法读取了配置文件,然后调用了 controller 中的 register 对象构造和注册了相应的对象。

worldwind java加载3ds_WorldWind Java 版学习:3、配置文件的读取相关推荐

  1. java加载js_[Java教程]javascript如何动态加载js文件

    [Java教程]javascript如何动态加载js文件 0 2016-01-01 00:00:52 javascript如何动态加载js文件: 有时候我们需要根据需要动态加载js文件,本章节就简单介 ...

  2. Java编程思想第四版学习总结

    Java编程思想第四版学习总结 文章目录 Java编程思想第四版学习总结 第 1 章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重 ...

  3. java加载pmml模型文件报错_PMML总结与思考PMML模型生成和加载示例

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

  4. java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...

    Java自定义的类加载器,java自定义加载,在java中类加载器有以 在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Ex ...

  5. java加载一个来自项目之外的java文件,执行其main方法的一种实现方式

    目录 写在前面 代码实现思路 代码具体实现 写在前面 近期有一个小想法,就是我一个springboot项目,想做一个给用户可以编写java代码并且直接在页面运行的功能. 难点就在于,如何将java文本 ...

  6. java加载机制_详解Java类加载机制

    一:ClassLoader 从JVM结构图中可以看到,类加载器的作用是将Java类文件加载到Java虚拟机. HotSpot JVM结构,图片来自Java Garbage Collection Bas ...

  7. java加载图片的问题

    最近一直在找如何把图片加载到java中,试了好多网上说的,结果都出了一堆的错.早上起来继续调试,终于弄好了,原来是路径的问题. 我就把部分代码放到这里: setResizable(false);    ...

  8. java加载tensorflow训练的PB模型记录

    java加载tensorflow训练的PB模型记录 python训练 1. 模型的输入输出定义 2. 训练时保存模型的方法 java加载模型 1.maven依赖 2. Java代码实例 tensor注 ...

  9. java加载classpath_关于classpath:查找从哪里加载java类

    有人知道如何编程地找出Java类加载器从何处加载该类吗? 我经常在大型项目中工作,在这些项目中,类路径非常长,手动搜索实际上不是一个选项.我最近遇到了一个问题,类加载器加载了一个不正确的类版本,因为它 ...

最新文章

  1. PyTorch 重磅更新,不只是支持 Windows
  2. Spark- Checkpoint原理剖析
  3. IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository
  4. C#重写Equals方法步骤
  5. JS向后台传递json数组对象
  6. 【今日CV 计算机视觉论文速览 第137期】Fri, 28 Jun 2019
  7. 树莓派爱好者基地64位系统1.0正式版说明及介绍
  8. macOS High Sierra 10.13.4 安装n2n
  9. 电话号码字母组合java代码回溯法力扣
  10. 相册里的WEB3 Festivals香港记忆
  11. 小程序发布上线流程_小程序怎么上线?
  12. 基于JAVA的KTV交易_Java 基于sshktv预定管理系统
  13. 阿里架构师:双十一「大促」,多亏了 Node.js
  14. JavaScript——jQuery速查手册
  15. day10-阶段测评
  16. 十种进程注入技术介绍:常见注入技术及趋势调查
  17. Java 数组(三)二维数组
  18. thinkphp5+阿里短信发送验证码
  19. python图像识别算法 识别数量_使用深度学习(CNN)算法进行图像识别工作时,有哪些data augmentation 的奇技淫巧?...
  20. Wannafly挑战赛26 题解

热门文章

  1. Java面试必问的MySQL锁与事务隔离级别
  2. 把对讲门铃(控制底楼铁门)接入米家服务器
  3. JS选择日期控件。当前日期以后的日期不能选择
  4. 带计算机的笔记本图片,笔记本电脑怎么截图
  5. PHP 在linux中 mkdir 创建文件无法赋予777权限 使用 chmod
  6. html两个视口怎么控制,[译] 关于两种视口(viewport)的故事:其一
  7. 走势终完美 --执子之手
  8. 《自动控制原理》个人笔记
  9. 金三银四,我猜你需要这套网络安全工程师面试题合集【全网首发】
  10. 7种方法让你的图片处理更具创意