ArcGIS新的小功能

来源:互联网 发布:apache下载64位 编辑:程序博客网 时间:2024/04/30 09:55
1.  // (1)实现图层的选择性显示
IFeatureLayerDefinition pFeatLyrDef = pFeatLyr as IFeatureLayerDefinition ;
pFeatLyrDef.DefinitionExpression = "OBJECTID > 10" ;

pActiveView.Refresh() ;

 

  // (2)实现图层的完全不显示/完全显示
IFeatureLayerDefinition pFeatLyrDef = pFeatLyr as IFeatureLayerDefinition ;
pFeatLyrDef.DefinitionExpression = "1<>1" ; // "1==0"/""

pActiveView.Refresh() ;



2.  //SDE编辑

IEngineEditor editor=new EngineEditorClass();

if(workspace is IRemoteDatasetWorkspace){

  if(workspace is IVersionWorkspace){

    editor.EditSessionMode=esriEngineEditSessionMode.esriEngineEditSessionModeVersioned;

  }

else{

  editor.EditSessionMode=esriEngineEditSessionMode.esriEngineEditSessionModeNonVersioned;

  }

}

editor.StartEditing(workspace,map);


在ArcEngine中使用IEngineEditor编辑ArcSDE数

据,BeginEditing时出现0x8004021F错误的解决办法:

“ 问题可能有几种,

要么是SDE中对当前用户没开通插入、更新或删除权限,

要么是没有注册为版本,

要么是License没有选择GDB”。

-> http://kb.cnblogs.com/a/2121210/


IEngineEditor 接口在创建使用完成之后及时的将其销

毁,就不会引发编辑工具条的失效,因此在使用

IEngineEditor 接口开发的时候一定要注意。

在有如下定义的函数或者类中,IEngineEditor pEngineEditor = new EngineEditorClass ();

退出时一定要加上

System.Runtime.InteropServices.Marshal.ReleaseComObject( pEngineEditor );

这两句应该成对出现!

0 0