• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅

ArcEngine 小技巧

近来发现的ArcGIS新的小功能,比较好用。
以下列出来一些简要的代码片段,也算做个回顾。


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 );

这两句应该成对出现!

 

文章出处

posted on 2013-01-14 14:47  bobird  阅读(708)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3