博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore...
阅读量:6273 次
发布时间:2019-06-22

本文共 2432 字,大约阅读时间需要 8 分钟。

影像存储类ImageStore

影像存储类ImageStore提供了计算本地影像路径和远程影像影像URL访问的各种接口,是WmsImageStore类和NltImageStore类的基类。当划分完层次的网格,填充完网格的坐标信息后,将先调用LoadFile()函数,若返回NULL,则先下载后渲染,如果非NULL则以返回的Texture直接进行渲染,具体如下:QuadTileSet.ImageStores[i].LoadFile(this),实际调用的是lmageStore.cs文件的LoadFile(QuadTile qt)先通过stringfilePath=GetLocalPath(qt)得到本地该影像数据应该保存的路径,找到该路径和文件就加载。该类的类图如下。

 

影像存储类基类ImageStore提供的主要字段、属性和方法简要描述如下:

protected string     m_dataDirectory;//影像数据目录

protected double m_levelZeroTileSizeDegrees = 36; //金字塔影像的零级瓦片大小度数

protected int m_levelCount = 1; //细节影像层级数

protected string m_imageFileExtension; //源影像文件扩展名

protected string m_cacheDirectory; //本图层影像数据缓冲子目录

protected string m_duplicateTexturePath; //复制纹理路径

protected string m_serverlogo; //影像数据服务器Logo

public virtual bool IsDownloadableLayer//是否是可下载的图层

虚方法public virtual string GetLocalPath(QuadTile qt)先根据所要请求的四叉树瓦片qt中所包含的瓦片层级、行号、列号和源影像文件扩展名m_imageFileExtension构建相对路径,然后,判断如果影像数据目录m_dataDirectory不为空,则将其和相对路径连接起来构建绝对路径并返回;如影像数据目录为空,则判断影像数据缓冲子目录m_ cacheDirectory为空,返回由缓冲子目录和相对目录构建的绝对路径;然后用有效扩展名字符串const string ValidExtensions = ".bmp.dds.dib.hdr.jpg.jpeg.pfm.png.ppm.tga.gif.tif";来验证缓冲子目录下的文件是否为所支持的有效文件,如果是则返回其路径。

虚方法protected virtual string GetDownloadUrl(QuadTile qt) 根据所要请求的四叉树瓦片qt的相关信息返回其URL字符串。需要被子类重载,以控制实现影像是被如何下载的。

虚方法public virtual void DeleteLocalCopy(QuadTile qt)删除本地缓冲的瓦片拷贝。

虚方法protected virtual void ConvertImage(Texture texture, string filePath)将影像转换为DDS格式的压缩纹理文件。

方法public Texture LoadFile(QuadTile qt)载入所要请求的四叉树瓦片qt所对应的影像,并返回纹理对象。

方法void QueueDownload(QuadTile qt, string filePath)根据所要请求的四叉树瓦片qt及其所在的绝对路径,将这一请求转换为GeoSpatialDownloadRequest请求对象,并将该请求对象加入到下载队列中。

Nlt影像存储类NltImageStore

Nlt影像存储类类NltImageStore用来读取NLT风格存储在BIL文件中的地形/高程数据。 其中,NLT是NASA Learning Technologies的首字母缩写。

string m_dataSetName;//数据集名称

string m_serverUri;//请求服务的URL字符串

public override bool IsDownloadableLayer属性重载父类同名属性

构造函数public NltImageStore(string dataSetName,string serverUri)仅仅完成字段初始化

protected override string GetDownloadUrl(QuadTile qt) 重载父类同名虚方法,具体实现请查阅源码

WMS影像存储类WmsImageStore

WMS影像存储类WmsImageStore用来获取遵循OGC规范的WMS服务。其提供的主要字段、属性和方法简要描述如下:

string m_serverGetMapUrl;//描述WMS服务的URL字符串

string m_wmsLayerName; //WMS服务的图层名称

string m_wmsLayerStyle; //WMS服务的图层风格

string m_imageFormat; //WMS服务的图层影像格式

string m_version; //WMS服务的版本号

int  m_textureSizePixels = 512; //WMS服务的影像纹理大小,用所含像素数衡量

public override bool IsDownloadableLayer属性重载父类同名属性

protected override string GetDownloadUrl(WorldWind.Renderable.QuadTile qt) 重载父类同名虚方法,具体实现请查阅源码

转载地址:http://mfgpa.baihongyu.com/

你可能感兴趣的文章
CheckBox:屏蔽setChecked方法对OnCheckedChangeListener的影
查看>>
java线程池
查看>>
UI面试内容
查看>>
Linux之RPM详解
查看>>
Windows Azure 常见问题及测试题
查看>>
android-genymotion模拟器使用
查看>>
phpstudy2018 windows 下搭建https 环境
查看>>
使用guava来进行优雅的函数式编程
查看>>
C++ - 判断文件夹(folder)是否存在(exist)
查看>>
小程序-修改多级数据
查看>>
不管10天20天这都是个悲剧何必呢
查看>>
建立简单的FTP服务器
查看>>
OWA登录页面显示为英文而不是中文
查看>>
711B - 人性的弱点
查看>>
PHP使用Memached实现Session储存
查看>>
IDEA debug调试技巧
查看>>
非常好的Python学习资源收集整理
查看>>
java 图片等比压缩
查看>>
Oracle 创建普通用户,并赋予权限
查看>>
我的友情链接
查看>>