zoukankan      html  css  js  c++  java
  • WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore

    影像存储类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) 重载父类同名虚方法,具体实现请查阅源码

  • 相关阅读:
    mysql 表映射为java bean 手动生成。
    MySQL 存储修改
    jdk 8 日期处理。
    jsp jstl quote symbol expected
    spring boot 接口用例测试
    spring boot js 文件引用 单引问题。
    spring boot 自定义视图路径
    spring 事务回滚。
    Eclipse svn 项目 星号
    Codeforces Round #277.5 (Div. 2)-B. BerSU Ball
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/4556747.html
Copyright © 2011-2022 走看看