1、1写在前面虽说是技术手册,但是没有源码的研究就算是一个教程吧。由于本人能力有限,文章中有很多不当之处,请各位原谅。Bigheader 联系:2worldwind 技术手册目录:1. WorldWind 软件架构 1.1WW 功能介绍1.2WW 与 XML1.3Client 与 Server1.3.1 WW 使用链接1.3.2 本地缓存路径1.3.3 本地功能配置1.3.4 http 请求与 asp1.3.5 WMS、WFS2. WorldWind 金字塔体系2.1瓦片金字塔详解及其对应公式2.1.1 NASA World Wind Tile Structure 2.1.2 NASA World
2、 Wind Map Tile System 2.2瓦片请求调度策略 2.2.1 当前显示请求及其显示(客户端)2.2.2 目标瓦片快速搜索算法2.2.3 瓦片数据的请求预测(服务器)2.3 可视化的地球空间数学模型2.3.1 地球三维 LOD 模型3. Geospatial image processing 3.1 步骤:(准备知识:LOTD:0 层瓦片大小;TileSize: ) 3.2 NLT Landsat 处理技术范例 3.3 dstile howto34. Creat a new world 4.1World Wind 本地文件说明4.1.1. Worlds4.1.2. 在安装目录下
3、4.2 创建新的世界模型5. Making layer 5.1 添加新图层(更详细可参考)5.2 Point5.3 Lines5.4 Polygon5.5 Model Feature5.6 Effects and Multi-Texturing5.7 Shapefile5.8 KML/KMZ6. ddons 与 plugins6.1addons 与 plugins 区别6.2插件总汇及其功能7. script 脚本8. 编译调试9. 读书籍和论文10.1.4.1 版本发展一、 WW 软件结构1.1 功能介绍World Wind(简称 WW,中文有人直翻译为世界风),是 NASA 发布的一个开放
4、源代码(Open Source)的地理科普软件 (由 NASA Research 开发,由 NASA Learning Technologies 來發展),它是一个可视化地球仪,将 NASA、USGS 以及其它 WMS 服务商提4供的图像通过一个三维的地球模型展现,近期还包含了月球、金星、火星、天文星系等的展现。用户可在所观察的行星上随意地旋转、放大、缩小, 同时可以看到地名和行政区划.软件还包含了一个软件包,能够浏览地图及其它由因特网上的 OpenGIS Web Mapping Service 提供的图像。目前软件所使用的数据:低分辩率的 Blue marble 数据现在包含的初始安装内,当
5、用户放大到特定区域时,附加的高分辩率数据将会自动从 NASA 服务器上被下载。 A 静态数据层:en:Blue marble 图像 en:Landsat 图像 en:USGS 图像 en:SRTM 地形数据 B 动画数据层:en:Animated Earth en:MODIS en:GLOBE1.2 WW 与 XMLWorldWind 是一个优秀的客户端框架引擎,XML 实现数据描述和软件设置,通过 WW的 WorldModel、图层、插件、http 和 WMS 请求、三维渲染等实现交互式浏览。也就是说XML 是数据。WorldWind 则是数据执行的引擎,WW 可扩展性和开发性非常强大。1.
6、3 Clinet 与 Server1.3.1 WW 使用链接(附表 1)1.3.2 本地缓存路径(附表 1)1.3.3 本地功能配置(附表 1)1.3.4 http 请求与 aspBlue marble、:Landsat、SRTM 使用直接的 http 请求。Why not use WMS? NASA Learning Technologies and the NWW user community has tried in the pastto use WMS to serve World Wind tiles. The immense demand of the NWW user base
7、hascrippled any WMS server weve tried to date. Instead of using an overly complex format(for serving predefined chunks that is) we opted to go with pre-rendered, pre-defined tilesthat are just stored in the file system, and can be served to the client with no furtherprocessing server side. This redu
8、ces the strain on the server incredibly. If you believe youcan setup a WMS server that would be able to withstand the NWW user base, feel free, wed be happy to see that. In the mean time we are working on creating a WMS serverthat can read the World Wind tile structure (for compatibility with 5other
9、 programs).1.3. WMS、WFSWMSweb Map server 网络地图服务 WFSweb Fundation server 网络要素服务USGS 和所有动画数据层使用符合 OGC 协议的和实现数据网络共享。二、 WorldWind 金子塔体系2.1 瓦片金字塔详解及其对应公式2.1.1 NASA World Wind Tile Structure采取笛卡尔坐标,原点(X = 0, Y = 0.)在投影坐标左下方,即南极点(-90 -180 in latitude纬度 and longitude经度),如图: 6图 1 图 2如图2,World Wind使用“Level Ze
10、ro Tile Size”来决定每一个瓦片宽和高的大小(所有的瓦片都是正方形。标准的level zero tile size 还没有制定,但是它必须满足能被180整除。The level zero tile size (以后称作 lzts)是层与层间转换的最简单的距离。在 NLTLandsat 7 中,lzts被默认设置为2.25度。可用以下公式计算第N层的tile size:size=lzts2N次方。也就是说下一层将上一层一分为四。:7图3 显示坐标轴在X、Y方向值的增量: 2.1.2 NASA World Wind Map Tile System8坐标与图片编号对应公式:(1)利用下面公
11、式,求某点坐标 X,Y(纬,经),在某层 N 的文件号,图片号(X+90)/值*2 的 N 次方=文件夹号(取整数如256.65 即为 256)(Y+180)/值*2 的 N 次方=图片后缀(取整数)(2)利用求得的图片编号 A_B 反求这张图片的左下角坐标A*值/2 的 N 次方-90=纬度 B*值/2 的 N 次方-180=经度 这样求得图片起始分割点坐标,然后以值/2 的 N 次的间隔分割图片,把整幅图分成 256*256 or 512*512BMNG(500m) LandSatGeocover(30m/15m)OnEarth(15m)USGS(1m)SRTM(90m/3m0(US)36
12、 36。 2.252.25。 2.02.0。 0.80.8。 2020。92.2 瓦片请求调度策略2.2.1 当前显示请求及其显示(客户端)(1)瓦片金字塔模型构建金字塔是一种多分辨率层次模型。在地形场景绘制时,在保证显示精度的前提下为提高显示速度,不同区域通常需要不同分辨率的数字高程模型数据和纹理影像数据。数字高程模型金字塔和影像金字塔则可以直接提供这些数据而无需进行实时重采样。尽管金字塔模型增加了数据的存储空间,但能够减少完成地形绘制所需的总机时。分块的瓦片金塔模型还能够进一步减少数据访问量,提高系统的输入输出执行效率,从而提升系统的整体性能。当地形显示窗口大小固定时,采用瓦片金字塔模型可
13、以使数据访问量基本保持不变。瓦片金字塔模型的这一特性对海量地形实时可视化是非常重要的。在构建地形金字塔时,首先把原始地形数据作为金字塔的底层,即第0 层,并对其进行分块,形成第0 层瓦片矩阵。在第0 层的基础上,按每22 个像素合成为一个像素的方法生成第1 层,并对其进行分块,形成第1 层瓦片矩阵。如此下去,构成整个瓦片金字塔。以影像为例,设第 l 层的像素矩阵大小为 irlicl,分辨率为 resl,瓦片大小为isis,则瓦片矩阵的大小 trl tcl 为:trl = irl/istcl = icl/is其中“” 为向下取整符,下同。按每22 个像素合成为1 个像素后生成的第 l+1 层的像
14、素矩阵大小 irl+1icl+1 为:irl+1 = irl/2icl+1 = icl/2其分辨率 resl+1 为:resl+1 = resl 2不失一般性,我们规定像素合成从像素矩阵的左下角开始,从左至右从下到上依次进行。同时规定瓦片分块也从左下角开始,从左至右从下到上依次进行。在上述规定的约束下,影像与其瓦片金字塔模型是互逆的。同时,影像的瓦片金字塔模型也便于转换成具有更明确拓扑关系的四叉树结构。(2)线性四叉树瓦片索引(WW中应用QST,即quadrat size tree)四叉树是一种每个非叶子节点最多只有四个分支的树型结构,也是一种层次数据结构,其特性是能够实现空间递归分解。图2
15、是瓦片金字塔模型的四叉树结构示意图,其中矩形符号代表叶子节点,圆形符号代表非叶子10节点。本文采用四叉树来构建瓦片索引和管理瓦片数据。在瓦片金字塔基础上构建线性四叉树瓦片索引分三步:即逻辑分块、节点编码和物理分块。逻辑分块与构建瓦片金字塔对应,规定块划分从地形数据左下角开始,从左至右,从下到上依次进行。同时规定四叉树的层编码与金字塔的层编码保持一致,即四叉树的底层对应金字塔的底层。设( ix,iy)为像素坐标, is 为瓦片大小, io 为相邻瓦片重叠度,以像素为单位;(tx,ty)为瓦片坐标,以块为单位; l为层号。若瓦片坐标( tx,ty)已知,则瓦片左下角的像素坐标( ixlb,iylb
16、)为:ixlb = tx isiylb = ty is瓦片右上角的像素坐标( ixrt,iyrt)为:ixrt = (tx + 1) is + io 1iyrt = (ty + 1) is + io 1如果像素坐标( ix,iy)已知,则像素所属瓦片的坐标为:tx = ix/isty = iy/is由像素矩阵行数和列数以及瓦片大小,可以计算出瓦片矩阵的行数和列数,然后按从左至右,从下到上的顺序依次生成逻辑瓦片,逻辑瓦片由( ixlb,iylb), (ixrt,iyrt), (tx,ty), l)唯一标识。节点编码假定用一维数组来存储瓦片索引,瓦片排序从底层开始,按从左至右,从下到上的顺序依次进
17、行,瓦片在数组中的偏移量即为节点编码。为了提取瓦片( tx,ty,l),必须计算出其偏移量。我们采用一个一维数组来存储每层瓦片的起始偏移量,设为 osl。若第 l 层瓦片矩阵的列数为 tcl,则瓦片( tx,ty,l)的偏移量 offset 为:offset = ty tcl + tx + osl 物理分块在逻辑分块的基础上对地形数据进行物理分块,生成地形数据子块。对上边界和右边界瓦片中的多余部分用无效像素值填充。物理分块完毕,按瓦片编号顺序存储。(3) 瓦片拓扑关系瓦片拓扑关系包括同一层内邻接关系和上下层之间的双亲与孩子关系两个方面2。邻接关系分别为东( E)、西( W)、南( S)、北( N)四个邻接瓦片,如图3(a)所示;与下层四个孩子的关系分别为西南( SW)、东南( SE)、西北( NW)、东北( NE)四个孩子瓦片,如图3(b)所示;与上层双亲的关系是一个双亲瓦片,如图3(c)所示。若已知瓦片坐标为( tx,ty,l),则该瓦片相关的拓扑关系可表示为:1) 东、西、南、北四个邻接瓦片的坐标分别为:(tx+1,ty,l)、(tx-1,ty,l)、(tx,ty-1,l)、(tx,ty+1,l);2) 西南、东南、西北、东北四个孩子瓦片的坐标分别为(2 tx,2ty,l-1)