Shp格式数据文件到GML格式的转换

时间:2022-06-28 17:10:53

实现 Shapefile格式数据到GML格式数据的转换过程可分为两个大步骤,一是依据Shapefile数据文档资料获取数据,二是依据GML标准构建GML格式数据。从上面对shapefile 数据 格式和GML格式的分析可知,对shapefile的文档资料的获取主要是读取坐标文件和属性文件,根据dbf的字段信息描述创建相应的Schema文件,将dbf的字段名作为Feature元素的 孩子 节点,根据shp文件存储的几何类型选取GML的Geometry.xsd定义的标记作为其标记。构建GML的 过程 就是将读取的shapefile数据以GML的格式存储起来。所示是我们设计的一个将Shapfile文件转化为GML文档的算法 流程 图。利用这个算法,可以有效地进行Shapfile文件到GML文档的转换。

 

Shp格式数据文件到GML格式的转换

Shape file到GML文档转换算法流程

        参照开源代码GeoTools类库、ASSC(Another Simple Shapefile Converter)类库,利用这两者类库中提供的针对Shapefile格式、Shapefile到GML格式转换的基础类,快速、方便、 有效 地完成SHP-GML(Shapefile格式到GML格式)的转换。表示利用GeoTools、ASSC基础类库实现Shapefile数据获取过程。

Shp格式数据文件到GML格式的转换

shape file数据获取过程         具体说明如下:首先,定义一个新的ShapefileInfo类,利用该类获取Shapefile文件中数据类型的描述 信息 、记录数信息,并存放在一个temp向量中。接着存入temp向量的还有DBF文件中的字段名、字段类型、字段描述信息,ShapefileInfo类中的坐标范围、字段个数、记录个数、字段的长度信息。最终存入temp向量的是SimpleClassData类,包含Shapefile类型描述、空间数据配色表与文件名信息。至此,数据的解析过程就算结束,接下来,要进行GML文档的构建。 字串1

Shape文件是按照地物类型来组织的。地物类型可以分为简单的分为点(Point)、线(Line)、面(Polygon)三种类型,一个Shape文件中只能包括一种类型的地物,即只能包括点、线或者面状地物中的一种。对于点、线、面三种类型,构建GML数据的流程如图所示。 字串5

第一步,生成一个后缀为GML的文件,写入XML的声明。第二步,从temp向量中获取GML数据的坐标范围,并且定义FeatureMember标记。第三步,依据FeatureMember判断出数据的类型。 根据 数据的类型调用不同的构建过程。对于点、线、面,其具体的构建过程基本相似,下面以线为例进行详细探讨。如果是线,那么写入LineString标记,同时构建当前线元素。如果是多线,那么写入MultiLineString标记,并分别构建多线中的每一个线元素。此时,重复以上判断,当完成SHP数据中所有类型的数据转换之后,将这几种类型的GML标记整合到一个GML文件中,SHP数据到GML数据的转换便成功完成。 字串1

Shp格式数据文件到GML格式的转换

Shp到GML构建流程图 字串2