一、OpenGIS和WebGIS相关概念
GPL:GNU全局公共许可证(General Public License)简称为GPL,是GNU的开源软件许可证的一种,大多数的 GNU 程序和超过半数的自由软件使用它。同时,它也是开源软件领域对许可人权力限制最严的许可证。GPL首先是承认软件的版权——软件有原始的版权所有者,然后纳入自由软件的版权许可约束。在承认版权的前提下,通过软件的版权许可来实现自由权利的要求。GPL许可证最重要的特点在于它要求根据GPL许可证发布的软件(如:最有影响力的Linux)修改、翻译的演绎作品,甚至只要其任何一部分代码是以GPL发布的,那么全部程序也必须受GPL许可证的约束,即继续遵守 GPL许可证的规定,有些人将其称之为GPL的“病毒效应”。GeoTools、GeoServer都使用GPL授权协议。
AJAX:Asynchronous Javascript and XML(异步Javascript和XML),AJAX是Web2.0时代的主要技术之一,它通过JS与服务器通信,中间传输数据使用XML(当然采用 XML不是必须的,如本系统为JSON),实现网页内容无刷新更新。网上地图的请求与显示通常采用此技术,最典型的如:Google Map。本文中的OpenLayers也使用了此技术。
JSON:JavaScript Object Notation(JavaScript对象符号),JSON是一种用简单文本描述JavaScript对象的开放格式标准,它易于构建和解析。换句话说,可以将发往浏览器的数据编码格式从XML改为JSON对象,而JSON对象能够很容易地转成JavaScript对象。
MVC设计模式:模型-视图-控制(Model、View、Controller)的缩写。模型(Model)是应用程序的主体;视图(View)负责生成用户界面部分;控制器可以根据用户的输入,控制用户界面数据显示及更新Model对象状态。MVC设计模式要求在应用程序开发中将模型逻辑,界面显示,数据层相分离。MVC设计模式由事件驱动。OpenLayers就实现了这种设计模式。 OGC:OpenGIS联盟。
WMS:Web Map Server 网上地图服务,最简单的功能就是:通过HTTP请求,获得相应的地图,地图为图片格式,如:JPG/GIF/PNG。
WFS:Web Feature Server 网上要素服务,最简单的功能就是:通过HTTP请求,获得相关的地理要素信息。
WCS:Web Coverage Server,简单地说就是对栅格数据的服务,它允许用户得到连续的栅格图像,这些图像可能包含多个波段,因此你可以将一幅完整的多波段遥感影像放到你的 WCS服务器上用WCS进行Internet共享,而用户利用浏览器或者其它胖客户端工具通过HTTP请求就可以得到这个影像数据。当然可以对请求参数进行限定,取得其中的一部分(空间的一部分或波段的一部分)数据。
SLD:风格化图层描述器(Styled Layer Descriptor)的简称,用于定义地图显示样式,GeoServer支持SLD,通过自定义SLD,可以在地图中显示文本和图片符号,还可以设置过滤器,自定义图例。
GML:地理标记语言,是WFS规范指定的地理要素的XML编码声明和数据格式。
WKB/WKT:OpenGIS规范定义了两种表达空间数据的标准方法:Well-Known Text (WKT) 和Well-Known Binary (WKB)
二、相关软件介绍:
2.1 GeoTools:一个基于JAVA的开源的GIS工具包,提供了实现OGC规范的一系列函数。是一个松散的工具包,用户可以调用其中的相应的包进行开发。Geoserver、uDig就是基于Geotools的。
2.2 GeoServer:GeoServer基于JAVA的开源软件,通过调用GeoTools,提供遵循OGC标准的WFS-T和WMS服务。其WMS结果的显示演示采用了OpenLayers。
2.3 OpenLayers:一个基于AJAX技术的网上地图显示客户端,支持WMS地图显示、WMS时间序列地图动态显示、GML/Feature数据显示等。
2.4 PostgreSQL/PostGIS:最先进的开源数据库,PostGIS是其在空间数据上的扩展。
三、OpenGIS规范
3.1、WFS/WMS:
3.1.1、版本与流通:
版本号为三段数字表示,现在(2006-5-17)WFS的最新版本是1.1.0,旧版本有0.9.1、1.0.0;WMS的版本有:1.0、1.1、1.1.1、1.3.0。Geoserver支持WFS1.0、WMS1.1.1,其返回的GML版本是2.1.2。
版本号必须出现在两个地方,一是客户端请求参数中、再是服务器GetCapabilities 操作返回的Capabilities XML文档中。
需要注意的是,客户端请求的版本号应该与服务器支持的版本号匹配,否则按最近匹配原则:
1、 如果客户端请求的版本号高于服务器支持的,服务器按其支持的最高的版本号执行,相反,则按最低版本号执行。
2、 如果服务器响应的版本号高于客户端支持的,客户端会重新发送一个较低版本号的请求,相反,发送一个较高的版本。下面以WFS为例
版本匹配示意图
3.1.2、请求规则:有两种请求方式:Get、Post。
WFS的Post请求是提交一个符合WFS规范的XML文本,服务器来对这个XML文本进行解析后执行,下面是两个Get请求:
请求一:
http://127.0.0.1/geoserver/wfs?request=GetCapabilities&service=WFS&version=1.0.0
解释说明:
操作:GetCapabilities
服务:WFS
版本:1.0.0
请求二:
http://127.0.0.1/geoserver/wms?VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&SRS=EPSG:4326&BBOX=146.9632808102,-42.2041379916633,147.0813008202,-42.1368665859633&WIDTH=500&HEIGHT=285&LAYERS=topp:tasmania_roads&FORMAT=image/png&STYLES=&TRANSPARENT=TRUE&TIME=
解释说明:
version=1.1.1 版本号为1.1.1
request=GetMap 执行GetMap操作
服务:WMS
坐标参考系统为EPSG:4326
地图范围:
地图大小:500*285
图层:topp:Tasmania_roads
地图格式:png
地图样式:默认样式
透明显示:是
3.1.3、响应规则:如果请求正常,服务器将返回一个对象,并伴随这个对象的MIME(多用途因特网邮件扩展,常用的文件格式都伴随着一个MIME类型,如邮件附件,GIF图片image/gif)类型和描述(如对象大小、编码类型等等)。否则,应该返回一个服务器异常。
3.1.4、WFS请求编码:规范定义了两种WFS请求编码方法,一是使用XML,二是使用KVP(键值对)
WFS操作与请求编码:
操作
请求编码
GetCapabilities
XML & KVP
DescribeFeatureType
XML & KVP
GetFeature / GetFeatureWithLock
XML & KVP
LockFeature
XML & KVP
Transaction
XML & limited KVP
3.1.5、WFS名称空间:有三个标准化的名称空间:
(http://www.opengis.net/wfs) - for the WFS interface vocabulary
(http://www.opengis.net/gml) - for the GML vocabulary
(http://www.opengis.net/ogc) - for the OGC Filter vocabulary
3.1.6、坐标参考系统:
使用EPSG 标准,其值通常是4326。
3.1.7、WFS操作:
DescribeFeatureType(要素类型特征描述)操作:此操作产生一个WFS服务器所提供的地理要素的大纲描述,这个描述定义了WFS地理要素实例怎样被输入、编译和输出。对于一个DescribeFeatureType请求,应返回一个由XML Schema定义的GML3应用程序大纲。
GetFeature(获取对象) 操作:因为地理要素的规范表示是使用GML,所以GetFeature操作涉及到GML规范中的地理要素模型。在GML中,一个地理要素表现为XML文档中的一个元素,一个GML文档可包含多个地理要素。当GetFeature请求的输出格式设为text/gml; subtype=gml/3.1.1时,一个GML实例将被返回给客户端。
GetGMLObject(获取GML对象) 操作:允许通过ID号从服务器上获取地理要素和元素,该操作将返回一个XML片段。注意GetGMLObject操作不是可选的,不是服务器必需支持的。
LockFeature (锁定要素)操作:网络连接本身是不稳定的,要实现事务操作的正确执行,解决并发冲突问题,需要锁定地理要素,这类似数据库中的相关操作(实际上也确实是一种空间数据库操作)。
Transaction(事务操作):事务操作描述了从网上获得的地理要素实例的数据事务操作。当事务操作完成时,WFS服务器将返回一个XML文档指示事务的完成状况。
GetCapabilities(获取服务能力)操作:任何OGC的web服务器,包括WFS、WMS,必须提供GetCapabilities操作,用于描绘服务器性能容量。GetCapabilities请求将返回服务器元数据。
3.1.8、WMS操作:
GetCapabilities(强制)操作:反映服务器性能信息,与WFS的GetCapabilities操作相似。
GetMap(强制)操作:返回地图,这是最常用的操作,可参考前面请求规则的请求二例子。
GetFeatureinfo(可选):该操作是可选操作,能提供给客户端更多地理要素的信息,如在客户端选择地图上某一点,GetFeatureinfo操作可以返回该点的相关信息。
3.2、空间数据格式WKB/WKT
OpenGIS规范定义了两种表达空间数据的标准方法:Well-Known Text (WKT) 和Well-Known Binary (WKB) 形式。WKT和WKB都包括对象的类型和坐标系。OpenGIS规范还需要空间对象的internal存储格式包括空间参考系统标示符(SRID),在空间对象装入数据库时需要提供SRID。
OGC的更多信息,请访问:http://www.opengeospatial.org
*****************************************************
未知此文章出处,无法标识作者来源,请原谅
分享到:
相关推荐
在openGIS的概念中,"open"通常指的是开放源码或者开源,意味着公众可以自由地使用、修改和分发GIS软件,而不仅仅是局限于商业产品的使用。 GIS的核心功能在于它能够处理具有空间属性的数据,这些数据可以是点、线...
开源软件 课时5:3.开源GIS课程 课时6:4.开源GIS实验环境 课时7:课件资料 课时8:1.PostgreSQL简介 课时9:2.空间数据库概述 课时10:3.PostGIS简介 课时11:4.PostGIS实践操作 课时12:课件资料 课时13:1....
在描述中提到的“OSGeo自由软件日2009年9月讲座资料下载”,OSGeo(Open Source Geospatial Foundation)是一个非营利组织,致力于推广和支持开源地理空间软件。每年的OSGeo自由软件日,会举办一系列活动,分享开源...
开源软件 课时5:3.开源GIS课程 课时6:4.开源GIS实验环境 课时7:课件资料 课时8:1.PostgreSQL简介 课时9:2.空间数据库概述 课时10:3.PostGIS简介 课时11:4.PostGIS实践操作 课时12:课件资料 课时13:1....
开源GIS是一种可以自由获取、使用和修改的地理信息系统软件,它们通常拥有活跃的开发者社区支持,能够提供稳定且强大的功能。 ##### GRASS实用指南 GRASS(Geographic Resources Analysis Support System)是一款...
开源软件的概念是FreeFS的核心之一。这意味着代码是公开的,任何人都可以查看、修改和分发。这种开放性鼓励了社区的参与和协作,推动了软件的持续改进和创新。开发者可以根据自己的需求定制功能,或者贡献新的特性,...
空间数据库是一种特殊的数据库管理系统,专为...通过理解并掌握空间数据库的概念、体系结构、数据类型以及相关的OpenGIS规范,开发者可以构建出强大的地理信息系统,服务于城市规划、环境保护、交通管理等多个领域。
WorldWind 技术手册是一份详细阐述 NASA 开源项目 WorldWind 的文档,旨在帮助开发者和用户理解其软件架构和核心功能。WorldWind 是一个用于创建交互式地球和天体可视化的开源库,允许用户在三维空间中查看地球、...
OSGeo4W(Open Source Geospatial Foundation for Windows)是一个专门为Windows平台设计的开源GIS软件打包工具,它包含了众多GIS相关的开源项目,包括QGIS所需的依赖库。 "QGIS依赖库本地安装包.zip"是为了解决在...
3. **GIS发展趋势**:可能涉及GIS软件的开源化、WebGIS、移动GIS、大数据分析和云计算在遥感领域的应用等。 4. **编码技术**:游程长度编码和四叉树编码是压缩遥感图像数据的方法,减少存储空间需求。 试题中还涵盖...
GeoServer 是一个基于 Java 的开源软件,它是 OpenGIS Web 服务器规范的 J2EE 实现,主要用于发布和管理地理空间数据。GeoServer 提供了一种简单而高效的方式,让用户能够共享和编辑地图数据,实现空间地理信息的...
GEOS(Geometry Engine - Open Source)是一个开源的C++库,专门用于处理基于OpenGIS(现为OGC,开放地理空间联盟)简单特征规范的几何对象。这个库的核心功能是执行几何操作,如空间关系测试、几何对象的构造和变换...
GIS,全称地理信息系统(Geographic Information System),是一种集成了计算机硬件、软件以及地理数据的系统,用于捕捉、存储、分析、显示与地理空间位置有关的数据。它在城市规划、环境监测、交通管理、灾害预警等...
这些功能使得GEOS成为GIS软件和Web服务中不可或缺的组件,如PostGIS、QGIS和GeoDjango等。 源码分析: 1. **几何对象**:GEOS 3.5.1源码中的"geos-3.5.1/include/geos/geom"目录下,包含了所有几何对象的定义。从...
- **GIS 对象**:介绍了 OpenGIS WKB 和 WKT 的概念以及它们与 PostGIS 的关系。 - **OpenGIS WKB 和 WKT**:定义了如何表示几何对象的标准格式。 - **PostGIS EWKB, EWKT 和规范形式**:PostGIS 使用的扩展版本,...
3. **GEOS库**:一个开源的C++库,实现了基于OpenGIS简单特征规范的几何操作,Shapely库在其之上构建。 4. **Shapely库**:Python的几何操作库,提供高级的几何对象操作,如点、线和多边形的创建、比较和变形等。 ...
- **软件支持**:目前市场上已经有许多支持CityGML的软件工具,包括开源软件和商业产品。 #### 六、CityGML的未来发展 随着技术的进步,CityGML未来的发展方向可能包括: - **提高模型精度**:通过更高级别的细节...
2. **开放标准**:**PostGIS**遵循并实现了OpenGIS的一些规范,这使得它能够与其他GIS软件兼容。 3. **高效能**:由于与**PostgreSQL**紧密集成,因此**PostGIS**在处理大量空间数据时表现出很高的效率。 #### 二、...
- **OpenGIS WKB 和 WKT**:介绍这两种格式的基本概念及其在PostGIS中的应用。 - **PostGIS EWKB, EWKT 及规范形式**:解释这些扩展格式的特性和用途。 - **SQL-MM 第3部分**:简述SQL-MM标准中关于空间数据的...