IFeatureClassManage接口更新图层全图显示时的范围
2015-03-06 23:55
465 查看
本文转自:/article/7759040.html
作用
更新计算XY、Z和M的范围。这个范围是针对所有要素的最小矩形范围(即FeatureLayer.AreaOfIntersect),不是FeatureClass空间参考中的图层范围。
代码
IFeatureLayer pFeatureLyr = axMapControl1.get_Layer(0) asIFeatureLayer;
ESRI.ArcGIS.Geodatabase.IFeatureClassManage pFeatureClassManage = pFeatureLyr.FeatureClass asESRI.ArcGIS.Geodatabase.IFeatureClassManage;
pFeatureClassManage.UpdateExtent();
MessageBox.Show(“更新完毕!“, “信息“, MessageBoxButtons.OK,MessageBoxIcon.Information);
如下图所示,当对图层进行了删除操作而范围没有更新时图层全图显示状态
通过IFeatureClassManage接口对范围更新后图层显示范围
通过这两个图对比,广大用户便知道了为什么有时候图层全图显示时数据都挤在一起,不能填充题图窗口。原因就是pFeatureLyr的AreaOfInterest属性还是最初的,当更新范围后便显示正常了。
pFeatureLyr.AreaOfInterest对比
范围更新前
pFeatureLyr.AreaOfInterest
{System.__ComObject}
……………………………………
Width: 2130.8040008544922
XMax: 41000.000001907349
XMin: 38869.196001052856
YMax: 53600.000001907349
YMin: 51468.204999923706
ZMax: NaN
ZMin: NaN
范围更新后
pFeatureLyr.AreaOfInterest
{System.__ComObject}
……………………………………
Width: 1041.0960006713867
XMax: 39910.292001724243
XMin: 38869.196001052856
YMax: 53600.000001907349
YMin: 52421.684000015259
ZMax: NaN
ZMin: NaN
总结
IFeatureClassManage接口的UpdateExtent方法更新计算X、Y、Z和M的范围。这个范围不是创建FeatureClass时指定的图层范围;而是能够容纳下图层中所有要素的最小外接矩形范围,这个范围会影响地图全图显示时图层要素的显示状态。
IFeatureClassManage接口的UpdateExtent方法可以在当对图层进行了大量删除操作后调用来更新范围,原因是要素被删除后这个范围不会被自动重新计算;而向图层添加要素时会自动计算范围,所以不用调用这个方法。
IFeatureClassManage接口的UpdateExtent方法执行时会独占FeatureClass的schema,执行后不能撤销。
IFeatureClassManage接口的UpdateExtent方法如果针对的是ArcSDE数据源,各个版本中的要素范围都将被更新;不过,这个更新后范围要在执行了数据库压缩操作后才会生效。
Coverage数据范围在编辑时是自动维护的,IFeatureClassManage接口的UpdateExtent方法不被Coverage支持。
FeatureClass的spatialreference中的范围是能够存储数据的范围;UpdateExtent方法更新的范围与之完全不同,UpdateExtent方法更新的范围是小于且包含在spatialreference的范围之中。
作用
更新计算XY、Z和M的范围。这个范围是针对所有要素的最小矩形范围(即FeatureLayer.AreaOfIntersect),不是FeatureClass空间参考中的图层范围。
代码
IFeatureLayer pFeatureLyr = axMapControl1.get_Layer(0) asIFeatureLayer;
ESRI.ArcGIS.Geodatabase.IFeatureClassManage pFeatureClassManage = pFeatureLyr.FeatureClass asESRI.ArcGIS.Geodatabase.IFeatureClassManage;
pFeatureClassManage.UpdateExtent();
MessageBox.Show(“更新完毕!“, “信息“, MessageBoxButtons.OK,MessageBoxIcon.Information);
如下图所示,当对图层进行了删除操作而范围没有更新时图层全图显示状态
通过IFeatureClassManage接口对范围更新后图层显示范围
通过这两个图对比,广大用户便知道了为什么有时候图层全图显示时数据都挤在一起,不能填充题图窗口。原因就是pFeatureLyr的AreaOfInterest属性还是最初的,当更新范围后便显示正常了。
pFeatureLyr.AreaOfInterest对比
范围更新前
pFeatureLyr.AreaOfInterest
{System.__ComObject}
……………………………………
Width: 2130.8040008544922
XMax: 41000.000001907349
XMin: 38869.196001052856
YMax: 53600.000001907349
YMin: 51468.204999923706
ZMax: NaN
ZMin: NaN
范围更新后
pFeatureLyr.AreaOfInterest
{System.__ComObject}
……………………………………
Width: 1041.0960006713867
XMax: 39910.292001724243
XMin: 38869.196001052856
YMax: 53600.000001907349
YMin: 52421.684000015259
ZMax: NaN
ZMin: NaN
总结
IFeatureClassManage接口的UpdateExtent方法更新计算X、Y、Z和M的范围。这个范围不是创建FeatureClass时指定的图层范围;而是能够容纳下图层中所有要素的最小外接矩形范围,这个范围会影响地图全图显示时图层要素的显示状态。
IFeatureClassManage接口的UpdateExtent方法可以在当对图层进行了大量删除操作后调用来更新范围,原因是要素被删除后这个范围不会被自动重新计算;而向图层添加要素时会自动计算范围,所以不用调用这个方法。
IFeatureClassManage接口的UpdateExtent方法执行时会独占FeatureClass的schema,执行后不能撤销。
IFeatureClassManage接口的UpdateExtent方法如果针对的是ArcSDE数据源,各个版本中的要素范围都将被更新;不过,这个更新后范围要在执行了数据库压缩操作后才会生效。
Coverage数据范围在编辑时是自动维护的,IFeatureClassManage接口的UpdateExtent方法不被Coverage支持。
FeatureClass的spatialreference中的范围是能够存储数据的范围;UpdateExtent方法更新的范围与之完全不同,UpdateExtent方法更新的范围是小于且包含在spatialreference的范围之中。
相关文章推荐
- IFeatureClassManage接口更新图层全图显示时的范围
- IFeatureLayerDefinition接口实现IFeatureLayer图层显示过滤,图层全范围视图的获取
- 矢量图层(FeatureClass)获取和更新Extent
- 分级渲染图层后更新TOC控件显示效果
- 重写FeatureStyleModifier实现更新一个图层中指定的几个图元的样式
- 根据一个Feature图层范围计算另一个Feature图层各图斑面积的方法
- Arcgis Engine(ae)接口详解(4):featureClass的feature插入
- VS2005的类设计器(Class Designer)中,如果显示让类继承接口,而不是实现接口?
- ArcGIS中IFeatureDataConverter接口的ConvertFeatureClass方法例子
- Geodatabase中的featureclass无法在ArcMap中显示的解决
- 关于AE中IFeatureWorkspace接口的CreateFeatureClass方法
- osgEarth图层显示范围案例 23. min_max_range.earth
- 如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈
- Android 通过蒲公英pgyer的接口 Service 实现带进度下载App 通知栏显示 在线更新 自动更新Demo
- Arcgis Engine(ae)接口详解(2):featureClass查询
- 如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈
- IFeature IFeatureClass IFeatureDataset等接口的介绍
- 存在网路的情况下重命名SDE中数据图层错误(The orphan junction feature class cannot be renamed)
- IFeatureClass接口 - [ArcEnine接口]
- IFeatureLayerDefinition接口查询要素图层方法汇总