1. GIS数据格式转换的核心痛点搞GIS数据处理的朋友都知道最头疼的就是各种格式之间的转换问题。我做了十年国土空间规划经手过上百个项目发现90%的数据问题都出在格式转换环节。比如国土三调数据要用SHP格式入库但外业测绘给的是CAD图纸报备系统要求上传特定格式的TXT但手头只有Excel表格。这种时候如果不会格式转换工作根本推进不下去。常见的数据转换场景主要有三类矢量数据转换如SHP转CAD、属性表转换如SHP属性转Excel、编码体系转换如UTF-8转GBK。其中最难搞的是坐标系和字段匹配问题。去年处理一个省级项目时就遇到过CAD图纸用北京54坐标系而入库要求2000国家大地坐标系的情况差点导致整个项目延期。2. SHP与TXT互转实战2.1 SHP转TXT的完整流程国土部门的报备系统通常要求提交特定格式的TXT文件。用我们开发的工具转换时关键要注意这几个参数字段匹配模式工具提供两种匹配方式。第一种是勾选按字段导出手动选择需要输出的字段。比如永久基本农田报备需要12个字段就在字段数量输入11界址点数自动计算然后在下拉菜单逐个匹配字段。坐标处理技巧小数点位数建议保留3位既能保证精度又不会文件过大坐标顺序要特别注意测绘行业习惯Y,X顺序与ArcGIS相反。如果转换后发现图形旋转了90度大概率是这里设置错了界址点编号的补零位数要根据规范设置比如J001还是J1编码选择如果TXT要导入老系统可能需要选ANSI编码新系统建议用UTF-8避免乱码。2.2 TXT转SHP的避坑指南从报备TXT转回SHP时最容易踩的坑是字段丢失。我们发现中文字段名超过3个字时UTF-8编码的SHP会丢失内容。解决方案有两种改用GBK编码字段名控制在3个汉字内实测案例某县设施农用地项目转换后整治前耕地质量等别字段内容全空。后来把字段名简化为整治前等别问题立即解决。3. Excel与SHP的高效互转3.1 SHP属性表导出Excel批量导出时有个隐藏功能勾选生成geometry字段会保留图形坐标。这对需要Excel和GIS协同办公的场景特别有用。比如做征地补偿测算时财务同事可以直接在Excel里看到每个图斑的位置坐标。遇到过的问题某次导出20万行数据时Excel崩溃。后来发现是选了xls格式最大支持6万行换成xlsx格式后完美解决。3.2 Excel转SHP的坐标处理这是新手最容易出错的地方。要注意经度纬度列要反着填因为测绘和GIS的坐标系定义相反转面数据时必须设置地块组字段否则所有坐标会连成一个面坐标系必须准确填写EPSG代码常见的有4326WGS84经纬度4490CGCS2000经纬度4526CGCS2000高斯投影4. CAD与GIS数据互通4.1 DXF转SHP的编码问题设计院给的CAD文件经常出现文字乱码根本原因是编码不匹配。我们的处理经验新版本CAD2018通常用UTF-8老版本CAD多用GBK转换前先用记事本打开DXF看文字显示是否正常4.2 图层转换策略CAD的图层结构比GIS复杂得多。建议转换时点、线、面要素会分别生成对应的SHP文件块参照Block需要先炸开再转换带高程的CAD要素要特别注意Z值处理5. 批量处理与格式转换5.1 大规模SHP合并技巧做过一个省级生态红线项目需要合并2386个SHP文件。用ArcGIS合并到第500个时就卡死了后来改用我们的批量合并工具三个注意事项所有文件坐标系必须相同编码不一致时会自动转GBK合并前最好先检查字段结构5.2 GDB转SHP的完整流程国土调查数据常用GDB存储转换时要特别注意子类型Subtype会丢失需要提前转成普通字段域值Domain不会自动转换拓扑关系需要重新构建6. 坐标系转换的终极方案遇到过最棘手的问题是两个不同坐标系的SHP要合并。这时候需要分三步走用工具查看原始坐标系EPSG代码确定目标坐标系选择正确的转换参数比如从西安80转CGCS2000不同地区要用不同的七参数。有个项目因为用了错误的参数导致整个图幅偏移了200多米后来通过控制点校正才解决。7. 编码转换的隐藏陷阱中文字符编码问题能让人崩溃。我们的经验是UTF-8编码的SHP在ArcMap 10.2以下版本会乱码属性表里有特殊符号如★时GBK编码可能报错最佳实践是全程使用UTF-8必要时用工具批量转码8. 自动化处理方案对于重复性工作建议用Python脚本批量处理。比如这个批量转换脚本import arcpy arcpy.env.workspace 输入文件夹 shp_files arcpy.ListFeatureClasses() for shp in shp_files: arcpy.FeatureClassToShapefile_conversion(shp, 输出文件夹)但要注意ArcPy对中文路径支持不好建议所有路径都用英文命名。