如何将GML数据转换成ESRI shapefile格式,java平台
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中已经支持栅格数据,其中对覆盖模式的描述与栅格数据集是等价的。
读取GML格式的文件
我记得GML好像是GameMaker的脚本文件……你用2113记事本先5261打开一下,如果没有问题的那么直接就可以用FileInputStream或者4102Scanner来读取.不然的话就得找有没有相关的jar包了,就像xml文件用专门的包1653来读非常简内单,自己写代容码去读就太麻烦了.
有人用Mark Newman 复杂网络的数据吗?gml格式的数据怎么处理?怎么生成邻接矩阵?
给你个matlab版本的程序,可以直接读取gml得到邻接矩阵,留下你邮箱
用JAVA怎么实现GML文档的R树索引结构
息的交换格式标准,所以将其它GIS数据转换为GML格式进行发布就具有广泛的实用价值和市场前景.不久的将来,空间信息会大量的以GML格式存在,人们可以方便的进行空间信息的共享与…
开发一个移动地图应用,不是用谷歌或者百度的API,是要解析一个GML文件,然后用Java的类画出来.
只要有对应点和数据,理论上都可以画出来
怎么生成KML文件
KML生成查看工具是一款可以帮助用户生成查看KML文件的工具,该kml生成工具可以将DT数据和CQT数据导入直接生成KML文件,方便用户将坐标文件等导入googleearth中.
复杂网络gml格式转邻接表和邻接矩阵的方法?
#include"tree.h"int visited[MAXV]; void MatToList(MGraph g,ALGraph *&G)//将邻接矩阵g转换成邻接表G{ int i,j,n=g.n; //n为顶点数 ArcNode *p; G=(ALGraph *)malloc(sizeof(ALGraph)); for (i=0;iadjlist[i].firstarc=NULL; for (i=0;i=0;j–) if (g.edges[i][j]!…
GML文件用甚么打开!?
记事本记事本记事本记事本记事本
webgamelistgamelist.gml 这是个什么文件啊.它就出来了
我记得gml好像是gamemaker的脚本文件……你用记事本先打开一下,如果没有问题的那么直接就可以用fileinputstream或者scanner来读取.不然的话就得找有没有相关的jar包了,就像xml文件用专门的包来读非常简单,自己写代码去读就太麻烦了.
如何用altium designer将Gerber文件反向生成PCB
方法/步骤
新建一个CAM文件。
打开Altium designer14.2软件,File——New——Cam document。
导入Gerber文件。
在新建的CAM文件中,File——Import——Gerber,导入Gerber文件。
选择需要打开的Gerber文件,点打开,在弹出的窗口选择OK确定。
成功导入。(这时会有一个.log文件生成,如有错误会在里面显示)
导入NC Drill和网表文件。
在新建的CAM文件中,File——Import——drill,导入NC drill文件。
Tool——Netlist——extract,提取导入的Gerber文件的网络(将相连的track视为同一网络,网络名随机生成)。如果不导入网络表将不能生成PCB文件。
File——Export——Export to PCB,将CAM文件导出到PCB。如果上一步没有网络表的生成,将不能实现PCB导出。
END
注意事项
只是这样生成的PCB,所有元件都分成了线段,转换过来的PCB有时候并不是很理想,建议用更专业一点的工具。