空间信息到GML的转换

  GML已经成为大家所接受并且容易理解的一种空间信息的交换格式标准,所以将其它GIS数据转换为GML格式进行发布就具有广泛的实用价值和市场前景。不久的将来,空间信息会大量的以GML格式存在,人们可以方便的进行空间信息的共享与交换。由此就会引发出一个非常重要的问题,那就是如何将现有的一些空间信息转换成GML格式,更好的实现各类空间数据共享。
        目前,大量的空间数据都是以特定的文本数据格式进行存储的,最常见的GIS数据格式包括ArcInfo公司的Shp文件,MapInfo公司的Mif文件等等。
根据GML3规范中的Schema的描述、Shp文件和Mif文件的格式,就能将Shp文件和Mif文件转换为GML文件。在转换过程中,首先要创建一个GML格式文档,添加GML描述信息,然后循环的将Shp或者Mif文件中的地理信息元素转换为GML中的几何图元。
以ArcInfo公司的Shp文件为例。该文件是一个二进制文件,包含一个固定长度的头文件。该头文件长度为100个字节,其中包含整个文件的重要属性信息。例如:从第24个字节开始到28个字节描述的是文件的长度;从第28个字节开始到第32个字节描述的是文件的版本;从第32个字节开始到第36个字节描述的是文件中包含图形的类型;从第36个字节到第84个字节,每八个字节为一组,分别描述该图形文件的边界范围(Xmin,Ymin,Xmax,Ymax,Zmin,Zmax)。第100个字节以后是关于对象数据的描述,其中包括对point,line,polygon等几何类型的描述。每个地理对象是由一组字节决定,每组字节的长度根据所描述的几何类型的不同,字节长度也相应不同。以其中的Point点对象为例,从第0-4个字节描述对象的类型,从第4-12个字节描述点对象的X坐标,从第12-20个字节描述点对象的Y坐标。
我们将Shp文件中描述的各种地理信息与GML几何图元进行对应,其对应关系如下表所示。
Shp文件
GML文件
Point
Point
PointM
Point
PointZ
Point
MultiPoint
Point 或 MultiPoint
MultiPointM
Point 或 MultiPoint
MultiPointZ
Point 或 MultiPoint
Polyline
LineString
PolylineM
LineString
PolylineZ
LineString
Null shape
DBNull.Value
Polygon
Polygon
PolygonM
Polygon
PolygonZ
Polygon
MultiPatch
Polygon
 
除了以特定文本数据格式存储以外,还有相当一部分地理信息是存储在数据库中的(一般都是存储在关系数据库中)。将这些地理信息转换为GML文件的原理和上述方法是类似的,只要找到地理信息与GML几何图元之间的对应关系,就可以编程进行转换。
    还有一种常见的地理信息格式就是栅格数据( Raster Data )。栅格数据是由正方形或者矩形栅格点组成,每个栅格点或者像素的位置由栅格所在的行列号来定义,所对应的数值为栅格所要表达的内容的属性值。栅格图像的编码和 XML 格式的编码完全不同。它不能从语法上进行分析,不能验证正确性,也没有良好的格式。而且,它的每一个栅格点的数据值都是固定不变的,将其转化 XML 标准的格式的时候,没有任何操作的灵活性 。将栅格图像转换为 GML ,可以将其中所有的栅格点转换成为 GML 中的 Point 。由于通常栅格图像都包含着大量的信息,因此转换后的 GML 文件一般也都包含了大量的点信息。目前来看,将栅格数据转换为 GML ,并没有太多的实际意义。况且, GML3 中已经支持栅格数据,其中对覆盖模式的描述与栅格数据集是等价的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值