开源GIS开发指导

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、GIS的三大应用1.政府应用“电子政务”是当今政府加强信息化建设的新方向,是指在现代计算机、网络通信等技术支撑下,政府机构日常办公、信息收集与发布、公共管理等事务在数字化、网络化的环境下进行的国家行政管理形式。GIS已成为很多政府决策部门工作必备的支撑系统之一,在国家水利、电力、林牧业、地矿、交通、资源环境保护等机构己发挥重要作用。2.企业应用随着信息时代的到来,企业的组织、运营、管理也逐渐向信息化方向发展,GIS通过提供可视化地理空间信息服务结合企业管理信息系统,为企业的业务规划、物流等领域提供辅助决策。3.大众应用WebGIS的产生为大众提供了获取地理空间信息服务的平台,通过开放的、操作简单的WebGis服务,满足大众对地理信息的需求,如:方便人们出行的谷歌、百度地图服务。二、GIS典型功能基本功能应包括:数据输入、数据编辑、数据存储、数据操作、数据分析、数据显示和输出。1.数据输入也称数据采集,人工数字化输入,远程遥感的卫星图像和GPS2.数据编辑随着地图要素的数字化操作,用户需要完成将所有的空间要素关联到其对应的属性数据,清理并改正在数据转换过程中产生的错误.3.数据存储当数据经过数字化、编辑后,数字化的地图数据需要存储在磁盘或其他存储设备上,存储使用的数据模型最常用的包括:栅格格式和矢量格式。两种格式都将原有图数据简化为一种容易存储的通用格式。4.数据操作当数据在系统中存储后,用户就可以对数据进行一系列的操作,GIS操作通常以一个工具包的形式提供给用户,工具包中包括基本的数据操作和分析功能,如:数据检索、面积周长测量、坐标转换、投影变换、图幅接边等。5.数据分析Gls的核心在于其强大的分析能力,如对距离某一事故地点一定范围内各种空间要素的搜索,并对相关的信息进行统计分析,为事故处理提供所需要的信息。遥感技术、全球定位技术与地理信息系统合称为“3S”技术三、OpenGIS(开源)OpenGeodataInteroperationSpecificationOGIS-开放的地理数据互操作规范1.几何基础类库代表:JTS(Java),GEOS(C++),Shapely(Python)这类几何基础类库主要实现的是OpenGIS的SimpleFeatureAccess标准,简单地说他们就是对几何类型(Geometry)进行了一定程度的封装。以JTS为例,它按照OpenGIS对于Geometry的描述实现了基于Java的接口和继承关系,制作好了可以使用的类似Point、LineString这样的类。另外这些类库还普遍实现了OpenGIS的DE-9IM空间位置关系判断和一些常用的计算几何方法(如缓冲(buffer))此类软件是所有GIS类库的基础,正如几何是GIS的基础之一一样。2.数据源代表:PostGIS(PostgreSQL),MySQLSpatial数据源的实现主要是开源数据库的空间扩展。数据库的空间扩展不仅仅在数据表中支持几何类型的存储,而且更提供了SQL级别的集合关系判断,例如,可以直接利用SQL查询在某个多边形内的点。PostGIS是加拿大Refractions公司支持的开源项目,它为开源数据库PostgreSQL提供了空间支持。PostGIS安装后,PostgreSQL中出现一个模版数据库,新建空间数据库时只需以PostGIS为模版即可。PostGIS在SQL级别上实现了基本的空间运算功能。另外绝大多数开源GIS软件(即使是不严格遵守OpenGIS标准的)都支持PostGIS数据表的直接载入,读写等功能。毋庸置疑,PostGIS是OpenGIS数据源最佳实现。目的是促进采用新的技术和商业方式来提高地理信息处理的互操作性(Interoperability),致力于消除地理信息应用(如地理信息系统,遥感,土地信息系统,自动制图/设施管理(AM/FM)系统)之间以及地理应用与其它信息技术应用之间的藩篱,建立一个无“边界”的、分布的、基于构件的地理数据互操作环境3.中间件代表:GeoTools(Java)中间件在系统中扮演连接数据和服务的角色。GeoTools承担了从各种数据源(如PostGIS,GML,Shapefile,WFS)读取数据并将数据标准化的工作。Feature接口就定义在GeoTools中,不同数据源的数据读出后被统一成包含一个Geometry成员(定义在JTS中)的Feature接口的实现。这样,进一步的操作只需面向Feature即可,省去了高层软件对于不同数据源的解读过程。另外,GeoTools还是OpenGIS标准的全面实现,其中包括Filter、坐标转换、GML。GeoTools和JTS还有GeoAPI到底是什么关系?JTS是加拿大的VividSolutions做的一套开放源码的JavaAPI。它提供了一套空间数据操作的核心算法。为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API。GeoAPI为OpenGIS规范提供一组Java接口。Geotools是一个开源的JavaGIS工具包,可利用它来开发符合标准的地理信息系统。Geotools提供了OGC(OpenGeospatialConsortium)规范的一个实现来作为他们的开发。简单而言:GeoTools的目标是致力于开发一个符合规范的Gis工具包,既然是工具包,那么就要有很多工具用来对付构建一个完整的地理信息系统时会碰到的问题,常见的问题比如:投影的转换,基准面的设定,空间数据对象的渲染和样式,各种数据源的支持,各种GIS文件格式支持,空间数据过滤与搜索。。。。等等的问题。在开发这些工具的时候,恰好在处理空间数据图形关系的时候,有一个非常好的解决方案,那就是JTS,JTS解决了对象与对象之间拓扑关系的判定和计算,并提供很多有用的算法来解决对象的面积,长度。。。等等等的问题。这样而言,JTS就相当于GeoTools中的一个子模块。但因为这个模块本身不是GeoTools工程的,所以在javadoc中找不到JTS的API,需要到JTS官网上面另外下载。至于GeoAPI则是GeoTools符合标准的模板。它制定了地理信息系统中所有的数据类型应该是什么,投影转换的方式有哪几种诸如此类的规范。这样兼容GeoAPI接口的GeoTools才是一个符合规范的地理信息系统工具包。4.WMS/WFS服务器WebMapService(WMS)根据用户的请求返回相应的地图(包括PNG,GIF,JEPG等栅格数据或者SVG,WEBCGM矢量数据)。代表:GeoServer(Java),MapServer(PHP)地图服务器扮演向网络中的客户端提供地图服务的角色。这类地图服务器可以接收统一规范的WMS和WFS请求(request),返回多种格式的数据。这个过程有WMS/WFS规范的严格规定,所以,对客户端来说其地图服务器的实现究竟是什么并不会造成太大影响。GeoServer是OpenGISWeb服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过GeoServer可以比较容易的在用户之间迅速共享空间地理信息。GeoServer兼容WMS和WFS特性;支持PostGIS、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo;支持上百种投影;能够将网络地图输出为jpeg、gif、png、SVG、KML等格式;能够运行在任何基于J2EE/Servlet容器之上;嵌入MapBuilder支持AJAX的地图客户端OpenLayers;5.客户端代表:OpenLayers/MapBuilder(JavaScript),uDig(Java),QGIS(C++)客户端分为浏览器和桌面客户端程序两种。以OpenLayers为代表的B/S系统客户端现在已经非常强大,它可以封装WMS请求,在浏览器上实现地图的切片载入功能。另外拖动、缩放都功能也非常完善,可以实现跨浏览器操作。最近的OpenLayers版本还支持了矢量编辑功能,可以通过WFS-t提交。而传统的桌面客户端程序功能则更加强大,支持多种包括WMS和WFS在内的数据源,另外编辑功能、操作性也要比浏览器中的强大。6.部分数据格式1)ESRI的Shapefile格式GIS矢量文件格式的事实标准,通常由.shp,.shx,.prj,.dbf等文件组成。OpenGIS的实现软件普遍支持Shapefile的读写。Shapefile在GeoServer中可以直接作为数据源,但是这种方式并不被推荐,原因很简单,基于文件的数据源可能造成性能不佳和数据丢失。shape格式文件最少包含3个文件,他们的后缀是:.shp,.dbf,.shx。.shp存储地理形状和位置信息,.dbf存储属性信息,.shx是索引文件。2)MapInfo的.mif/.mid格式.MIF的文件,它主要用来保存空间对象的几何数据;.MID的文件,它主要用来保存与几何数据相对应的属性数据;3)GMLGML是OpenGIS的标准规范之一,它基于xml描述地理数据。于Shapefile相比,xml更容易读写,易于在网络中以各种形式传播。同时,xml还具有可读性,人可以理解和辨识。GeoTools实现了GMLDataStore,因此在GeoServer中GML也可以直接作为数据源(需要下载GML扩展)。同时,GML的数据源为数据源动态化提供了实现的思路和可能性。四、相关详细介绍1.数据库:PostgisPostgreSQL是一种对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大、特性最丰富和最复杂的自由软件数据库系统。PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。目前开源空间信息软件领域最性能优秀的数据库软件当属PostgreSQL数据库,而构建在其上的空间对象扩展模块PostGIS则使得其成为一个真正的大型空间数据库。PostGIS简介PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。PostGIS的版权被纳入到GNU的GPL中,也就是说任何人可以自由得到PostGIS的源码并对其做研究和改进。PostgreSQL详细教程地址:特性PostGIS支持所有的空间数据类型,这些类型包括:点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、多线(MULTILINESTRING)、多多边形(MULTIPOLYGON)和集合对象集(GEOMETRYCOLLECTION)等。PostGIS支持所有的对象表达方法,比如WKT和WKB。PostGIS支持所有的数据存取和构造方法,如GeomFromText()、AsBinary(),以及GeometryN()等。PostGIS提供简单的空间分析函数(如Area和Length)同时也提供其他一些具有复杂分析功能的函数,比如Distance。PostGIS提供了对于元数据的支持,如GEOMETRY_COLUMNS和SPATIAL_REF_SYS,同时,PostGIS也提供了相应的支持函数,如AddGeometryColumn和DropGeometryColumn。PostGIS提供了一系列的二元谓词(如Contains、Within、Overlaps和Touches)用于检测空间对象之间的空间关系,同时返回布尔值来表征对象之间符合这个关系。PostGIS提供了空间操作符(如Union和Difference)用于空间数据操作。比如,Union操

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功