2.4 WebGIS开发的GIS背景知识
WebGIS是GIS与Web融合的地理信息系统,要掌握WebGIS的二次开发,除了要了解上述Web开发基础,还需要了解相关的GIS背景知识。
GIS最核心的是空间数据,地图则是空间数据最显著的表现特征。因此,需要了解基础几何图形、GIS地图学基础、GIS数据与应用、网络地图数据服务,以及WebGIS开发关键点——逻辑坐标与窗口坐标转换。
2.4.1 基础几何图形
地图可视化是GIS的基础内容,而几何图形则是地图表达的基本元素。基础几何图形对应于二维空间的点、线、面,因此要了解点、线、区的几何图形内容,理解基于这些基础几何图形抽象来表达空间实体信息的基本原理(即采用面向对象的实体模型)。
1.点
点是几何图形中最基本的单元,是空间中只有位置、没有大小的图形。在一个平面上,通常用坐标(x, y)来表示一个点,其中x表示水平位置,y表示竖直位置。点坐标如图2-10所示。
图2-10 点坐标
虽然一个坐标可以确定一个点的位置,但由于点是现实世界中点状地物(如电杆、灯塔、泉水、水文站、气象观测点等)的抽象,种类多种多样,所以除了空间位置,点还有一些属性,如种类、颜色等。点图案如图2-11所示。
图2-11 点图案
在计算机中,为了记录和显示不同的点,通常会给每个点一个唯一的编号,称为ID;为了用不同的图案表达不同的含义,还要给出图案号。
2.线
线是现实世界中线状地物(如道路、河流、航线、电力线等)的抽象。当需要记录一条线时,把所有的点都记录下来显然是不切实际的,实际中仅仅记录线上的一些“节点”就可以描述整条线。这些“节点”就是线的端点与转折点。所以,在计算机中,一条线是用有限个有序点来表示的。线坐标如图2-12所示。
图2-12 线坐标
与点类似,线的种类也是多种多样的,除了节点序列,还有颜色、线形、种类等属性。为了区分不同的线,每条线同样也要分配一个唯一的ID。
3.区
区是现实世界中面状地物(如地块、湖泊、行政区等)的抽象。在计算机中,区是由平面上三个及三个以上的节点连接而成的封闭图形,可以通过有序描述区边界的节点来描述一个最简单的区(带洞的区结构更为复杂)。最简单的区就是一个有限个有序点。区坐标如图2-13所示,区图案如图2-14所示。
图2-13 区坐标
图2-14 区图形
与点、线类似,区的种类也是多种多样的,除了节点序列,还有颜色、填充图案、种类等属性。为了区分不同的区,每个区同样也要分配一个唯一的ID。
2.4.2 GIS地图学基础
GIS是地图学的延伸,脱胎于地图,了解地图学基础知识,可以帮助理解GIS,为GIS开发奠定理论基础。
地球不是一个正球体,是一个近于梨形的椭球体。地球自然表面则是一个起伏不平、十分不规则的表面,既有高山、丘陵和平原,又有江河湖海。
1.坐标系
坐标系是用于定义要素实际位置的坐标框架,包括坐标原点(O)、长半轴(a)、短半轴(b)、扁率(f)。
坐标系可分为地理坐标系(Geography Coor dinate Sy stem)和投影坐标系(Projected Coordinate System),如表2-3所示。
表2-3 坐标系的分类
地理坐标系统是直接建立在椭球体上的,用经度和纬度表达地理对象位置;投影坐标系是建立在平面上的。
地球椭球体是一种对地球形状的数学描述,常见的坐标系如表2-4所示。
表2-4 常见的坐标系
图2-15 大地坐标系(图中是系统)
大地坐标系(Geodetic Coordinate System, GCS)的定义是:以参考椭球体(用来模拟地球的光滑球体)中心为原点,本初子午面(英国格林尼治天文台所在位置为本初子午线,即0度经线)为纵轴方向,赤道平面为横轴方向,如图2-15所示,圆点的坐标就应该是(50,40),单位为度。
地理坐标系是建立在椭球体基础上的,然而我们看到的通常是一个平面的地图,需要把椭球体按照一定的法则展开到平面上,这就是投影坐标系。
2.投影转换
地球椭球体表面是曲面,而地图通常要绘制在平面图纸上,因此在制图时首先要把曲面展开为平面。然而球面是个不可展曲面,换句话说,就是在把球面直接展开为平面时,不避免地会发生破裂或褶皱。若用这种具有破裂或褶皱的平面绘制地图,显然是不实用的,所以必须采用特殊的方法将曲面展开,使其成为没有破裂或褶皱的平面,于是就出现了地图投影理论。该理论的基本原理就是:因为球面上一点的位置决定于它的经度和纬度,所以在实际投影时先将一些经线和纬线的交点展绘在平面上,再将相同经度的点连成经线,相同纬度的点连成纬线,构成经纬网。有了经纬网以后,就可以将球面上的点,按其经度和纬度展开绘在平面上相应的位置。投影转换如图2-16所示。
图2-16 投影转换
由于球面上任何一点的位置都是用地理坐标(λ, φ)表示的,而平面上点的位置是用平面直角坐标(x, y)或极坐标(ρ, θ)表示的,所以要想将地球表面上的点转移到平面上,必须采用一定的法则来确定地理坐标与平面直角坐标或极坐标之间的关系。从经度和纬度转换为平面直角坐标或极坐标时总会出现扭曲变形,地图投影就是用来减小这种变形的。
地图投影的种类很多,一般按照两种标准进行分类:一是按投影的变形性质分类,二是按照投影的构成方式分类。
(1)按投影的变形性质分类。
① 等角投影。等角投影没有角度变形,便于测量方向和角度,常用于对角度和方向要求高的地图,如航海、洋流和风向图等。由于等角投影的面积变形很大,故不能测量面积。
② 等积投影。等积投影就是等面积投影,便于面积的比较和量算,常用于对面积精度要求较高的自然和经济地图,如地质、土壤、土地利用、行政区划等地图。
③ 任意投影。既不等角又不等积,角度和面积的变形都存在,但都适中。在任意投影中,有一类比较特殊的投影称为等距投影,它满足在正轴投影中经线长度比为1,在斜轴或横轴投影中垂直圈长度比为1。
(2)按投影的构成方式分类。
① 几何投影。几何投影是把椭球体面上的经纬网直接或附加某种条件后投影到几何投影面上,然后将几何投影面展开为平面的一类投影,包括方位投影、圆锥投影和圆柱投影。根据几何投影面与椭球体面位置关系的不同又可将其划分为正轴投影、横轴投影、斜轴投影。
② 解析投影。解析投影是不借助于辅助几何投影面,直接用解析法得到经纬网的一类投影,包括伪方位投影、伪圆锥投影、伪圆柱投影、多圆锥投影。
目前常用的投影有墨卡托投影(正轴等角圆柱投影)、高斯-克吕格投影(等角横切圆柱投影)、UTM投影(等角横轴割圆柱投影)、Lambert投影(等角正割圆锥投影)等。
3.比例尺
比例尺等于图上距离除以实际距离。简单来讲,地图是对现实世界的抽象缩小,比例尺就代表了抽象缩小的程度。比例尺越小,抽象缩小的程度越高,表达的地物就少而简单;比例尺越大,抽象缩小的程度越低,表达的地物就越详细。如图2-17所示,同一个湖泊在较大的比例尺地图上以面来表示,可以看到湖泊的轮廓,而在较小的比例尺地图上就只是以线来表示。对地物进行抽象缩小的过程存在于数据采集这个环节,对于采集到的数据,在软件中是可以实现比例尺的无极缩放的,这时候改变的就不再是抽象缩小程度,而是显示的地理范围了。
图2-17 不同比例尺对于地物抽象缩小的程度
地图是按照一定的数学法则,将地球(或星体)表面上的空间信息,经概括综合,以可视化、数字或触摸的符号形式,缩小表达在一定载体上的图形模型,用以传输、模拟和认知客观世界的时空信息。
2.4.3 GIS数据与应用
空间数据是GIS的心脏。根据数据来源不同,空间数据包括地图数据、遥感影像数据、地形数据,以及其他的统计数据、文字报告等。针对空间数据,GIS有两大基本存储模型,一种是矢量数据模型,另一种是栅格数据模型。矢量数据模型以离散的点坐标来表示地理要素,通过点、线、面以及注记来抽象表达空间实体以及实体间的关系;栅格数据模型则以一系列栅格值来表示,基于网格结构使用不同颜色和灰度的像元来表达。除此之外,还有TIN数据模型,常用于存储高程数据。一般来说,具有明确对象的专题,一般使用矢量数据模型,如地籍数据、行政边界、街道等;具有连续空间变化的专题,则使用栅格数据模型。
如图2-18所示,对于同样信息的表达,在左边的矢量数据模型中,我们看到的是清晰的点、线、面的实体,用来表达河流、湖泊、地块等信息;而右边的栅格数据模型中,我们看到的则是一个个格子,相同的像元值在地图上展示出相同的颜色,从而也呈现出河流、湖泊、地块等的形态。虽然都能表达出一样的信息,但是这两种模型是完全不同的,矢量数据模型是以对象为单位的,我们可以把一个湖泊的面积等属性都存储在该对象中;而对于栅格数据模型,湖泊是由一组像元组成的,我们不可能将整个湖泊的面积分别赋予每个像元。在实际应用中,大部分地图数据为矢量数据,遥感影像为栅格数据。
图2-18 矢量数据模型与栅格数据模型
空间数据具备空间特征、属性特征和时间特征。其中,空间特征是指地理位置信息,包括空间位置(定位特征)与空间关系(几何特征),一般用坐标数据表示;属性特征是指实体的特征,如名称、分类、质量特征与数量特征等;时间特征描述的是实体随时间的变化。在GIS应用中,在空间数据库存储空间数据时,将空间特征与属性特征统一存储管理,同时也可将其他属性信息(包括业务数据)单独存储在业务数据库中。
基于Web应用的原理,WebGIS的二维地图主要分为矢量地图与瓦片地图两种形式。
(1)矢量地图。矢量地图通常指由矢量数据模型存储的矢量数据组成的地图。矢量地图的加载,是指根据客户端请求的地图范围实时地从服务器的地图数据库中取图,实时生成请求范围对应的地图,这时服务器返回的一张地图。遥感影像与矢量地图采用的是相同的出图机制和方法。矢量地图如图2-19所示。
图2-19 矢量地图
(2)瓦片地图。瓦片数据是指网格中多个类似瓦片的图片集。瓦片数据是通过将矢量或影像数据进行预处理,采用高效的缓存机制(即金字塔结构)形成的,采用级、行、列方式进行组织,可在网页中快速加载。因此,瓦片地图的加载是指根据客户端请求的地图范围和级别,通过计算行、列号分别获取对应级别下网格的瓦片数据(即服务器预裁剪的图片),由这些瓦片集在客户端形成一张地图。瓦片地图如图2-20所示。
图2-20 瓦片地图
矢量地图和瓦片地图各具特点和优势,可以结合应用。矢量地图是实时生成的,可以对地图数据进行在线编辑、查询分析,具有空间关系属性,能够支持网络分析、空间分析等应用。瓦片地图是预裁剪的缓存图片集,具有网络加载速度较快、效果好的特点,常作为底图应用。
2.4.4 网络地图数据服务
所谓“巧妇难为无米之炊”,数据才是王道,没有数据,GIS系统就是一个空架子。在WebGIS应用中,数据组织非常关键,需要根据项目的需求进行各方平衡以选择最佳的数据组织方案。
随着互联网与移动互联网的发展,公众对地理信息服务应用的需求与日俱增,各大互联网公司纷纷跨界进入地图服务市场。与此同时,GIS厂商、开源项目等在市场需求推动下迅速发展,我国政府相关部门也加大了对互联网地理信息服务建设的力度,在公众应用领域尤为突出。互联网涌现出大量开放的网络地图服务资源,呈现百花齐放之态。例如,Google地图、OpenStreetMap、Bing地图、Yahoo地图、百度地图、高德地图、天地图等,它们均提供免费开放的基础地图服务,基本上都采用瓦片地图,对外提供各类基础地图数据的在线服务,通常在应用中作为底图直接调用。当然,为满足更多用户的需求,也提供多层次、多专题的地图数据服务,需要按照特定渠道和方式获取,合法使用。除此之外,一些GIS厂商、单位等也构建了共享服务平台,或者其他形式的服务平台,面向公众提供一些基础地图数据服务。
提示:针对这些公共地图服务,在开发应用时可以通过其官网和其他渠道获取所需类型的地图数据服务地址。
例如,OpenStreetMap(OSM)的目标是创造一个内容自由且能让所有人编辑的世界地图,目前已经成为使用频繁的地图数据源之一。天地图是国家地理信息公共服务平台的公众版,以门户网站与服务接口方式提供大量的地图服务资源,包括国家和各省(区)、市的测绘成果,如图2-21与图2-22所示,提供了免费的在线基础地图服务资源,同时提供基础测绘成果目录,供广大用户查询,有需求者可按需合法获取资源。
图2-21 天地图全球服务资源
图2-22 天地图省、市服务资源(武汉)
为实现空间数据的相互操作,促进异构平台的空间数据共享,OGC(Open Geosp atial Consortium,开放地理空间信息联盟)一直致力于提供地理信息行业软件和数据及服务的标准化工作,制定了一系列针对空间数据的服务规范,如WMS、WMTS、WFS等。基于OGC服务规范,实现地理信息的全球范围内的共享与互操作,已经成为GIS技术发展的必然趋势。因此,目前大部分开放的地图服务均是基于OGC服务规范发布的,向公众提供符合OGC服务规范的地图服务。
由于空间数据具有保密性,因此GIS相关人员都应具备安全意识,涉密空间数据要严格按照国家法规依法使用。因此,面向公众的地图服务大部分都是以瓦片形式提供的,并按照要求进行一定程度的偏移。在项目应用中,若需进行多源数据叠加显示,则必须考虑统一坐标系与偏移问题。另外,在从事GIS工作或学习中,都要时刻具备保密意识。
对于中国用户,开放的免费数据获取途径有限,国家基础地理信息中心发布过全国1 : 400万比例尺的矢量图,详细到县级行政数据。另外,如果只是需要背景地图显示的话,则不必获取原始数据,采用叠加地图服务的方式即可。
2.4.5 WebGIS的逻辑坐标与窗口坐标转换
在WebGIS开发中,通常会涉及逻辑坐标与窗口坐标的转换。逻辑坐标与窗口坐标的转换也是一个非常关键的步骤,读者要明白两者的含义。地图发布到Web网页上时,涉及地理空间位置在网页容器中的表示。逻辑坐标指实际的地理坐标,即数据坐标系,表示真实的地理空间位置;窗口坐标指在Web网页中逻辑坐标对应的屏幕坐标,是根据Web网页中地图容器布局(大小与位置),对逻辑坐标进行转换而得到的。当在客户端实现图形交互绘制、地图查询、编辑等功能时,鼠标交互获取到的是窗口坐标,通常要将其转换为对应的逻辑坐标,进而实现具体功能。
数据坐标系到窗口坐标的映射可以看成现实世界中的景物在PC浏览器窗口屏幕上的显示。窗口坐标系与数据坐标系存在比例关系,这个比例关系可以理解为数据坐标系中单位长度与窗口坐标系中长度的投影。如图2-23所示,如果窗口坐标系的原点是数据坐标系中Q点的投影,那么位于数据坐标系中的一个点p(x, y)显示到窗口坐标系中就变为点p′(x′, y′),它们之间存在以下换算关系。
x′=(x-X0)×r
y′=(y-Y0)×r
图2-23 数据坐标系与窗口坐标系映射关系
其中,r是窗口坐标系中的单位长度与数据坐标系中对应的实际长度之比,类似于地图比例尺。
例如,一个常见的矩形查询,需要用鼠标在地图上绘制一个矩形,查询矩形范围内的空间要素。在实现矩形查询功能时,首先要将鼠标操作状态设置为拉框绘制状态,然后添加一个地图事件监听,即添加鼠标在地图上完成矩形绘制弹起事件的监听,在事件监听的处理函数中获取绘制矩形的窗口坐标并将其转换为逻辑坐标,最后把得到的矩形逻辑坐标范围作为查询条件,查询矩形范围内的空间要素。