做GIS这么多年,ArcGIS几乎贯穿了我全部的工作流。从学生时代折腾10.2的License,到后来给单位部署10.8、转向ArcGIS Pro,再到做Engine工具、配JS API,踩过的坑和翻过的车,说多了都是眼泪。很多报错根本不是数据本身的问题,而是软件版本、环境配置、坐标系统这些不起眼的环节在作怪。这个避坑指南我自己一直在持续更新,每遇到一个能复现、有共性的坑,就补一条记录,方便以后再查,也希望给同行一点参考。这篇内容主要围绕高频翻车场景展开:安装部署、数据转换、坐标系、制图标注、空间分析、二次开发与服务端部署,基本覆盖了从入门到进阶会碰到的常见问题。不管你刚接触ArcGIS,还是已经带了好几个项目,都建议先看第1部分和第2部分,这两块的坑最多,也最容易让人心态爆炸。
1. 安装部署环节,最容易翻车的4个地方
1.1 License Server点击启动没反应
这个报错在10.x系列里太经典了。装完License Manager,打开License Server Administrator,点击“启动”按钮,服务状态一直是“未运行”,或者弹一个“The service failed to start”,按钮点了像没点一样。
第一步先查Windows服务。Win+R输入services.msc,找到ArcGIS License Manager对应的服务,看它是不是被禁用了。很多电脑装完软件后服务状态是“禁用”,你得手动把启动类型改成“自动”,再手动启动一次。这一步能解决一半的问题。
第二步查端口占用。在cmd里输入netstat -ano | findstr 27000,如果端口被占用,基本就是服务起不来的原因。我当年就碰到过一台电脑上装了个加密软件,把27000端口占了,License Manager怎么点都点不亮,最后把那个软件退掉才正常。如果不想退软件,也可以手动给ArcGIS License Manager指定其他端口,但后续所有客户端都得跟着改,比较麻烦。
第三步排查杀毒软件。很坑的是,杀毒软件会把许可服务进程拦掉,尤其装10.x的时候。安装时把安装目录加入白名单,安装后如果服务起不来,也先看一眼杀毒软件的拦截记录。
最后一种情况是授权文件过期。用10.2、10.4这种老版本时,如果license文件有问题,服务会秒启秒退,甚至启动后几秒又自动停了。这种情况不用反复折腾,直接换有效授权,或升级到10.8以上的版本。
注意:10.x安装顺序建议先装License Manager,再装Desktop。顺序反了,后装的那个License Manager经常会找不到之前的授权信息,大概率得卸载重来。
1.2 ArcMap 10.8界面虚,高DPI屏幕下“糊成一团”
旧版ArcMap在高分屏上的表现,用过的人应该都有印象:4K显示器上图标小得看不清,字体发虚发毛,界面边缘锯齿明显。这不是电脑坏了,是ArcMap底层的UI没有做高DPI适配。
最有效的解决办法是右键ArcMap快捷方式,进“属性”,选“兼容性”,点“更改高DPI设置”,勾选“替代高DPI缩放行为”,缩放执行选“应用程序”,然后重启ArcMap。实测下来大部分界面模糊问题都能解决。
如果这个方法还不行,可以试试把系统的显示缩放从125%调到100%,再重启软件,但这会影响其他软件的显示效果,属于“杀敌一千自损八百”。
还有一个思路:直接把高频操作转移到ArcGIS Pro里做。ArcGIS Pro对高DPI适配得好很多,而且矢量、栅格、布局一体化,没什么必要在旧界面上死磕。我现在只用ArcMap处理低版本工程、兼容老插件,日常生产几乎全在Pro里完成。
1.3 ArcGIS Pro安装和授权,别踩这3个坑
ArcGIS Pro 3.x和10.x完全是两种安装逻辑。10.x是Desktop+License Manager的老架构,Pro则是独立安装、独立授权的新架构。哪怕你从没用过旧版ArcGIS,也能直接上手Pro,但安装时有三个点值得注意。
第一,安装路径不要有中文,不要有空格,尽量用默认路径。Pro对路径的敏感程度比10.x还高,装在“D:\软件\ArcGIS Pro”这种目录下,容易出现组件初始化失败或者Python环境无法创建的问题。
第二,授权方式要想清楚。Pro可以用ArcGIS Online账号在线登录,也可以离线许可。离线授权需要一个许可文件或一个许可码,在软件启动后点“授权”按钮配置。如果单位用的浮动版授权,还要确认License Server的版本和Pro兼容,否则启动时会一直卡在授权界面。
第三,Pro自带Python环境,后续安装第三方库要用conda操作。很多人在Pro里装库,直接pip install,结果装到了系统Python里,或者不知道什么时候环境被搞坏了。正确做法是从ArcGIS Pro的“Python”菜单打开终端窗口,在Pro自带环境中执行conda install或pip install。
1.4 加载在线天地图,不是加个URL就完事
“Arcgis加载在线天地图的安装步骤详解”是搜索量很高的关键词,很多项目都需要套用天地图做底图。但加载天地图经常遇到两种情况:要么地图加载不出来,要么底图和矢量数据对不上,整体“飘”了。
先解决加载不出来。在ArcMap里,常用的路径是添加WMTS服务器,URL填天地图服务地址,key需要去天地图官网申请。每次请求服务都需要带key,没key或者key填错了,服务返回不了数据,地图自然一片空白。ArcGIS Pro稍微简单点,直接在“添加数据”里输入WMTS的URL,认出来之后就能加载,但同样需要配key。
再解决“飘”的问题。天地图提供两套坐标服务:一套是经纬度坐标系(WGS84/CGCS2000),一套是Web墨卡托(EPSG:3857)。如果你的矢量数据是高斯投影(比如中央经线114度、3度分带),直接叠加经纬度底图,位置偏一点是正常的,必须在数据框属性里把坐标系统一成高斯投影,让底图动态投影到目标坐标系后再叠加。如果项目里要求用CGCS2000,那底图也要选支持CGCS2000的服务,不然不同椭球之间的偏差是肉眼可见的。
提示:加载WMTS后如果图层列表中显示了服务,但地图窗口里没有内容,优先检查图层可见范围和“透明度”设置,然后在内容列表里单独控制底图层的可见性。
2. 数据转换与坐标系统:数据“串味”的重灾区
2.1 CAD转SHP,转换完为什么位置全乱了
很多单位的地形图、规划图都是用CAD画的,到了GIS这边需要转成SHP。用“要素转SHP”转完一看,图形要么飞到了天边,要么缩成一个点,或者干脆图层里啥都没有,这种问题90%出在单位或坐标系上。
CAD本身并不强制要求设置单位,很多人画图时不写单位,只按数字画。如果CAD里以毫米为单位,图形范围是几万、几十万,而ArcGIS默认按米理解,转出来之后图幅大小自然不对。处理办法是在CAD里确认单位,再在ArcGIS里做缩放平移;更省事的是用“CAD转地理数据库”工具,在转换时设置正确的单位映射。
坐标系的问题更隐蔽。CAD图在AutoCAD里可以带坐标系元数据,但很多图不带,或者带的是一个自定义坐标。转成SHP后,ArcGIS会把它当成未知坐标系。这时候要用“定义投影”工具给SHP一个正确坐标,再判断是否要“投影”到目标坐标系。直接跳过定义投影,后续所有叠加分析都会错位。
我的建议是尽量别用“要素转SHP”直接处理CAD数据,改用“CAD转地理数据库”工具。它会自动读取CAD里的点、线、面、注记等数据集,输出到地理数据库里,后续想导出SHP,再从要素类转一次即可,中间丢失几何的概率小很多。
2.2 导入CAD文字乱码的根源和处理
CAD转过来之后,注记、属性表里的文字经常显示乱码。这个问题分两种情况。
第一种是SHX字体缺失。CAD里常见的汉字SHX字体,比如hzdx.shx、tssdeng.shx,ArcGIS并不认识,读进来自然变成乱码或问号。最简单的解决办法是在CAD原文件里把SHX字体替换成TTF字体(比如宋体、SimSun),保存后再导入。很多设计院出图时已经用TTF字体了,这个步骤可以直接省略。
第二种是编码不一致。DWG文件内部文字编码可能是GBK,而ArcGIS默认按系统区域设置去解析,如果系统区域不是中文,或者ArcGIS环境变量里设置了UTF-8,就会出现乱码。遇到这种情况,可以调整ArcGIS环境设置,在“环境”里把“代码页”设为“UTF-8”,或者在导入CAD文字时配置字体映射表,把CAD字体名映射到Windows字体名。
如果数据量很大,也可以用FME这类工具做批量编码转换,把GBK转成UTF-8再进GIS,但大多数项目里,改字体+设置编码两步就能解决,没必要上重型工具。
2.3 影像改坐标系统,先分清两个操作
“Arcgis影像改坐标系统”这个热搜词背后,其实隐藏着两个完全不同的操作:一个叫“定义投影”,一个叫“投影栅格”。
如果你打开影像时,ArcGIS提示“没有空间参考信息”,或者属性表里坐标系显示为“Unknown”,这时候要用“定义投影”工具,手动告诉软件这个影像是什么坐标系。注意,定义投影不会改变影像的像素重采样,它只是给数据打了一个坐标标记。如果影像本身没有坐标而你硬定义一个坐标系,位置并不会自动纠正,该偏的还是偏。
如果影像已经有坐标系,但你需要转成另一个坐标系(比如从WGS84转到CGCS2000),就要用“投影栅格”工具。它会按照转换公式重新计算每个像元的坐标,并重采样像素值。
还有一个容易出问题的操作顺序:先地理配准再定义投影。如果你拿到的是一张没有坐标的扫描图,正确流程是先做地理配准,把图上已知控制点和实际坐标对应起来,然后再定义投影,之后才能和其他数据叠合。如果反过来先定义投影再配准,配准的精度会大打折扣。
注意:WGS84和CGCS2000之间的转换,在GIS软件里默认用零参数或简化公式,短期可以接受,如果项目对精度要求高(比如不动产测量),就需要用七参数转换,否则点位偏差可能达到几米甚至几十米。
2.4 字段小数点前不显示0,和导出Excel乱码
属性表里数值0.56显示成“.56”,或者1.02显示成“1.02”没问题,但0.56前面少个0,看起来非常别扭。这个其实是字段的显示格式问题,数据本身没坏。
在ArcMap里,右键图层→属性→字段,选中该字段,点“数值格式”,选择“数字”,然后在“小数位数”里勾选“显示前导零”,确定后属性表就会正常显示0.56而不是.56。ArcGIS Pro的字段视图里也有类似设置,位置在字段属性的“数字格式”里。
如果数据导出到Excel后出现同样问题,那就要在Excel里设置单元格格式,选中列,右键设置单元格格式,“数字”→“数值”→“小数位数”,并勾选“使用千位分隔符”之类的选项。如果是文本型字段,可以用文本框函数补充前导零。
再顺带说一个导出Excel的坑:ArcMap 10.x的“表转Excel”工具依赖本机安装Office,没装Office会直接报错。解决方法是装Office,或者改用ArcGIS Pro,Pro的表转Excel不依赖Excel,底层直接生成xlsx文件。另外,导出后中文乱码,通常是系统区域或代码页设置问题,需要在环境设置里把代码页指定为UTF-8。
3. 制图与标注:细节决定图纸能不能拿出手
3.1 地类符号太密,图斑全被符号盖住
“地类符号太密了怎么办”是出图阶段很常见的问题,尤其在小比例尺下,当图斑面积小、符号尺寸大时,密集的斜线或点状填充会把整个图面糊成一团,边界线都看不清。
最简单的办法是调小符号尺寸。在符号属性里,把填充符号的尺寸调小,比如从3毫米调成1.5毫米,密度就会明显降低。还有一个更进阶的做法是设置“参考比例尺”,让符号随着比例尺自动缩放,图纸放大缩小的时候不至于比例失衡。
如果图斑实在太碎,光调符号已经救不回来,可以考虑改一种显示方式:图斑填充改成空心,只保留边界线,内部用简单色块区分地类,这样即使小图斑再多,图面也是清晰的。或者用“制图表达”(Representation)功能,设置符号密度随图斑大小自动调整。
操作上还有个讨巧的办法:先按面积筛选,把小于一定面积的图斑挑出来,统一换成灰色填充或取消符号,只在属性表里保留属性,避免在图面上干扰视觉。
3.2 图例名称改不掉,转CAD后地类又消失
改图例名称是布局阶段必做的操作,但很多人发现改了图层名称,图例里的名字还是原来的。原因是图例默认读取的是“符号系统”里的分类标签,而不是图层名称。你要做的是打开图层属性→符号系统,找到每个分类,修改分类的“标签”文字,图例项的显示才会跟着变。
如果在布局里插入了图例,勾选了“仅显示布局中可见的图层”或“仅显示已选图层”,那没勾选的图层不会出现在图例中,这也会让人误以为“图例名称改了没反应”。进图例向导里重新选择图层和项目,再逐一编辑文字即可。
“转CAD后地类没有”是另一个常见问题。图层里地类符号看起来正常,但一执行“导出为CAD”,新打开的CAD文件里地类是空的,只剩下边界线或什么也没有。原因多半是CAD不支持ArcGIS里那种复杂的面填充符号,尤其是带半透明、带多图层符号的制图表达。解决办法是在导出前,把面要素的符号改成CAD能识别的简单填充,比如纯色、斜线、点状填充,再去执行转换。输出格式选DWG或DXF时,还要注意选择目标CAD能打开的版本,我用的是输出到DWG 2018格式,基本兼容主流CAD版本。
3.3 标注为什么总是压线,如何自动避让
标注压线、压图斑,是制图阶段让人头大的问题。ArcMap默认的标注引擎其实有避让能力,但默认参数很保守,图斑一密集,它就开始乱放。
想要让标注尽可能不压线,可以在图层属性→标注→放置属性里,把“要素权重”调高,把“标注权重”调高,并勾选“从不移除”“仅在放置时显示”。权重越高,软件越会优先避开该要素,标注重叠的概率就小。
更彻底的办法是把标注转成注记。右键图层→“将标注转换为注记”,选择存储在数据库中,生成注记后可以手动逐条拖动位置。出图要求严格时,注记是标准做法,虽然前期调整费点时间,但布好局之后一劳永逸。
ArcGIS Pro的标注引擎比ArcMap好不少,自动避让参数更丰富。如果你从ArcMap迁移到Pro,会发现同样的标注规则,在Pro里的出图效果要干净很多,这也是我推荐Pro的原因之一。
3.4 概化工具与尖锐角检查的配合
概化工具在ArcMap的“高级编辑”工具条里,作用是在保持线形大致不变的前提下,减少线的折点数量。做小比例尺出图时,线性要素的折点太多,会造成存储大、出图慢,概化一下很有必要。
但概化有个很明显的副作用:它会改变线或边界的几何位置,处理得狠了,线会“钝化”,甚至出现自相交。所以在概化前一定要备份原始数据,我把概化后的图层放在新建的文件地理数据库里,跟原始数据分开存放,出了问题直接删掉重来,不用恢复原文件。
尖锐角检查通常和概化配合使用。ArcGIS本身没有直接的“检查尖锐角”按钮,但可以用提取折点、计算角度的方法来筛选。比如用“要素折点转点”工具提取线要素的折点,然后用“计算几何属性”算相邻边之间的角度关系,再按阈值筛选出尖锐角的位置。也有第三方的ArcGIS插件能一键检查,我用过几款,效果参差不齐,遇到小图斑密集的数据容易误报,还是自己用脚本控制比较靠谱。
经验:概化的容差设置建议从0.5米或1米起步,不要一下子设成10米,不然线形变化会很夸张。
4. 空间分析与数据处理,常见坑位复盘
4.1 影像裁剪:裁完还是矩形或全图?
用“裁剪”工具对栅格做裁剪,最典型的问题是输出结果仍然是一个矩形,或者干脆还是整幅影像的范围。很多人第一反应是自己没选对要素,其实问题出在工具选项上。
“裁剪”工具界面里有一个“使用输入要素裁剪几何”的复选框,如果不勾选,软件会默认用要素的外接矩形来裁剪,输出的自然还是矩形。勾选后才会按要素的实际边界做裁剪。为了确认这个选项,我每次执行前都会重新看一遍参数。
另一个影响因素是环境设置。执行“裁剪”前,右键工具→“环境”,在“处理范围”里如果设置了“与图层相同”或某个自定义范围,就会覆盖你输入的裁剪要素范围。这种情况把“处理范围”设为“默认”或“与数据集相同”,重新执行即可。
批量分幅裁剪时,我更推荐“按掩膜提取”工具(Spatial Analyst扩展模块),它可以按每个要素逐块裁剪,输出对应文件,一次搞定一整套分幅图。
4.2 提取流域边界:填洼细节决定成败
从DEM提取流域边界,很多人第一次做,出来的结果要么是一堆零碎的“斑块”,要么是乱七八糟的水系,根本不是预期的流域。问题通常出在DEM的预处理上。
标准流程是:填洼(Fill)→流向(Flow Direction)→流量(Flow Accumulation)→定义河网阈值→提取出水口→分水岭(Watershed)。其中填洼是最关键的步骤。DEM里只要有洼地,水流方向就会中断,流向计算就会出错,后面河网自然全乱。填洼实际上是把DEM中的洼地填平,让水流能连续汇入下游。
但填洼也不是填得越多越好。填得过头,会把真实的山脊、沟谷抹掉,提取出来的流域会失真。我习惯在填洼工具里设置一个“Z限制”,一般设成几米到几十米,只填掉那些异常浅的洼地,保留真实地形。
此外,还要提醒一下坐标系:用经纬度DEM直接算流向和流量,虽然能跑通,但坡度和累积量的计算结果都不准。先把DEM投影到高斯投影或UTM投影下,再做水文分析。
4.3 制作植被覆盖度:NDVI不是一算就完
“Arcgis制作植被覆盖度”常用NDVI像元二分模型。公式不复杂:FVC = (NDVI - NDVI_soil) / (NDVI_veg - NDVI_soil),但实际跑的时候有两个坑。
第一,NDVI的最大值和最小值不能直接取整幅影像的最大最小像元值。因为影像里经常有云、阴影、水体等异常值,直接取最大最小,计算出的覆盖度范围会被拉伸得很奇怪。正确做法是看NDVI值的累计分布,取5%和95%分位数分别作为NDVI_soil和NDVI_veg,这样算出来的结果更稳定。
第二,多光谱影像的红波段和近红外波段要看清楚。不同传感器波段顺序不一样,比如高分一号、哨兵2号、Landsat的波段编号都不相同,如果你把红波段和近红外波段选反了,NDVI的数值范围会变成负数,植被覆盖度也会完全反掉。我之前就吃过一次这个亏,算出来NDVI普遍为负,排查半天发现是波段号写错了。
4.4 画线步骤与空间量算的基础注意
虽然“Arcgis画线步骤”看起来偏基础,但很多项目里的画线错误,都是从基础步骤没做对开始的。
画线前,先开启编辑会话。在ArcMap的编辑器工具条上选择“线”工具,在“目标”下拉框里选对图层,再开始画。千万不要把线画到默认图层里,后期还要移动要素,白白浪费时间。
画线的过程中,鼠标左键单击确定节点,双击结束线段。如果要画精确长度的线,可以在画第一段后,在键盘上按右键,选择“长度”,输入数值,软件会按当前方位角生成指定长度的线段。捕捉功能也要提前打开,否则线和线之间容易出现微小间隙,后续做拓扑分析时会报错。
空间量算这块,常有人拿经纬度坐标直接量面积,量出来的数值完全不对。要量面积、长度,最好把数据投影到合适的高斯投影或UTM投影下,再用“计算几何”计算。地理坐标系下的角度测量还可以,但距离和面积会因投影变形而失真。
5. 二次开发与服务端部署的那些坑
5.1 ArcGIS Engine部署环境配置
用ArcGIS Engine做桌面工具,开发机装SDK,部署机上只需要装Runtime。但部署机上如果Runtime没正确初始化许可,双击exe直接报“Unable to initialize license”之类的错。
开发时引入Engine的类库后,记得在程序启动时调用初始化代码,比如获取绑定许可,写入App启动事件。很多人忘了写初始化,或者写的位置不对,程序就会在Initialize阶段崩溃。
部署时还有一个常见问题:目标机器上杀毒软件把许可验证组件拦截了,导致启动白屏。解决办法是在部署机上把Engine的安装目录加入杀毒白名单,或者暂时关闭杀毒测试。还有,Engine Runtime的版本必须和开发时SDK版本一致或更高,否则有些API会报“方法未找到”。
5.2 JS API报“Unable to perform query operation”怎么排查
ArcGIS API for JavaScript部署之后,最常看到的报错是“Unable to complete operation. Unable to perform query operation.” 很多人第一时间去改代码,其实应该先按下面的顺序排查。
第一步,打开浏览器F12,看Network里的请求有没有成功。如果请求返回404或500,问题大概率出在服务端。
第二步,在浏览器地址栏直接访问服务的REST目录,手动执行一次Query操作。如果手动查询就能成功,说明服务本身没问题,问题多半出在前端请求参数,比如字段名写错、几何参数格式不对,或者服务需要token而请求里没带。
第三步,检查跨域。本地部署API和服务在不同端口或域名下,浏览器会拦截跨域请求,导致查询操作无法完成。解决思路是配置跨域白名单,或者在网关层做代理转发,让前端的相对路径指向同一个域名。
这类报错在网络环境复杂的项目里尤其常见,不一定每次都是代码bug,环境因素占比其实很高。
5.3 REST服务目录浏览的实用价值
ArcGIS Server部署完成后,默认会开放REST服务目录,浏览器输入http://localhost:6080/arcgis/rest/services能直接看到所有服务。这个目录在开发调试时非常好用,可以在里面直接查看图层字段、查看要素、执行查询、导出数据,不用敲一行代码就能判断服务状态和数据内容。
但生产环境中,如果不想让所有服务都公开可见,要在ArcGIS Manager里配置安全选项,限制匿名访问,并给不同用户分配不同权限。否则服务目录里的数据可以被任何人都直接浏览和导出。
在REST目录里执行查询时,也可以先测试不同参数(返回字段、空间过滤、where条件),把参数调对了再复制到代码里,能省不少调试时间。
5.4 ArcGIS Pro连接PostgreSQL
ArcGIS Pro 3.7以后连接PostgreSQL这一步本身不算难,但如果版本匹配不对,就会卡在连接失败上。
Pro要连PostgreSQL,需要安装PostgreSQL客户端驱动,比如ODBC或psqlodbc。PostgreSQL 18.1版本比较新,对应的驱动版本也要跟上,否则连接时会提示驱动不匹配。
连接成功后,还要确保目标数据库安装了PostGIS扩展,表里有几何字段(geometry类型)。如果你用的是ArcGIS企业级地理数据库,还需要在PostgreSQL里创建sde用户和地理数据库库,这个一般由ArcGIS安装向导完成。如果只是连接一个普通的PostGIS数据库,用“数据工程”面板里的“添加数据库连接”即可。
一个很隐蔽的坑:PostgreSQL数据库里的表名、字段名如果带大写字母,在ArcGIS里查询时有时识别不了,建议建表时统一用小写。
5.5 Addin反编译需要知道的边界
ArcGIS Addin文件本身是一个zip压缩包,把扩展名改成.zip,就能用压缩软件打开。里面包含配置文件和代码DLL,用常见的反编译工具可以查看代码逻辑。
这个操作我一般只用来排查插件冲突或学习人家的交互逻辑,不建议直接把别人的插件反编译后拿来改造商用。插件开发者如果用了混淆处理,反编译出来的代码可读性不高,折腾半天也未必能看明白。如果插件是开源的,去GitHub上看源码更省事。
6. 高频问题速查表与绕坑心得
6.1 高频问题速查表
| 问题 | 原因 | 快速解决方案 |
|---|---|---|
| License Server启动没反应 | 端口占用、杀毒拦截、服务禁用 | 查27000端口、加白名单、services.msc重新启用服务 |
| ArcMap 10.8界面虚 | 高DPI未适配 | 兼容性设置中替代高DPI缩放行为 |
| ArcGIS Pro安装失败 | 中文路径、磁盘空间不足 | 英文路径、默认目录、关闭杀毒软件 |
| 加载天地图不显示 | URL或key错误、坐标系不匹配 | 检查服务地址,确认坐标系与CGCS2000/3857一致 |
| CAD转SHP位置错乱 | 单位或坐标系不对 | 用CAD转地理数据库,再定义投影 |
| CAD文字乱码 | 字体缺失或编码不一致 | 改TTF字体,或配置字体映射文件 |
| 字段小数点前不显示0 | 字段显示格式问题 | 设置数值格式中的“显示前导零” |
| 导出Excel失败 | Office未安装、编码问题 | 安装Office或改用ArcGIS Pro,设置UTF-8 |
| 地类符号太密 | 符号尺寸过大、未设置参考比例尺 | 调小符号、用简单填充或制图表达 |
| 转CAD地类缺失 | 复杂填充不被CAD支持 | 换简单符号后导出 |
| 影像裁剪输出矩形 | 未勾选使用输入要素裁剪几何 | 勾选该复选框,检查处理范围 |
| 流域提取假河网 | DEM有洼地未填 | 先填洼再提取流向 |
| 植被覆盖度异常 | NDVI极值选取不当、波段选错 | 用累计分布5%~95%的NDVI置信区间 |
| Engine许可报错 | Runtime未初始化 | 正确初始化许可 |
| JS Query失败 | 跨域、服务端异常、字段名错误 | 用代理或检查REST目录 |
| PostgreSQL连不上 | 驱动缺失、版本不匹配 | 安装匹配版本的客户端驱动 |
6.2 我踩过多次后的绕坑心得
第一点,遇到问题先看清楚报错提示的英文原文,不要急着点“确定”。ArcGIS很多报错信息其实非常直白,比如坐标系缺失、字段不存在、许可未初始化,原文一看就明白。习惯性忽略报错,只会让排查过程变成一场盲猜。
第二点,执行任何“不可逆”操作前先备份。投影、转格式、概化、融合这类工具,都可能导致几何或属性变化。我现在习惯在文件地理数据库里单独建一个“work”数据集,处理过程全部输出到里面,原始数据永远不动。概化吃过大亏之后,备份就再也没省略过。
第三点,执行工具前看一眼“环境”设置。很多工具默认会使用环境里的“处理范围”“输出坐标系”“栅格大小”,这些设置可能来自上一次会话,也可能来自某个模板,经常会在你不注意的时候悄悄覆盖参数。执行前右键打开环境,把不相关的设置改成默认,能减少大量莫名其妙的问题。
第四点,坐标问题按三步排查:一是看有没有坐标定义,二是看坐标定义是否准确,三是看是否需要投影变换。不要一上来就改坐标系,越改越乱。如果拿捏不准,就先把数据叠到在线底图上,视觉判断一下是否偏移,再决定下一步操作。
第五点,把高频重复的操作变成模型或脚本。比如CAD转GDB、定义投影、字段处理、导出SHP这一整套流程,建好模型工具后,每次只要替换输入输出路径,就能一键运行。省时间的同时,也避免了手动重复操作时容易犯的错。
这个清单我会一直更新下去,后续遇到新的坑会继续补进来。以我个人的体会来说,ArcGIS这类工具,用得越深,越能理解每个报错背后都有一个“小逻辑”。把逻辑搞清楚了,很多坑其实是可以提前避开的。