突然接到一个任务,让恢复两年前做的一个ArcGIS server的服务,服务是一个带GP插值工具的服务,包括一个GP服务和一个同名的底图服务,一测试,服务器都联不上了,当然也找不到服务资源,只能再做的一个。重做的时候,别的都很容易,就卡在空间范围上了,众所周知,通过离散点插值出来的区域是一块规则地矩形,但是我们发布服务是要叠加在底图上,当然不能有多出来的一块,后来加了国界测试,在Layers的DataFrame里面调设置Extent为Fixed Extent,选择数据的outlines of features,如下图:
在其余Extent Used By Full Extent Command和Clip options两项中也同样设置:
设置完成后,发现裁取的结果是这样的:
试了很多遍,运行IDW工具的时候把Enrivonment中的Processing Extent也设置了相应的范围,可以结果还是这样,最后没辙了,找到了一个以前写的文档,终于发现了原因:
在部分模型运算输入的数据源是点集,其空间范围与最终需要展示的空间范围不一致,如一般最终展示范围为行政区域,而插值等模型运行结果为点集的最小外包多边形。
解决这个问题的办法是设置模型工具的extent和源地图文档的clipextent(在DataFrame选项卡中)。将这两个属性的值都设置为最终显示区域的数据层。做为最终展示范围的数据层必须是面多边形。
就是最后一句话,原来我添加了一个国界的线图层,换了一个面图层一试,结果就对了,如下图:
经验真的很重要,一定要记下来,才不会重复浪费时间。