ArcGis开发笔记C范本.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ArcGis 开发笔记 C ArcObjects 编程方法(六):实现 persistence 关于 persistence persistence 是将对象的当前状态持久的保存在文件、磁盘等存储媒介的过程。在 ArcGIS 中 persistence 被用来保存文档和模板的当前状态。通过 ArcGIS 的 UI,可以更改地图文 档的众多属性、参数,比如渲染器。当地图保存关闭后,渲染器的实例会释放。当再次打开 地图,由于 persistence 的作用,渲染器会根据保存的状态做预设置,看到和先前一样的 状态。 Structured storage, compound files, documents, and streams 地图文档的保存采用结构化存储技术,结构化存储是实现 persistence 的一种方式。结构 化存储中,采用混合文件模型,文件既包含存储对象又包含流对象,存储对象提供结构并可 以包含其他的存储对象和流对象,而流对象提供存储功能可以存储基于内部结构的任意类型 数据。当流被重新打开时,新对象从流中获取状态信息进行初始化,重新创建之前对象的状 态。 这样,一个单独的混合文件可以当作一个微型文件系统,可以被多个文件指针访问。结构化 存储的优点有:文件渐进式读写、文件结构标准化、容量大。 ArcGIS 采用结构化存储保持程序所有对象的当前状态,结构化存储只能用于非 GIS 数据。 混合文档结构 ArcGIS 采用混合文档结构保存文档 (map 文档、globe 文档)、模板 (map 模板、globe 模板)。当文档被保存,所有文档的对象都保存在混合文档的流中。例如,一个 map 文档 单击“保存”后,MxApplication 创建一个流绑定到现存的.mxd 文件,让后将文档信息保存 到流中。 ArcMap 可以保存多个项: 1、地图集——图层、符号、图形、当前范围、空间引用、渲染器等 2、纸面布局、地图框、地图周边等 3、TOC 状态 4、工具栏的显示状态 5、当前数据窗口、类型、位置和内容 persistence 类 当对象需要保存自己的状态,它必须将自己的成员变量写入流中。当对象中存在引用类型变 量,并且引用的对象支持 persistence,则要求成员对象自己保存当前状态。对象及成员对 象 persist 过程: 第 1 页 ArcGis 开发笔记 C ObjectStreams 在 persistence 过程中,多个引用可能指向同一个对象,这样对象会被多次复制,多次独 立的保存在流中,ArcObjects 引入 ObjectStreams 解决此类问题。当ArcObjects 对象 进行 persistence 时,创建 stream 的同时,创建 ObjectStream 并与 stream 关联。 ObjectStream 中保存了进行 persist 的对象列表。 当对象第一次被 persist 时,采用一般的方式进行,当对象第二次被 persist 时, ObjectStream 确保对象不被第二次 persist,而是保存该对象的引用。 实现 persistence 类 创建 persistable 类,需要实现 IPersist 接口和 IPersistStream 接口(或 IPersistVariant 接口)。 IPersistStream 接口和 IPersistVariant 接口的一些功能: 1、获取对象 ID IPersistStream.GetClassID IPersistVariant.ID 2、将对象保存到流 IPersistStream.Save IPersistVariant.Save 3、从流获取数据 IPersistStream.Load IPersistVariant.Load 实现 IPersistVariant 接口 第 2 页 ArcGis 开发笔记 C 实现 IPersistVariant 接口及 ID 属性、Save 方法和 Load 方法 ? 1 public sealed class TriangleElementClass: IPersistVariant

文档评论(0)

小蜗牛 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档