使用ArcMap进行数据编辑过程中,在平移、创建要素时,可能会遇到"坐标或测量值超出范围"的错误。
一般地,将其导出Shp文件再导入地理数据库可解决此问题,但这是为什么呢?阅读完本文,你将得到答案。
官方帮助
官方帮助通常才是最好的老师!
ESRI的官方文档更是强大到"令人发指",不是国产软件能比拟的。关于此问题的描述与解决方案如下:
这段话要字斟句酌,因为它是"救命"最好的稻草。翻译过来的读起来有些拗口,但比直接看英文要好一些,它的大致意思是说:
(1)每个要素类都有一个XY属性域(即坐标范围,如"xMin yMin xMax yMax"),如果输入的要素坐标超过这个范围,则报错(要素数据集、栅格数据也有XY属性域,Shp文件没有,下面均以要素类来说明);
(2)一般情况下,要素类XY属性域不严格,即一般是坐标系的最大范围,如"-180 -90 180 90",一般可以任意编辑;有的要素类则比较严格,只能在指定范围内创建、平移、编辑要素;
(3)解决方案一:使用追加工具,将环境中"XY属性域"设置"与输入相同",如果目标数据集没有坐标系统,需要先定义一个;(个人认为,这种方案的做法不对,后面分析原因)
(4)解决方案二:创建一个较大XY属性域的新要素类。(这里说得也不完整,实际工作中,还需要把已有的数据导入到新建要素类中)
如果仔细阅读官方帮助,反复测试数据,应该能解决问题,但官方解释并没说清楚原因,我们来仔细分析一下。
问题分析
遇到问题,一定要相信,你不是第一个人(或许只是你难以描述问题罢了),学会~科~学~上~网。据官方解释和实践证明,一切都是XY属性域在作怪。
问:XY属性域是什么时候创建的?
在新建要素类,根据要素类的空间参考它会自动计算XY属性域,默认为空间参考的域(Domain),即要素类空间参考X、Y坐标最大范围。当然,如果新建时不选择坐标系统,它也会给你创建一个较大的范围(-450359962737.05,450359962737.05,仅对9.2版本以后的地理数据库),不信你试试。
问:XY属性域怎么修改?
无法直接手动修改,可通过以下三种方式:导出Shp文件后再导入、设置工具XY属性域环境、新建要素类。详见"解决方案"。
问:为什么XY属性域会变化?
既然创建要素类时,会自动创建一个较大的XY属性域范围,又无法手动修改,那么它为什么会变小,以至于报错。对于本文所使用的测试数据,推测原因是导入了没有空间参考的Shp文件,具体如下:
(1)由于原始的Shp文件空间参考是unkown,在编辑时,Shp文件没有XY属性域的概念,因此不会被限制,故不会报错;
(2)编辑Shp文件完成后,在未定义坐标的情况下,直接导入地理数据库,此时会按照数据的要素范围(Extent)来生成XY属性域(Domain),稍微编辑超出范围则会报错;
(3)编辑Shp文件完成后,先定义数据坐标系统后,然后导入地理数据库,此时会按坐标系统的域(Domain)来生成XY属性域(Domain),这样就不会报错了。
解决方案
下面综合官方的解决方案,通过测试,可使用以下三种方法解决此问题:
方案一:导出导入法
方法:将数据导出为Shp文件,在保证有空间参考的情况下,再导入回去;
优点:此方法操作简单,能方便保留要素类的原始数据。
缺点:导出Shp文件后可能会造成字段名称被截取(Shp字段名不能超过10个字符);属性域、制图表达等(地理数据库特有功能)信息会丢失。
方案二:环境设置法
方法:使用合并工具,重新生成新要素类,在执行工具前,通过设置"环境"-"高级地理数据库"-"XY属性域"设置为 "如下指定"(指定较大的新的XY属性域);为什么使用追加工具不可以,是因为追加工具并未生成新的要素类(XY属性域改变仅对生成新的输出要素类有效),所以官方解决方案一不能实现。
优点:保留了导出导入法的优点,并避开其缺点。
缺点:如果要素类太多,批量操作麻烦;特别是遇到字段结构有差异的情况。
方法三:新建要素类法(推荐)
方法:先使用"创建要素类"工具批量创建空的要素类,模板文件选择以前对应的要素类;然后使用"追加"工具把数据复制过去。
优点:安全、便捷。
问题小结
1、XY属性域不是"属性域",也不是"要素范围",但它同属性域一样,可以限制数据有无效输入,所以,在某种程度上,也有它存在的合理性。将数据结构导出为xml文件,可以查看和修改XY属性域,如下图所示:
2、数据处理时牢记:不要使用Shp文件编辑数据(Shp文件常用来数据交互),不要将无空间参考的Shp文件导入地理数据库(先定义空间参考再导入);
参考资料
000594错误:http://resources.arcgis.com/zh-CN/help/main/10.2/#/na/00vp00000015000594/
输出 XY 属性域:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#//001w0000001m000000
科~学~上~网:http://www.ggfwzs.com/