面對地學海量空間數據 (數字地球/數字國土),傳統全量加載方式難以支援大範圍快速瀏覽。結合 Oracle 8.1.5+ Spatial 與 GIS 二次開發,提出「分層管理器」方案:按需逐層精化加載、編輯、輸出專題圖,實現存儲、分析、顯示一體化。
由兩大部分組成:
begin_metadata / end_metadata 包裹中繼區塊。"\Keyword" = "Value" (雙引號、反斜線開頭)。"\IsDrilldown" = "TRUE"。\DDMap\ComponentMaps\One\File。File、LevelID、FeatureIDCol、FeatureCaptionCol。DrilldownAddFeatures/DrilldownRemoveFeatures → 編輯另存。Definition Table
Type Native Charset "WindowsLatin1"
Fields 3
Key Char (32);
Level Char (32);
Label Char (32);
begin_metadata
"\IsDrilldown" = "TRUE"
"\DDMap\ComponentMaps\One\File" = "Tab_YNP.TAB"
"\DDMap\ComponentMaps\One\LevelID" = "Tab_YNP"
"\DDMap\ComponentMaps\One\FeatureIDCol" = "3"
"\DDMap\ComponentMaps\One\FeatureCaptionCol" = "1"
... (其他層同結構)
"\DDMap\HierarchyManager\IsDLL" = "TRUE"
"\DDMap\HierarchyManager\ID" = "SomeDLL.dll"
"\DDMap\HierarchyManager\InitialLevel" = "Tab_YNP"
end_metadata
' 1. 定位使用者點選要素
map.SelectByPoint x, y
' 2. 依層級關鍵字判斷子要素集 (Case/If 邏輯)
' 3. 從 Oracle 倉庫撈取空間數據
sql = "SELECT geom FROM YN.Tab_HQ_KC WHERE Prix=68"
' 透過 ADO/OO4O 執行查詢取得記錄集
' 4. 加入子要素
map.DrilldownAddFeatures layerName, recordset
' 5. 移除父要素
map.DrilldownRemoveFeatures layerName, parentFeatureID
' 6. 編輯並另存專題圖
本方案融合 Oracle 對象關係數據庫優勢、Spatial 空間引擎與分層管理邏輯,為地學海量空間數據應用提供可落地的架構範本。未來可延伸至 3D 視覺化、即時串流數據精化等進階場景。