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

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 对象构造和注册了相应的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值