天天看点

GIS应用及OpenGIS介绍

转自:http://blog.csdn.net/cdl2008sky/article/details/7266680

gis的三大应用

第一类是政府应用,“电子政务”

是当今政府加强信息化建设的新方向,是指在现代计算机、网络通信等技术支撑下,政府机构日常办公、信息收集与发布、公共管理等事务在数字化、网络化的环境下进行的国家行政管理形式。gis已成为很多政府决策部门工作必备的支撑系统之一,在国家水利、电力、林牧业、地矿、交通、资源环境保护等机构己发挥重要作用。

第二类是企业应用,随着信息时代的到来,企业的组织、运营、管理也逐渐向信息化方向发展,gis通过提供可视化地理空间信息服务结合企业管理信息系统,为企业的业务规划、物流等领域提供辅助决策。

第三类是大众应用,webgis的产生为大众提供了获取地理空间信息服务的平台,通过开放的、操作简单的webgis服务,满足大众对地理信息的需求,如:方便人们出行的谷歌、百度地图服务。

gis三大组成部分

(1)数字化的数据

数字化的数据是信息在计算机中的表现形式,是指要使用计算机软硬件进行图形化显示和空间分析操作的地理空间信息。gis中的数据不同于其他信息系统的数据,它具有空间特性,gis数据分为空间数据和非空间数据两类.比如gis中的一条数据经度和纬度数据表示该事物的空间位置,属于空间数据,名字和日期数据表示该事物的属性,属于非空间数据,gis将空间数据和非空间数据进行结合进行分析、处理。

gis功能

基本功能应包括:数据输入、数据编辑、数据存储、数据操作、数据分析、数据显示和输出

(1)数据输入:也称数据采集

人工数字化输入

远程遥感的卫星图像和gps 

(2)数据编辑:随着地图要素的数字化操作,用户需要完成将所有的空间要素关联到其对应的属性数据,清理并改正在数据转换过程中产生的错误.

(3)数据存储:当数据经过数字化、编辑后,数字化的地图数据需要存储在磁盘或其他存储设备上,存储使用的数据模型最常用的包括:栅格格式和矢量格式。两种格式都将原有图数据简化为一种容易存储的通用格式。

(4)数据操作:当数据在系统中存储后,用户就可以对数据进行一系列的操作,gis操作通常以一个工具包的形式提供给用户,工具包中包括基本的数据操作和分析功能,如:数据检索、面积周长测量、坐标转换、投影变换、图幅接边等。

(5)

数据分析:gls的核心在于其强大的分析能力,如对距离某一事故地点一定范围内各种空间要素的搜索,并对相关的信息进行统计分析,为事故处理提供所需要的信息。遥感技术、全球定位技术与地理信息系统合称为“3s”技术

opengis(open

geodata interoperation

specification,ogis-开放的地理数据互操作规范)

是由美国ogc(opengis协会,opengis

consortium)提出,主要架构和类库

几何基础类库

代表:

jts(java), geos(c++),

shapely(python)

这类几何基础类库主要实现的是opengis的simple feature

access标准,简单地说他们就是对几何类型(geometry)进行了一定程度的封装。以jts为例,它按照opengis对于geometry的描述实现了基于java的接口和继承关系,制作好了可以使用的类似point、linestring这样的类。另外这些类库还普遍实现了opengis的de-9im空间位置关系判断和一些常用的计算几何方法(如缓冲(buffer))此类软件是所有gis类库的基础,正如几何是gis的基础之一一样。

数据源实现

代表:postgis(postgresql),mysql

spatial

数据源的实现主要是开源数据库的空间扩展。数据库的空间扩展不仅仅在数据表中支持几何类型的存储,

而且更提供了sql级别的集合关系判断,例如,可以直接利用sql查询在某个多边形内的点。

postgis是加拿大refractions公司支持的开源项目,它为开源数据库postgresql提供了空间支持。postgis安装后,postgresql中出现一个模版数据库,新建空间数据库时只需以postgis为模版即可。postgis在sql级别上实现了基本的空间运算功能。另外绝大多数开源gis软件(即使是不严格遵守opengis标准的)都支持postgis数据表的直接载入,读写等功能。毋庸置疑,postgis是opengis数据源最佳实现。

目的是促进采用新的技术和商业方式来提高地理信息处理的互操作性(interoperability),

它致力于消除地理信息应用(如地理信息系统,遥感,土地信息系统,自动制图/设施管理(am/fm)系统)

之间以及地理应用与其它信息技术应用之间的藩篱,建立一个无“边界”的、分布的、基于构件的地理数据互操作环境

中间件

代表:geotools(java)

中间件在系统中扮演连接数据和服务的角色。geotools承担了从各种数据源(如postgis,gml,shapefile,wfs)读取数据并将数据标准化的工作。feature接口就定义在geotools中,不同数据源的数据读出后被统一成包含一个geometry成员(定义在jts中)的feature接口的实现。这样,进一步的操作只需面向feature即可,

省去了高层软件对于不同数据源的解读过程。另外,geotools还是opengis标准的全面实现,其中包括filter、坐标转换、gml。

geotools和jts还有geoapi到底是什么关系?

jts是加拿大的 vivid solutions

做的一套开放源码的 java

