• 把cad导入ps > Engine开发-自定义图层类型
  • Engine开发-自定义图层类型

    免费下载 下载该文档 文档格式:DOC   更新时间:2007-07-02   下载次数:11   点击次数:553
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:LZH
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性

    ArcGIS Engine开发-自定义图层类型
    用ArcGIS Engine开发的一个特别就是面向接口编程,每组接口代表了对象在某个方面的特性,表现为一个方法,属性或事件.要定义自己的图层类型,实际上只需要实现ILayer接口就可以了.该接口的主要方法或属生包括:
    public IEnvelope AreaOfInterest {get;}
    public void Draw (
    esriDrawPhase DrawPhase,
    IDisplay Display,
    ITrackCancel trackCancel
    )
    public void SpatialReference {set;}
    public string get_TipText (
    double x,
    double y,
    double Tolerance
    );
    等等,请直接查阅帮助.
    但实现了该接口,图层只是能加入以地图中,并显示出来而已.如果你要自定义的图层类型是矢量要素的话,最好直接实现IFeatureLayer.由于IFeatureLayer从ILayer继承而来,所以也包含了上述方法或属性.同时还可以支持选择,查询等操作了.
    实现了IFeatureLayer,还不能支持图层渲染功能.要想支持图层渲染,得实现IGeoFeatureLayer接口,该接口从IFeatureLayer继承而来,所以也包含IFeatureLayer所支持的所有方法属性.
    如果要支持属性表功能的话,得实现ITable接口.
    如果希望图层信息能保存到MXD文档中,得实现IPersistStream接口.
    由此可见,在ArcGIS Engine中,要实现自定义图层类型,并不是一件不可能的事.虽然会比较烦琐,但思路却非常清晰.本人就通过这种思路设计了一种组合图层,可以同时包含点线面多种图形,但在TOCControl中只表现为一个图层.当然,这个工作要简单轻松一些,但还是富有乐趣的~
    ArcGIS Engine开发-取得ArcMap文档缩略图
    ArcObjects提供了一个IMapDocument接口,可以实现对ArcMap文档的读写操作.该接品其中有一个属性是Thumbnail.当我们保存文档,使用了保存缩略选项时,会在文档中保存一个缩略图.我们可以通过Thumbnail来读取这个缩略图.
    Thumbnail的类型是stdole.IPicture,所以要使用它,首先要引用stdole.
    private void System.Drawings.Image GetThumbnail(IMapDocument pMapDoc)
    {
    return System.Drawing.Image.FromHbitmap((IntPtr)(pMapDoc.Thumbnail.Handle));
    }
    一行代码搞定,哈哈.本来就很简单嘛.
    好久没写了.先写这么一点吧.
    ArcSDE中直接取得图层几何类型
    要取得SDE图层要素类型,一个方法就是打开该图层,然后通过取得DataSetType属性和FeatureType属性来判断,但这样做效率比较低.能不能通过SDE的系统表来获得呢,答案是可以的.
    要有到两张系统表:GDB_OBJECTCLASSES和GDB_FEATURECLASSES.
    其中GDB_OBJECTCLASSES表中相关字段有:ID,Name,GDB_FEATURECLASSES表的相关字段是:ObjectClassID,FeatureType,GeometryType,两个表的关联关系是:GDB_OBJECTCLASSES.ID=GDB_FEATURECLASSES.ObjectClassID.通过这两个表的关联,就可以取得指定图层要素类型了.
    我们可以先通过SQL语句根据图层名称来获取GDB_FEATURECLASSES表中字段FeatureType,GeometryType的值,然后将其转化为对应的要素类型.转换关系请参照下面的代码:
    publicenumGeoType{Point,Line,Polygon,Anno,Raster,AttrTable,Unknown};
    publicstaticGeoTypeGetGeoType(objectGeometryType,objectFeatureType)

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • 怎么把cad导入ps  怎么将cad导入ps中  cad怎么导入ps中  cad导入ps后不清晰  怎样将cad图导入ps  cad图纸如何导入ps  cad如何导入到ps中  cad出图jgp后再导入ps  cad如何导入ps