开放框架下GIS开发方式研究

Download Report

Transcript 开放框架下GIS开发方式研究

硕士论文答辩
开放框架下GIS开发方式的研究
专
业
地图学与地理信息系统
指导教师
黄国明、辜寄蓉
研究生
王勉
目录
前言
+
问题的提出
+
研究背景与意义
+
研究现状
基础理论
开放框架的主要内容
结论与展望
2
问题的提出
随着开源软件的产生和发展,开源GIS软件也得到了迅速的发展。出
现了许多优秀的开源项目,产生了许多性能优秀的开源GIS软件。同
时OpenGIS运动的发展,产生了许多的开放GIS标准。利用开源资源
和开放GIS标准构架GIS应用也将形成新的研究领域。本论文旨在对基
于开源资源和开放GIS标准的GIS应用开发方式进行研究。
3
目录
前言
+
论文研究选题
+
研究背景与意义
+
研究现状
基础理论
开放框架的主要内容
结论与展望
4
论文研究背景与意义
论文研究背景:
1.
开源软件的市场份额与地理分布;
目前(截至2006年底)全球接触和应用开源软件的企业占到了总
数的50%以上,美国则高达80%~90%。尤其是在过去的2年
(2004-2006)中,越来越多欧洲企业都开始使用开源软件,2005
年底已经超过40%,主要分布在电信行业、媒体行业和公共管理部
门。
开源软件的主要领域有Web服务器、服务器操作系统、桌面操作
系统、Web浏览器、数据库、电子邮件及其他信息通信领域的基础
系统。
5
2.开源软件的发展动力;
从本质上说,开源软件的开发模式和许可机制更加适合于面向服务
的商业模型,其利润核心并不是纯软件开发或者是任何形式的软件产
品,而是软件服务。因此,开源模式成功吸引了业务模型已经是面向
服务的企业(如IBM),或是那些占据特定市场(需要大量客户化和
定制支持)的软件企业(如甲骨文和SAP),或者那些主要的硬件企
业(飞利浦和诺基亚)。
6
3.GIS开源软件与开放GIS的发展;
首先,在技术的标准方面有OGC(Open Geospatial Consortium)制
定了许多地理信息开放性的标准。其次,出现了大量的GIS相关的开
源项目如:GDAL、NetTopologySuite、SharpMap、Worldwind、
MapWindow、PostGIS等。
7
论文研究的意义:
 节省项目软件平台成本,增加数据与服务的投入。
 开源GIS软件更加小巧,安装和使用更加简便。
 开源GIS软件往往都采用开放标准,在这个框架下开发的系统
兼容性更好。
 开源软件版本更新速度一般比商业软件平台更快速,而且可
以更快的引入一些新的技术。
 促进商业模式创新。
