Oracle数据仓库的分层管理器解决方案(续)

摘要 本文描述分层管理器的原理、步骤、限制,并和Oracle数据仓库相结合实现了地学数据的有效存储、管理以及大范围数据的快速浏览。[@more@] (6)该代码需要检测用户已选择的图元;确定需要添加的子图元和需要删除的图元;调用应用程序来实现分层或汇总地图图元。

  实例分析

  由于遥感影响数据量特别巨大,对于数据的存储、管理、分析和有用图形部分显示就显得非常困难,这需要用关系——对象数据库对数据进行存储。在图形显示时,为了使取得有用图层信息,减少加载时间和提高编辑效率,需要对图形进行分层显示,即用到了前面介绍的分层管理器技术。本文用VB作为编程语言,MapX作为GIS组件进行二次开发来实现分层管理技术。

  1、构建分层管理器

  构建逐层细化表,其表结构为:

  Definition Table

  Type Native Charset "WindowsLatin1"

  Fields 3

  Key Char (32);

  Level Char (32);

  Label Char (32) ;

  元数据关键字和对应值为:

  begin_metadata

  "IsDrilldown" = "TRUE"

  "DDMapComponentMapsOneFile" = " Tab_YNP.TAB"

  "DDMapComponentMapsOneLevelID" = " Tab_YNP "

  "DDMapComponentMapsOneFeatureIDCol" = "3"

  "DDMapComponentMapsOneFeatureCaptionCol" = "1"

  …(其他各组件层的关键字和值与此相同)

  "DDMapHierarchyManagerIsDLL" = "TRUE"

  "DDMapHierarchyManagerID" = "SomeDLL.dll"

  "DDMapHierarchyManagerInitialLevel" = " Tab_YNP "

  end_metadata

  2、分层管理器的实现

  使用 CreateCustomTool 方法实现逐层细化工具,定义为:Map1.CreateCustomTool customDrilldownExpandTool, miToolTypePoint, miDrilldownExpandCursor, miDrilldownContractCursor, miDrilldownContractCursor

  每次使用自定义逐层细化工具均会触发 ToolUsed 事件。在 ToolUsed 事件过程中,您将需要执行产生逐层细化行为的代码。该过程主要分为四个步骤:

  (1)使用 SelectByPoint 或 SearchAtPoint 之类的方法确定用户单击的地图图元。

  (2)确定应取代用户单击的图元的子图元集。例如,可以使用一个或多个嵌套的 Case 语句确定哪些子图元取代所选的父图元。

  (3)提取空间数据。根据前述条件,用SQL语言从数据仓库中提取信息,如:select goloc form YN. Tab_HQ_KC where Prix=68

 (4)调用 DrilldownAddFeatures 方法将子图元加入地图。

  (5)调用 DrilldownRemoveFeatures 方法从地图中删除父图元(用户单击的图元)。

  (6)对显示图层进行编辑,并把编辑结果保存。

  3、结果分析

  从实例的结果可以看出,Oracle数据仓库能够方便的对空间数据进行存储、分析、管理和输出,数据挖掘技术的应用能够灵活存取数据,而不需要加载整个数据表中的所有数据,分层管理器的应用实现了空间数据大范围快速浏览和不同主题图层的部分叠加,实际应用中有着非常方便的应用。

  结论

  高效地利用现有的海量数据是目前面临的难题之一。Oracle数据仓库技术是专门针对海量数据的管理和应用的技术,它在对象-关系型数据库、功能强大的DBMS和支持可视化检索方面有着非常明显的优势。地学数据仓库的理论在今年的时间应用中不断完善,本文在数据仓库的存储、分析和表达层方面把理论和实际应用相结合,结合分层管理GIS二次开发,开发出基于Oracle数据仓库的分层管理系统,它结合了数据仓库和分层管理的优点,在地学空间数据应用方面进行了有益的尝试。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7650080/viewspace-925726/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7650080/viewspace-925726/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值