api。它提供了一套空间数据操作的核心算法。为在兼容ogc标准的空间对象模型中进行基础的几何操作提供2d空间谓词api。

geoapi为opengis规范提供一组java接口。

geotools是一个开源的java

gis工具包,可利用它来开发符合标准的地理信息系统。

geotools提供了ogc(open geospatial

consortium)规范的一个实现来作为他们的开发。

简单而言:geotools的目标是致力于开发一个符合规范的gis工具包,既然是工具包,那么就要有很多工具用来对付构建一个完整的地理信息系统时会碰到的问题,常见的问题比如:投影的转换,基准面的设定,空间数据对象的渲染和样式,各种数据源的支持,各种gis文件格式支持,空间数据过滤与搜索。。。。等等的问题。 

在开发这些工具的时候,恰好在处理空间数据图形关系的时候,有一个非常好的解决方案,那就是jts,jts解决了对象与对象之间拓扑关系的判定和计算,并提供很多有用的算法来解决对象的面积,长度。。。等等等的问题。这样而言,jts就相当于geotools中的一个子模块。但因为这个模块本身不是geotools工程的,所以在javadoc中找不到jts的api,需要到jts官网上面另外下载。至于geoapi则是geotools符合标准的模板。它制定了地理信息系统中所有的数据类型应该是什么,投影转换的方式有哪几种诸如此类的规范。这样兼容geoapi接口的geotools才是一个符合规范的地理信息系统工具包。

wms/wfs服务器

web map service(wms)根据用户的请求返回相应的地图(包括png,gif,jepg 等栅格数据或者svg,web cgm 矢量数据)

geoserver(java),mapserver(php)

地图服务器扮演向网络中的客户端提供地图服务的角色。这类地图服务器可以接收统一规范的wms和wfs请求(request),返回多种格式的数据。这个过程有wms/wfs规范的严格规定,所以,对客户端来说其地图服务器的实现究竟是什么并不会造成太大影响。

geoserver

是 opengis web 服务器规范的 j2ee 实现的社区开源项目,利用 geoserver

可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 geoserver

可以比较容易的在用户之间迅速共享空间地理信息。

geoserver兼容 wms 和 wfs 特性;支持 postgis 、 shapefile 、

arcsde 、 oracle 、 vpf 、 mysql 、 mapinfo ;支持上百种投影;能够将网络地图输出为 jpeg 、 gif 、 png 、

svg 、 kml 等格式;能够运行在任何基于 j2ee/servlet 容器之上;嵌入 mapbuilder 支持 ajax

的地图客户端openlayers;

客户端

代表:openlayers/mapbuilder(javascript),udig(java),qgis(c++)

客户端分为浏览器和桌面客户端程序两种。以openlayers为代表的b/s系统客户端现在已经非常强大,它可以封装wms请求,在浏览器上实现地图的切片载入功能。另外拖动、缩放都功能也非常完善,可以实现跨浏览器操作。最近的openlayers版本还支持了矢量编辑功能,可以通过wfs-t提交。而传统的桌面客户端程序功能则更加强大,支持多种包括wms和wfs在内的数据源,另外编辑功能、操作性也要比浏览器中的强大。

数据格式

esri的shapefile格式

是gis矢量文件格式的事实标准,通常由.shp, .shx, .prj, .dbf等文件组成。

opengis的实现软件普遍支持shapefile的读写。shapefile在geoserver中可以直接作为数据源,但是这种方式并不被推荐,原因很简单,基于文件的数据源可能造成性能不佳和数据丢失。shape格式文件最少包含3个文件,他们的后缀是:.shp,

.dbf, .shx。.shp存储地理形状和位置信息,.dbf存储属性信息,.shx是索引文件。

mapinfo 的.mif/.mid格式

.mif的文件,它主要用来保存空间对象的几何数据;扩展名为.mid的文件,它主要用来保存与几何数据相对应的属性数据;

gml

gml是opengis的标准规范之一,它基于xml描述地理数据。于shapefile相比,xml更容易读写,易于在网络中以各种形式传播。

同时,xml还具有可读性,人可以理解和辨识。geotools实现了gmldatastore,因此在geoserver中gml也可以直接作为数据源(需要下载gml扩展)。

同时,gml的数据源为数据源动态化提供了实现的思路和可能性。

地理应用服务器

mapinfo mapxtreme 

mapobject autodesk 

map

guide 

arcims 

super map

arcgis server

mapxtreme是mapinfo公司开发的基于internet/

intranet的应用服务器,它具有强大的地图化功能,包括绘制专题地图、缓冲区分析、地图编辑、地图目标查找、地图显示、图层控制、空间选择、地理编码、扩展地图库和示例数据等。管理员只要在web服务器上对mapxtreme进行编程和管理,用户就能够通过web浏览器访问到地图信息。

工作方式

  mapxtreme的工作方式总体来说是瘦客户端的工作方式,客户端看到的地图是服务端根据用户请求动态生成的某种格式的图片。mapxtreme采用的是b/s模式三层架构客户端首先向web服务器提交http请求,递交form表单,web服务器收到该请求后,把地图操作请求提交给地图应用服务,地图应用服务在内部调用mapxserver响应用户的操作请求,进行相应的空间分析和处理后,产生新的地图图片,返回给web服务器,web服务器再把该图片嵌入到html页面中并返回到客户端的浏览器上