在 ArcGIS 里面使用 Python 的 UpdateCursor 更新图形里面的坐标后,修改的 FeatureClass 是不会自动改变它的默认 Extent 的(至少我用 Shapefile 的时候它不会自动更新 Extent)。这样的话在 ArcMap 里面的 FullExtent 功能就不会缩放到适当的大小。GP 里面的对象也没有 UpdateExtent 方法,网上搜索到的方法都是使用 VBA 代码来更新 Extent。所以想要跟原有的 Python 代码集成到一起就很不方便(比如一些用于 GP 服务的 Python 程序)。
今天研究了一下,GP 里面没有提供 UpdateExtent,干脆就用 Python 直接调用 Ao 里面的 IFeatureClassManage.UpdateExtent() 方法。其实 Python 调用 Ao 对象也和 C++ 的调用没有什么差别。代码如下: