地形访问器类TerrainAccessor

地形访问器类TerrainAccessor提供了对地形(高程)Terrain (elevation)访问的各种接口interface,是NltTerrainAccessor类的基类。类TerrainAccessor和NltTerrainAccessor封装了通过行列,或者经纬度值读取Cachd\Earth\SRTM对应层次BIL文件的高程信息的函数GetElevationAt等直接返回该点的高度值。该类类图如下。

基类TerrainAccessor提供的主要处理方法简要描述如下:

protected string m_name; //地形模型名称

protected double m_north; //地形北部边界

protected double m_south; //地形南部边界

protected double m_east; //地形东部边界

protected double m_west; //地形西部边界

public abstract float GetElevationAt(double latitude, double longitude, double targetSamplesPerDegree);抽象函数通过给定的经度、纬度和在该位置引用帧的分辨率精度来来获取浮点型高程数值。如果磁盘上没有可用的瓦片则返回0。派生类必须实现该函数。

public virtual float GetElevationAt(double latitude, double longitude) 虚函数通过给定的经度和纬度来获取浮点型高程数值。如果磁盘上没有可用的瓦片则返回0。内部实际是调用了上面的抽象函数。派生类可以根据自己的需要重载该函数。

public virtual TerrainTile GetElevationArray(double north, double south, double west, double east, int samples)虚函数通过给定的地形区域的边界包围盒和分辨率来获取高程数组。返回代表指定地形高程的瓦片。派生类可以根据自己的需要重载该函数。

Nlt地形访问器类NltTerrainAccessor

派生类NltTerrainAccessor用来读取NLT存储在BIL文件中的地形/高程数据。

其中,NLT是NASA Learning Technologies的首字母缩写。提供的主要字段、属性和方法简要描述如下:

public static int CacheSize = 100;//缓冲区大小

protected TerrainTileService m_terrainTileService; //地形瓦片服务

protected WmsImageStore m_wmsElevationSet; //WMS影像存储

protected TerrainAccessor[] m_higherResolutionSubsets; //地形访问器

protected Hashtable m_tileCache = new Hashtable();//瓦片缓冲的哈希表

public override float GetElevationAt(double latitude, double longitude, double targetSamplesPerDegree)

public override float GetElevationAt(double latitude, double longitude)

public override TerrainTile GetElevationArray(double north, double south, double west, double east,int samples)

以上三个成员方法重载父类的同名方法,功能不再赘述,具体请查阅代码。

派生类NltTerrainAccessor内嵌的类public class TerrainTileCacheEntry代表地形瓦片缓冲条目。

