OpenGIS 介绍:数据源

32 views
Skip to first unread message

honboye

unread,
Jan 24, 2008, 11:49:41 PM1/24/08
to GIS研究分析设计开发
Shapefile
ESRI的Shapefile格式是GIS矢量文件格式的事实标准,通常由.shp, .shx, .prj, .dbf等文件组成。OpenGIS的
实现软件普遍支持Shapefile的读写。Shapefile在GeoServer中可以直接作为数据源,但是这种方式并不被推荐,原因很简单,基于
文件的数据源可能造成性能不佳和数据丢失。

GML
GML是OpenGIS的标准规范之一,它基于xml描述地理数据。于Shapefile相比,xml更容易读写,易于在网络中以各种形式传播。同
时,xml还具有可读性,人可以理解和辨识。GeoTools实现了GMLDataStore,因此在GeoServer中GML也可以直接作为数据源
(需要下载GML扩展)。同时, GML的数据源为数据源动态化提供了实现的思路和可能性。

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

MySQL Spatial
MySQL 是开源数据库的大鳄,从MySQL4.0开始加入了Spatial扩展功能,实现了OpenGIS规定的几何数据类型,在SQL中的简单空
间运算。但是从 4.0之后到现在,MySQL的Spatial部分一直没有继续的更新和增强。加上早先MySQL在SQL上对空间运算支持的不完善
(只支持基于最小外接矩形的关系判断),所以MySQL是开源数据源中一个不太让人满意的选择。不过由于MySQL在小型项目上的广泛引用,在一些情况
下也是可以以MySQL 为数据源的。

db4o?: 对象数据库作为数据源的可能性
OpenGIS的系统架构完全是基于一个面向对象的模型的,而传统的关系数据库、Shapefile文件是现在应用的主流。在地理描述的过程中,关系数
据库的特性并没有被完全发挥,而为此还需要有中间件做 ORM的工作。试想直接将FeatureType和Features以对象形式存入对象数据库,
整个系统至少在理论上可以减少一层。不过,以对象数据库作为数据源,还需要对象数据库的性能进一步提升。而之后的和已有软件的对接应该不成问题,因为
db4o可以直接存储Feature对象和Geometry对象。
但是因此产生的数据对实现的依赖性又是一个问题:数据和实现紧密耦合,数据中捆绑了代码,虽然db4o号称支持Java和.NET的的互操作,但是对于
其它实现来说又成了问题。从这个角度来说,对象数据库作为数据源是一种倒退。

为什么没有KML?
KML 作为一种新的标准(没有在意最后是否通过),它的作用主要是网络中地理信息的传输。KML是一种面向客户端设计的数据形式,这是它不能取代
GML地位的原因,同时也是它在GoogleEarth和很多地图应用上远强于GML的原因。对照一下KML和GML的形式就很容易理解,GML将属性
数据存储为 Element,而KML则是以超文本的形式存储属性数据,前者便于数据读取,后者便于客户端表现。于KML很类似的就是GeoRSS,效
果是相似的。
来源:Classicning Daily Log
Reply all
Reply to author
Forward
0 new messages