【AE】0 AE最基础

ArcEngine二次开发错误编码对照表 

ArcObjects包括:ArcDesktop、ArcServer、ArcEngine都是用AO写的

可创建类:IFeatureClassName pOutPut =new FeatureClassNameClass();//可以直接new,因为它有构造函数
可实例化类:IFeatureClass featureClass = pFeatureLayer.FeatureClass;//只能作为属性被创建,因为它没有定义构造函数

ArcGIS  Snippet  Editor :存代码的,方便代码复用
pActiveView = pMap as IActiveView;   //QI查询接口(转换类型)
用hook获取大的对象IApplication m_application = hook as IApplication;
IWorkSpaceFactory:Open打开SDE,OpenFromFile打开shp,mdb,img等
WorkSpace:gdb
DataSet:要素集,表
FeatureClass:点,线,面要素,是表的抽象,可as 为 ITable

ESRI.ArcGIS.SpatialAnalyst.IExtractionOp extractOp = new ESRI.ArcGIS.SpatialAnalyst.RasterExtractionOpClass()

MapDocument所有数据框,			MxDocument是ArcMap中的文档的类

axMapControl1.ActiveView.FocusMap.MapScale:当前数据框的地图比例尺

Map数据框:Element包含Graphic,外框元素,MapSurround指北针,Layer数据的外壳,FeatureSelection,空间参考,高亮显示
使用GroupElement对象将多个元素组合到一个单元中供用户操作。
Map.AddLayer()

Map as IGraphicsContainer之后便可用 IElement = graphicsContainer.Next();遍历除地图中所有的图形

IMapDocument pMapDocument = new MapDocumentClass 
pMapDocument.Open(path,null); 
IMap pMap = pMapDocument.get_Map(i); 


ActiveView 可画图,设显示范围等
IMap pMap = axMapControl1.Map;
IActiveView pActiveView= pMap as IActiveView;
或 pActiveView = axMapControl1.ActiveView;

IEnvelope:元素的最小外包矩形.	XMin,XMax,YMin和YMax定义的包络 。
IEnvelope.Expand()来实现缩放包络线的范围,从而实现地图的放大与缩小
IActiveView.Extent=IEnvelope.拉框放大,拉出IEnvelope框

IFeatureClass用于获取,设置要素类属性,都有一个Geometry属性
IFeatureLayer=MapControl.get)_Layer(0);
IFeatureClass=IFeatureLayer.FeatureClass;

在命令、工具类中获得Map对象
IHookHelper .Hook = hook;//hook=axMapControl.Object;
Map= IHookHelper .FocusMap;
ActiveView  = IHookHelper .ActiveView;//当前视图

IDisplay它还定义了通用的IDraw 接口,可以互相转换
IScreenDisplay screenDisplay = pActiveView.ScreenDisplay;//DrawPoint,这些Draw方法绘制的对象不能持久化,当使用Refresh后就不存在了。


IGeoDataset所有的图层和数据集实现了该接口:RasterDataSet、FeatureDataSet放FeatureClass
ILayer:IFeatureLayer 图层指向地理数据,如图层.要素类


l在要素图层中SelectFeatures (IFeatureSelection)和Search(IFeatureLayer)要素的区别:
Ø要素图层的Search方法返回的是ICursor对象,它仅仅是一个指向要素的指针;
Ø使用IFeatureSelection::SelectFeatures方法,则符合要求的要素会被标记为“被选择的要素集”,这个选择集是一个ISelectionSet对象,可以用SelectionSet返回,如:
IFeatureSelection  pSel = pFeatureLayer as IFeatureSelection;
 ISelectionSet pSelectionSet = pSel.SelectionSet;

创建要素:
IFeature=IFeatureClass.CreateFeature();
Feature.shape=IPoint;	Feature.Store();
ArcEngine二次开发错误编码对照表
ArcGIS Engine开发注意:
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
    绑定伙伴控件
    axTOCControl1.SetBuddyControl(axMapControl1);
    
    无法嵌入互操作类型:选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。
    (“嵌入互操作类型”设定为true,实际上就是不引入互操作集(编译时候放弃Com程序集),仅编译用户代码的程序集。而设定为false的话,实际就是需要从互操作程序集中获取 COM 类型的类型信息。)
    AE10.0打开MxD或shp文件时提示“The specified path is invalid” :添加“axLicenseControl ”
    
    出现上面对  COM 组件的调用返回了错误 HRESULT E_FAIL 的错误:在出现错误那里添加ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
        来源http://blog.csdn.net/u011116642/article/details/17073471
    
    IFieldsEdit接口中找不到AddField方法 :打进去就行,是有的,只是被隐藏了
    
    鹰眼视图无法绘制红框,或与主视图不同步:添加axMapControl2.SpatialReference=axMapControl1.SpatialReference;
    
    在IRasterWorkspace OpenRasterWorkspaceFromFile(string filePath) 中COM错误 (filePath是"H:\\桌面\\data.gdb"):要在AcrMap中在桌面先创建data.gdb,不能在桌面手动添加手动命名,因为那样ArcMap不认识
    设置TOOC的右键菜单时,右键点击某图层.出现闪点(自动点击两次),//控件的属性Appearance设成 0-esriFlat 即可

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值