shapefile 和 MapGIS 文件格式之间的转换
这篇文章比较老了,还是在ArcGIS 8.3平台下做的,这段时间一些朋友经常问到这个问题,现在大家早已进入ArcGIS 9.x时代,但还是可以参考一下,是否适用尚不知道,如有什么变化,欢迎大家写在后面分享一下经验。
假如在ArcGIS中存在一个Coverage图层cover,只包含线的信息没有点,我们用 ArcTools先将它转换为E00格式,命名为 cover.e00,在用MapGIS65的文件转换模块将E00文件转换为MapGIS自己默认的格式WL、WP,这时,原来的一个文件在 MapGIS 中就变成了两个,分别是点文件和线文件,经过一些匹配定位等处理后,我们将WL、WP文件重新转换为E00格式,但是在MapGIS中不能同时将点文件和线文件都转换为同一E00文件,所以就出现了cover_l.e00和cover_p.e00两个文件,在 ArcTools中转换为Coverage格式,也是两个文件。这时问题出现了,我们需要将两个Coverage文件合并,一般来说步骤很简单,但是这里却不能完成合并,因为,原始的cover图层根本就不存在点文件,在MapGIS转换过程中自动生成了一个WP点文件,而实际上这个点文件也是空的,所以将两个Coverage文件合并,如果有一个是空信息文件,将不能完成合并,本来那个空图层就是多余的,没有任何实际用途,干脆将其舍去,不会丢失任何信息,至于为什么MapGIS65会自动产生一个点文件,为什么不产生区(WT)文件呢?我就不清楚了。还有就是ArcGIS Workstation 8.3 中图层命名的最大长度不能超过13位,否则不能保存!不知道9中怎样,好像也是一样的吧。
顺便说一下,在将MapGIS的区文件WT转换为Coverage的时候,首先要用MapGIS编辑子系统中的其它-->生成Label点文件(WP),然后分别将原来的区文件和后面生成的点文件转换为shapefile,再转为 Coverage格式,在Workstation中打开点文件,在arc编辑状态下get线文件,即原始区文件转为Coverage后的文件,最后重新拓扑 clean并且save,这样才能保存完整的原始图层信息。是麻烦了一点,但是我也只知道这种办法,如果有其它方法希望和大家讨论。现在GIS数据格式都没有一个标准,不同软件的数据格式之间的转换的确存在很多问题,什么时候能有真正的标准出现呢?
假如在ArcGIS中存在一个Coverage图层cover,只包含线的信息没有点,我们用 ArcTools先将它转换为E00格式,命名为 cover.e00,在用MapGIS65的文件转换模块将E00文件转换为MapGIS自己默认的格式WL、WP,这时,原来的一个文件在 MapGIS 中就变成了两个,分别是点文件和线文件,经过一些匹配定位等处理后,我们将WL、WP文件重新转换为E00格式,但是在MapGIS中不能同时将点文件和线文件都转换为同一E00文件,所以就出现了cover_l.e00和cover_p.e00两个文件,在 ArcTools中转换为Coverage格式,也是两个文件。这时问题出现了,我们需要将两个Coverage文件合并,一般来说步骤很简单,但是这里却不能完成合并,因为,原始的cover图层根本就不存在点文件,在MapGIS转换过程中自动生成了一个WP点文件,而实际上这个点文件也是空的,所以将两个Coverage文件合并,如果有一个是空信息文件,将不能完成合并,本来那个空图层就是多余的,没有任何实际用途,干脆将其舍去,不会丢失任何信息,至于为什么MapGIS65会自动产生一个点文件,为什么不产生区(WT)文件呢?我就不清楚了。还有就是ArcGIS Workstation 8.3 中图层命名的最大长度不能超过13位,否则不能保存!不知道9中怎样,好像也是一样的吧。
顺便说一下,在将MapGIS的区文件WT转换为Coverage的时候,首先要用MapGIS编辑子系统中的其它-->生成Label点文件(WP),然后分别将原来的区文件和后面生成的点文件转换为shapefile,再转为 Coverage格式,在Workstation中打开点文件,在arc编辑状态下get线文件,即原始区文件转为Coverage后的文件,最后重新拓扑 clean并且save,这样才能保存完整的原始图层信息。是麻烦了一点,但是我也只知道这种办法,如果有其它方法希望和大家讨论。现在GIS数据格式都没有一个标准,不同软件的数据格式之间的转换的确存在很多问题,什么时候能有真正的标准出现呢?