如何将GML数据转换成ESRI shapefile格式,java平台

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:53:58
我用的是Eclipse平台,好像是可以用GeoTools,但是里面的类组织得太过复杂,不会用,想知道有没有更好的。
如果有知道怎么做的朋友能不能说详细一点,有代码最好,没有的话说说流程。

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
M