ArcEngine管理图层附件

ArcGIS10新增加了对文件、档案、图片、视频等附件信息的管理,附件信息是直接与几何实体相关联,通过AO接口可以很轻松的完成对附件的管理,如:浏览、添加、删除、下载等操作。

 

ArcGIS10对附件管理的功能为GISMIS更紧密的合作、结合提供了一条更为行之有效的途径,在MIS系统中更大化的发挥了GIS管理功能。

 

 

 

下面介绍AO中与附件管理相关的几个接口:

 

    ITableAttachments图层附件表管理。为图层创建存储附件的表、删除存储附件的表。

 

        注:要为图层存储附件,必须先通过ITableAttachments接口创建存储附件的数据表,方可进行上传附件、下载附件、检索附件、删除附件、更新附件等操作。

 

    IAttachment附件。名称、大小、类型、附件ID、关联的几何实体的OID

 

    IAttachmentData:附件数据。附件数据(byte,URL

 

    IAttachmentDataArray:附件数据集合。

 

    IAttachmentInfo附件基本信息。名称、大小、类型、附件ID、关联的几何实体的OID

 

    IAttachmentInfoArray附件基本信息集合。

 

    IAttachmentManager附件管理。添加附件、删除附件、更新附件、根据ID(附件ID、关联FeatureID)返回附件

 

 

 

下面C#Engine对图层附件管理的代码例子:

 

查询指定FeatureID的实体所关联的附件名称

 

ITableAttachments tableAttachments = (ITableAttachments)featureClass;

 

IAttachmentManager attachmentManager =ableAttachments.AttachmentManager;

 

ILongArray parentIdArray = new LongArrayClass();

 

parentIdArray.Add(1);

 

parentIdArray.Add(2);

 

IEnumAttachment enumAttachment =

 

    attachmentManager.GetAttachmentsByParentIDs(parentIdArray,true);

 

enumAttachment.Reset();

 

IAttachment attachment = null;

 

List<string> AttachName = newList<string>()

 

while ((attachment = enumAttachment.Next()) != null)

 

{ AttachName.Add(attachment.Name);}

 

下载指定文件ID的附件

 

ILongArray attachmentIdArray = new LongArrayClass();

 

attachmentIdArray.Add(attachmentID);

 

IEnumAttachment enumAttachment =attachmentManager.GetAttachmentsByAttachmentIDs

 

   (attachmentIdArray, false);

 

enumAttachment.Reset();

 

IAttachment attachment = enumAttachment.Next();

 

if (attachment != null)

 

{

 

   IMemoryBlobStream memoryBlobStream = attachment.Data;

 

        memoryBlobStream.SaveToFile(SavePath + @”" +attachment.Name);

 

}

 

添加附件

 

IMemoryBlobStream memoryBlobStream = newMemoryBlobStreamClass();

 

memoryBlobStream.LoadFromFile(SelectPath + @”" +”meeting.png”);

 

IAttachment attachment = new AttachmentClass

 

{

 

   ContentType = “image/png”, Data = memoryBlobStream, Name = “meeting.png“

 

};

 

attachmentManager.AddAttachment(1, attachment);

 

删除附件

 

 

 

       //删除指定文件ID的附件

 

attachmentManager. DeleteAttachment(FileID);

 

    //删除指定FeatureID的所有附件

 

attachmentManager. DeleteAttachmentsForParent (FeatureID);

 

更新指定文件ID的附件

 

 

 

//获得要更新的附件

 

ILongArray attachmentIdArray = new LongArrayClass();

 

attachmentIdArray.Add(attachmentID);

 

IEnumAttachment enumAttachment =attachmentManager.GetAttachmentsByAttachmentIDs

 

   (attachmentIdArray, false);

 

enumAttachment.Reset();

 

IAttachment attachment = enumAttachment.Next();

 

       //更新附件

 

attachment.Name = “LosAngeles.png”;

 

attachmentManager.UpdateAttachment(attachment);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值