1.要素属性:
1.问题描述
提示:主要是针对要素属性挂接、单字段内的字符串内长度的问题:
例如:项目A需要挂接要素的属性,已知项目A的要素简介存储在xlsx文件内,且各个要素简介长度不一致,字符串长度范围[80,1800],现需要将各个要素的简介属性挂接到空间要素(点、线、面等)上。
2.实验测试分析
提示:主要是针对字段为文本类型的属性精度丢失问题:
数据精度对比分析表:
在使用shp数据挂接属性的时候:
arcgis早期版本:主要是arcgis10.3(不含该版本,版本号不是很确定)之前的版本,在Esri的Shapefile文件中,字段名称的最大长度是10个字符,英文10个,汉字5个,字段内容的存储规律也是这个样子的纯中文最多存储124个字最后多出的会转换为 ‘*’ 号,纯数字或者是英文符号,也就存储255个。原因:这是由Shapefile文件格式的限制所决定的。
若存储在Esri的Geodatabase中,字段名称的最大长度是64个字符。在数据库中汉字、数字、英文等字符均占1个字节,在数据库中的最大存储长度为255。
我现在使用的是新版本:arcgis10.8.1,arcgis pro3.0.1:
Shape文件字段长度不能超过10个字节,英文10个,汉字3个,字段内容的存储规律也是这个样子的纯中文最多存储84个字。若存储在Esri的Geodatabase中,字段名称的最大长度是64个字符。在数据库中汉字、数字、英文等字符均占1个字节,在数据库中的最大存储长度为254。
主要针对的是shp与gdb数据的分析(后期有机会会把mdb数据格式也完善上):
类型 | Arcgis早期版本 | Arcgis新版本 |
---|---|---|
Shapefile字段名称 | 字段名称的最大长度是10个字符 ,英文数字等符号存储10个,而汉字只有5个(一个汉字占2个字节长度) | 字段名称的最大长度是10个字符 ,英文数字等符号存储10个,而汉字只有3个(一个汉字占3个字节长度) |
Shapefile字段内容 | 纯中文124个汉字,英文数字等符号255个 | 纯中文84个汉字,英文数字等符号254个 |
GDB字段名称 | 字段名称的最大长度是64个字符,中文、英文、数字等符号均占1个字节。 | 字段名称的最大长度是64个字符,中文、英文、数字等符号均占1个字节。 |
GDB内字段内容 | 中文、英文、数字等符号255个 | 中文、英文、数字等符号254个 |
3.小结
在shp开始编辑的状态下,你会发现输入的汉字可以达到254或者255个,但是在保存后,汉字还是遵循上述规律,多余的汉字会丢失,因此在进行中文属性录入的时候,尤其要注意长度的问题。
【需要说明的是】在shp格式的数据中,中文的标点符号逗号,句号等符号也符合上述规律。
省略号是可以拆分“……”,完整的省略号占2个或3个字节;一半的省略号“…”占一个字节。
上述内容都是小编从事多年地理信息工作过程中遇到的坑,自己的经验总结,如有不对的地方欢迎批评指正,互相分享,共同进步。
ps:上述问题1属性的长度超出254的的问题暂未找到合适的解决办法,有没有对上述问题比较了解的博主,希望分享一下经验,不胜感激!后续找到合适的方法我会分享给大家,希望大家少走弯路。