WorldWind源码剖析系列:地形访问器类TerrainAccessor的更多相关文章

  1. WorldWind源码剖析系列:影像图层类ImageLayer

    影像图层类ImageLayer 影像图层类ImageLayer将单张影像作为纹理映射到星球表面上去.源影像必须是平面笛卡尔坐标系.该类的类图如下. 影像图层类ImageLayer提供的主要字段.属性和 ...

  2. WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore

    影像存储类ImageStore 影像存储类ImageStore提供了计算本地影像路径和远程影像影像URL访问的各种接口,是WmsImageStore类和NltImageStore类的基类.当划分完层次 ...

  3. WorldWind源码剖析系列:表面影像类SurfaceImage

    表面影像类SurfaceImage描述星球类(如地球)表面纹理影像.该类的类图如下. 表面影像类SurfaceImage包含的主要的字段.属性和方法如下: string m_ImageFilePath ...

  4. WorldWind源码剖析系列:表面瓦片类SurfaceTile

    表面瓦片类SurfaceTile描述星球类(如地球)表面纹理影像的瓦片模型.其类图如下. 表面瓦片类SurfaceTile包含的主要的字段.属性和方法如下: int m_Level;//该瓦片所属金字 ...

  5. WorldWind源码剖析系列:下载请求类DownloadRequest

    下载请求类DownloadRequest是各种下载请求的抽象基类,先派生出网络下载请求类WebDownloadRequest,再派生出地理空间下载请求类GeoSpatialDownloadReques ...

  6. WorldWind源码剖析系列:四叉树瓦片类QuadTile

    四叉树瓦片类QuadTile提供了对影像和地形数据的四叉树访问模型.该类的类图如下. 四叉树瓦片类QuadTile提供的主要字段.属性和方法简要描述如下: public QuadTileSet Qua ...

  7. WorldWind源码剖析系列:网络下载类WebDownload

    网络下载类WebDownload封装了对请求的瓦片进行网络下载的相关操作.该类使用了两个委托类型和一个枚举类型. 该类的类图如下. 网络下载类WebDownload各个字段和属性的含义说明如下: st ...

  8. WorldWind源码剖析系列:绘制参数类DrawArgs

    绘制参数类DrawArgs主要对绘制时需要的对象如:设备对象Microsoft.DirectX.Direct3D.Device.Microsoft.DirectX.Direct3D.Font字体对象. ...

  9. WorldWind源码剖析系列:数学引擎类MathEngine

    PluginSDK中的MathEngine类是密封类.不可继承,主要完成通用的数学计算功能.由于按平面展开层层划分,所以在WW里用到一个row,col的概念,类MathEngine封装了从行/列到经/ ...

  10. WorldWind源码剖析系列:代理助手类ProxyHelper

    代理助手类ProxyHelper通过平台调用的互操作技术封送了若干Win32结构体和函数.该类类图如下. 提供的主要处理方法基本上都是静态函数,简要描述如下: 内嵌类型WINHTTP_AUTOPROX ...

随机推荐

  1. 你真的了解 Unicode 和 UTF-8 吗?

    目录 引言 ASCII 码 什么是 ASCII 码? ASCII 码都包含哪些字符? ASCII 码的局限在哪里? Unicode 什么是 Unicode ? Unicode 的实现方式有几种? Un ...

  2. 查找具有特定属性的元素 (XPath-LINQ to XML)

    XElement doc = XElement.Parse( @"<Root> <Child1>1</Child1> <Child2 Select= ...

  3. event.stopPropagation与event.preventDefault的区别

    1.event.stopPropagation 停止事件的传播,阻止它被分配到其它Dom节点.但是不能阻止同一Dom节点上的其它事件句柄被调用. 注:不同Dom节点的事件必须是一致的.如父节点和子节点 ...

  4. js 四种调用模式和this的关系总结

    更新: 这篇又简单又明了啊喂 首先看这一篇, 很简单很清楚了,http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascri ...

  5. php添加购物车

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 原生JSON解析

    原生JSON解析 JSONObject:JSON数据封装对象JSONArray:JSON数据封装数组 布局: <?xml version="1.0" encoding=&qu ...

  7. onlyoffice新版5.1.2版解决中文汉字输入重复等问题

    一个星期前新版更新,从5.07到了5.1.2.9.所以我的网盘中的镜像也做了相应的更新. 原来说的几个缺点,已经修改了几个,比如chrome浏览器和opera浏览器中,输入汉字,然后输入符号的时候,会 ...

  8. OpenCV 图形变换

    1.图片缩小 matScale=np.float32([[0.5,0,0],[0,0.5,0]]) dst=cv2.warpAffine(img,matScale,(int(height/2),int ...

  9. [Android] Activity间切换,传递数据

    前面照着android系统的裁剪图片的功能自己写了一个相似的工具.功能是大体上实现了,但留下了一个调用的问题:如何从我的程序调用这个裁剪工具,并且获得裁剪后的图片呢? 其实这个也很简单了,就是inte ...

  10. Supervisor 管理进程,Cloud Insight 监控进程,完美!

    Supervisor 是由 Python 语言编写.基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等. Cloud Insight 是一款次世代 ...