8
目录
前言
+
论文研究内容
+
研究背景与意义
+
研究现状
基础理论
开放框架的主要内容
开放框架下GIS系统的开发
结论与展望
9
论文研究现状
开源GIS技术虽然先进,但是缺乏良好的能够满足商用的发行版本,
因此涉足开源GIS领域的多是技术爱好者和科学家,而少有商业人士问津。
如果能够提供一个比较系统的、达到商用要求的开源GIS解决方案,并能
获得稳定的发行版,如同Linux-Apache-MySQL-PHP那样,开源GIS前途
将是不可限量。
开放GIS的标准虽然体系完善,但是常常停留在理论上,应用研究相
对较少,而且也很少有研究将开放 GIS和开源GIS联系起来研究。
10
目录
前言
基础理论
相关概念
+
开源GIS
+
开放GIS
开放框架的主要内容
开放框架下GIS系统的开发
结论与展望
11
开源GIS
开源(Open Source,开放源码)被非赢利软件组织(美国的Open Source
Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以
被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。
开源GIS是指采用开源方式开放的GIS软件。开源软件和开源GIS的主要主要参与者
有个人、基金会以及商业公司。
12
目录
前言
基础理论
相关概念
+
开源GIS
+
开放GIS
开放框架的主要内容
开放框架下GIS系统的开发
结论与展望
13
开放GIS
自从1980年代晚期GIS逐渐风行各国以来,各单位多致力于建立地理信息数据库以
及相关的应用系统的开发。GIS很早就注意到这个问题,所以才有所谓“标准制定”的
研究。开放GIS(Open GIS)的理想是使地理信息和地理信息系统可以夸平台、不经转
换直接使用。国际组织Open Geospatial Consortium(OGC)是Open GIS的主要推动者
。
14
目录
前言
基础理论
开放框架的主要内容
开放框架下GIS系统的开发
结论与展望
15
开放框架的主要内容
前面介绍的开源GIS和开放GIS在这里统一定义为“开放框架”。这里“开放框架
”是指使用指开放GIS 标准、开源GIS数据库、开源GIS中间件、开源GIS软件平台等构
成的一个整体。“开放框架”如下图所示主要分为4个层次:标准层、数据库层、组件
层、平台层,4个层面之间有从低到高成为一个完整的体系。
16
开放框架的主要内容
平台层
组件层
数据库层
标准层
开放框架
“开放框架”构成
17
开放框架的主要内容
平台层

桌面平台:GRASS、OSSIM、Sharpmap、Worldwind、
Mapwindow

。
Web平台:GeoServer、MapServer、Mapnik、
OpenLayers、TileCache。
组件层

数据管理组件:GDAL、OGR、GeOxygene、GML4J。
 分析组件:JTS 、GSLib、PROJ.4。
数据库层
标准层

PostGIS、MySQL空间扩展。

OGC标准:GML、Simple Features specifications for SQL、
WMS、WFS、KML 。

ISO/TC 211。
18
目录
前言
基础理论
开放框架的主要内容
开放框架下GIS系统的开发
+
系统需求
+
系统设计
+
系统实现
结论与展望
19
系统需求
示范系统主要需求是利用地图为背景管理房地产有关的楼盘、土地、广告等信息,
实现地产数据的共享,并实现信息的属性和空间查询以及数据的统计。同时系统需要用
桌面应用以及Web应用。在企业内部的用户可以通过桌面应用程序访问服务器上的地产
数据,在企业外部用户也可以通过浏览器访问Web应用。
20
目录
前言
基础理论
开放框架的主要内容
开放框架下GIS系统的开发
+
系统需求
+
系统设计
+
系统实现
结论与展望
21
数据库设计
basemap
rsis
桥梁
行政区划
道路中心线
立交桥
绿化带
铁路
景点
水系
商业点
餐饮酒店
医院
学校
政府单位
楼盘
土地
广告
地产分区
22
系统选型
23
系统构架
系统选型
24
目录
前言
基础理论
开放框架的主要内容
开放框架下GIS系统的开发
+
系统需求
+
系统设计
+
系统实现
结论与展望
25
空间数据库的实现
pgAdmin工具
26
空间数据库的实现
新建数据库命令
27
空间数据库的实现
建库参数
28
空间数据库的实现
建库参数
29
空间数据库的实现
模板自动生成空间操作函数
30
空间数据库的实现
模板自动生成空间操作函数
31
空间数据库的实现
模板自动生成存储空间信息的系统表
32
空间数据库的实现
生成新表的命令
33
空间数据库的实现
添加空间字段
34
空间数据库的实现
数据处理与转换
这个项目里采用ArcGIS Desktop进行数据的处理和转换。地图的底图我们采用纸质地
图进行扫描生成的tif图片,然后使用ArcMap进行地理参考和图片的数字化。
使用PostGIS的shp2pgsql命令行将shapefiles载入到PostGIS数据库中。
# shp2pgsql shaperoads myschema.roadstable > roads.sql
# psql -d roadsdb -f roads.sql
35
桌面系统的实现
系统采用SharpMap作为GIS开发平台。SharpMap是一个小巧的基于.net 2.0使用C#
开发的Map渲染类库,可以渲染各类GIS数据(目前支持ESRI Shape和PostGIS格式),
可应用于桌面和Web程序。其网址为:http://sharpmap.iter.dk/ 和
http://www.codeplex.com/SharpMap SharpMap的发布许可(License)为GNU General
Public License,开发者为Morten Nielsen(http://www.iter.dk/)。
36
桌面系统的实现
使用PostGIS空间查询运算符进行空间查询的例子。区别于一般的GIS开发,查询通
过GIS组件
SELECT id, the_geom FROM thetable
WHERE
the_geom && 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'
AND
Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))';
的接口实现。在OGC 的标准中已经定义了数据对空间查询需要进行的支持,PostGIS只
是对OGC标准进行了实现。
37
桌面系统的实现
添加空间数据的SQL命令如下:
INSERT INTO gtest (ID, NAME, GEOM) VALUES (1, 'First Geometry',
GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1));
同样的对数据修改也通过SQL语句实现,这与一般的关系数据库系统数据的更新方式相
同。
38
桌面系统的实现
SharpMap在的地图渲染功能非常强大,但是在使用中发现SharpMap在数据渲染的时候标
注时只能将标注的字符显示在图形外包矩形的中心内而不是图形的质心。
标注
按图形最小外包矩形中心的标注
39
桌面系统的实现
选用.net平台中间件NetTopologySuite,实现代码如下:
GisSharpBlog.NetTopologySuite.Geometries.Geometry
pNTSGeom=
SharpMap.Converters.NTS.GeometryConverter.ToNTSGeometry(feature,m_pGeometryF
actory);
System.Drawing.PointF
position =
map.WorldToImage((SharpMap.Geometries.Point)(SharpMap.Converters.NTS.Geometr
yConverter.ToSharpMapGeometry((GisSharpBlog.NetTopologySuite.Geometries.Geom
etry)pNTSGeom.Centroid)));
40
Web应用的实现
这里的web地图服务器考虑使用SharpMap来搭建。SharpMap不但具有开发嵌入式系统,
同时也是一个符合WMS服务器的实现。具体实现如下:
1.下载SharpMap0.9的web演示代码。
2.在vs2005中以网站的方式打开,打开编辑App_Code\MapHelper.cs类编辑地图渲染的
代码,可以将桌面应用中的地图渲染拷贝过来。
41
42
3. 编译代码,然后配置在IIS中就可以实现WMS地图服务的发布。。
43
地图缓存服务器的实现
使用SharpMap发布WMS地图服务非常容易,但是WMS的缺点是地图显示的效率相对
较低。用户每次请求地图都需要动态的生成地图图片,并传输给客户端浏览器,而且
WMS的图片的传输的整张进行传输没有切割分块。这里准备采用TileCache作为中间件,
可以将缓存用户WMS的请求到本地图本地硬盘,提高用户访问地图的速度。TileCache主
要基于Python和Apache服务器,这里介绍TileCache在IIS上的部署和配置。
44
45
1.下载最新的Python版本地址是http://www.python.org/download/。运行Python的
windows的安装程序默认的安装位置是“C:\Python24\”。
46
2.下载TileCache从http://tilecache.org/tilecache-2.01.zip。将文件解压到
“C:\Inetpub\wwwroot\tilecache”。
47
3. 为了能让IIS解析Python脚本我们需要选中“tilecache”网站,然后单击右键选中
属性。选择“目录”选项卡的“应用程序设置”节“应用程序”名称的值应该是不可用
的,点击“创建”按钮设置应用程序的名字为“tilecache”然后退出对话框。
48
49
4.在 “C:\Inetpub\wwwroot\tilecache\”下创建“Cache”文件夹。 这个文件夹将用
来存放缓存生成的图片。 可以这个文件夹Internet 来宾帐户的许可。
5.编辑“C:\Inetpub\wwwroot\tilecache\tilecache.cfg”文件。改变“[Cache]”的
“base”的值为“C:\Inetpub\wwwroot\tilecache\Cache”。
[cache]
type=Disk
base=C:\Inetpub\wwwroot\tilecache\Cache
50
7.改变[basic]下的“url”值到SharpMap的链接。
[basic]
type=WMS
#url=http://labs.metacarta.com/wms/vmap0
url=http://localhost:1835/SharpMapServer/wms.ashx
extension=png
51
客户端的实现
在OpenLayer的官方网站http://sourceforge.net/projects/openlayer下载最新的安装
程序。将下载的压缩包解压拷贝到IIS中TileCache的目录下。
52
53
运行“C:\Inetpub\wwwroot\tilecache\index.html”文件就可以浏览WMS的地图服务。
54
55
目录
前言
基础理论
开放框架的主要内容
开放框架下GIS系统的开发
结论与展望
56
结论
通过使用开放资源进行GIS应用开发表明,利用开放资源可以构建稳定功能强大的
GIS应用。同时使用开放框架的GIS开发与采用商业平台具有某些优势。
1)节省软件平台成本,增加对数据投入以及软件相关服务的投入。
2)开源GIS软件更加小巧,安装和使用更加简便。商业软件往往考虑了太多的功能因此
体系庞大如:ESRI的嵌入GIS平台ARCGIS Engine的安装程序都有几百兆之大,而开源软
件往往专注于某一平台和某一方面往往灵活小巧。
3) 开源GIS软件往往都采用开放标准,在这个框架下开发的系统兼容性更好。
4) 开源软件版本更新速度一般比商业软件平台更快速,而且可以更快的引入一些新的
技术。而不像商业软件要考虑很多商业上的因素,减慢软件升级速度。
57
开源GIS与开放GIS 毕竟是新鲜事物,在当前的应用中也有一些缺陷有待完善。
1)开源软件是近年才得到快速的发展,而开源GIS的发展则更晚 。因此开源GIS的用户
群相对较少同时资料和文档也相对较少。
2)开源GIS软件的还缺少相应的软件服务商,相对难于购买服务 。
3)开放GIS标准还不够完善。有些复杂的GIS模型如:网络、拓扑分析等难以实现。
58
展望
随着OSGeo(Open Source Geospatial Foundation)等组织的成立以及商业公司
的加入,将大大的推动开源GIS的发展。众多的开放资源按开放GIS标准、开源GIS数据
库、开源GIS中间件和开源GIS平台整合形成完整的“开放框架”。应用开放GIS标准、
开源GIS数据库、源GIS中间件以及开源GIS平台等资源,以及它们之间的相互结合可以
开放出稳定、高效的GIS系统。本文同时通过应用项目的开发说明这个开放框架体系的
应用与实现的可行性。相信随着开放GIS标准的完善以及开源GIS软件的发展,这样的开
发模式将越来越具有生命力。“开放框架”就像一个资源库,同时这个资源库在不断的
扩大和发展每过一段时间都会发现一些新的优秀的开源项目出现。这要求我们对开放框
架由各整体的了解,同时也要求我们需要更多关注和了解开源项目的动态扩充自己的视
野。不久的将来GIS领域也会出现类似LAMP(Linux+Apache+MySQL+PHP)这样的开源开
发构架,最终成为商业平台的替代。
59
谢谢!
60
问题与回答
61