範例程式步驟
| 動作
| 說明
|
啟用/停用空間資料庫
|
- 啟用空間資料庫 (gseEnableDB)
- 停用空間資料庫 (gseDisableDB)
- 啟用空間資料庫 (gseEnableDB)
|
- 這是使用 DB2 Spatial Extender
的第一個必要步驟。已為空間作業而啟用的資料庫具有一組空間類型、一組空間函數、一組空間述詞、一個新的索引類型、以及一組管理表和概略表。
- 當您對錯誤的資料庫啟用空間功能時,通常可執行此步驟。
停用空間資料庫時,表示您除去一組空間類型、一組空間函數、
一組空間述詞、一個新的索引類型、以及一組管理表和概略表。
註: | 如果有物件是依附於啟用資料庫程序所建立的物件, 則停用資料庫將失敗。例如,以
ST_Point 類型的空間直欄來建立表格, 將造成停用資料庫失敗。
這是因為表格依附於停用資料庫程序所要捨棄的類型 ST_Point。
|
- 同於 1。
|
登記空間參照系統
|
- 為 CUSTOMERS 表格的 LOCATION 直欄登記空間參照系統 (gseEnableSref)
- 為 OFFICES 表格的 LOCATION 直欄登記空間參照系統 (gseEnableSref)
- 為 OFFICES 表格的 LOCATION 直欄取消登記空間參照系統 (gseEnableSref)
- 為 OFFICES 表格的 ZONE 直欄重新登記空間參照系統 (gseEnableSref)
|
- 此步驟定義一個新的空間參照系統 (SRS), 用來解譯 CUSTOMERS
表格的空間資料。空間參照系統包括的幾何資料,
是可儲存於具備空間功能之資料庫的直欄。 在 SRS
登記到一個特定層之後,該層可用的座標就可儲存於相關的 CUSTOMERS 表格直欄中。
- 此步驟定義一個新的空間參照系統 (SRS), 用來解譯 OFFICES 層的空間資料。
每一個表格層有一個 SRS 定義。 OFFICES 表格層可能需要一個不同於 CUSTOMERS
表格層的相關 SRS。
- 若您指定錯誤的 SRS 參數給層或空間直欄,則執行此步驟。 當您取消登記 OFFICES
表格層的 SRS 時, 表示您除去定義及其相關參數。
- 此步驟定義一個新的空間參照系統 (SRS), 用來解譯 OFFICES 層的空間資料。
|
建立空間表格
|
- 新增 LOCATION 直欄來變更 CUSTOMERS 表格 (gseSetupTables)
- 建立 OFFICES 表格 (gseSetupTables)
|
- CUSTOMERS 表格代表已在資料庫中保存數年的業務資料。 ALTER TABLE
陳述式新增一個類型 ST_Point 的新直欄 (LOCATION)。
此直欄將於後續步驟中對地址直欄地理編碼時移入資料。
- OFFICES 表格代表保險公司每一家分公司的銷售區 (及其它資料)。
在後續的步驟中,整個表格內將移入非 DB2 資料庫的屬性資料。 此步驟將 SHAPE
檔案中的屬性資料匯入 OFFICES 表格內。
|
登記空間層
|
- 將 CUSTOMERS 表格中的 LOCATION 直欄登記為一個層 (gseRegisterLayer)
- 將 OFFICES 表格中的 ZONE 直欄登記為一個層 (gseRegisterLayer)
| 這些步驟向 DB2 Spatial Extender 將 LOCATION 和 ZONE 登記為層。在 DB2
Spatial Extender 公用程式 (例如地理編碼程式) 能夠移入或存取一個空間直欄之前,
您需要將它登記為一個層。
|
移入空間層
|
- 對 CUSTOMERS 表格的 LOCATION 直欄,進行地址資料的地理編碼 (gseRunGC)
- 使用添加模式來載入 OFFICES 表格 (gseImportShape)
- 使用建立模式來載入 HAZARD_ZONE 表格 (gseImportShape)
|
- 此步驟呼叫地理編碼公用程式來執行批次地理編碼。
批次地理編碼通常於表格有極大部份需要地理編碼或重新地理編碼時執行。
- 此步驟在 OFFICES 表格內載入 SHAPE 檔案中存在的空間資料。 因為 OFFICES
表格存在,且已登記 OFFICES/ZONE 層, 載入公用程式將添加新記錄到現存的表格中。
- 此步驟在 HAZARD_ZONE 層內載入 SHAPE 檔案中存在的空間資料。
因為表格和層不存在,所以載入資料之前,載入公用程式將建立表格和登記層。
|
啟用空間索引
|
- 為 CUSTOMERS 表格的 LOCATION 直欄啟用空間索引 (gseEnableIdx)
- 為 OFFICES 表格的 ZONE 直欄啟用空間索引 (gseEnableIdx)
- 為 OFFICES 表格的 LOCATION 直欄啟用空間索引 (gseEnableIdx)
- 為 HAZARD_ZON 表格的 BOUNDRY 直欄啟用空間索引 (gseEnableIdx)
| 這些步驟啟用 CUSTOMERS、 OFFICES 及 HAZARD_ZONE 表格的空間索引。
|
啟用自動地理編碼
|
- 為 CUSTOMERS 表格的 LOCATION 和 ADDRESS 直欄啟用自動地理編碼功能
(gseEnableAutoGC)
| 此步驟開啟地理編碼程式的自動呼叫功能。
使用自動地理編碼功能,可在後續的插入和更新作業中, 讓 CUSTOMERS 表格的
LOCATION 和 ADDRESS 直欄保持同步。
|
插入/更新 CUSTOMERS 表格
|
- 插入不同街道的記錄 (gseInsDelUpd)
- 使用新地址來更新部份記錄 (gseInsDelUpd)
| 這些步驟在 CUSTOMERS 表格的 LOCATION
直欄上示範插入和更新作業。一旦啟用自動地理編碼功能, 當 LOCATION
直欄中插入或更新 ADDRESS 直欄的資訊時,
資訊就會自動地理編碼。此程序在前一個步驟中已啟用。
|
停用自動地理編碼
|
- 停用 CUSTOMERS 層的自動地理編碼功能 (gseDisableAutoGC)
- 停用 CUSTOMERS 層的空間索引 (gseDisableIdxCustomersLayer)
| 這些步驟停用地理編碼程式和空間索引的自動呼叫功能, 為下一個步驟做準備
(下一個步驟對整個 CUSTOMERS 表格重新地理編碼)。
若您載入大量地理資料,則於載入資料之前,建議您先停用空間索引,
在完成載入之後再重新啟用。
|
對 CUSTOMERS 表格重新進行地理編碼
|
- 以較低的精準度對 CUSTOMERS 層重新進行地理編碼 - 以 90% 來代替
100% (gseRunGC)
- 重新啟用 CUSTOMERS 層的空間索引 (gseEnableIdx)
- 以較低的精準度重新啟用自動地理編碼功能 - 以 90% 來代替
100% (gseEnableAutoGC)
| 這些步驟再次以批次模式執行地理編碼程式、
以新的精準度重新啟用自動地理編碼功能、重新啟用空間索引和自動地理編碼功能。
當空間管理者發現地理編碼程序的失敗率極高時, 建議執行此動作。 若精準度設定為
100%,可能無法對地址地理編碼, 因為在參照資料中找不到符合的地址。
降低精準度,地理編碼程式才有機會找到符合的資料。
重新以批次模式地理編碼表格之後,自動地理編碼和空間索引會重新啟用,
協助加強維護空間索引和空間直欄,供後續的插入和更新作業使用。
|
建立一個概略表,將其空間直欄登記成為概略表層。
|
- 經由合併 CUSTOMERS 表格和 HAZARD_ZONE 表格,建立一個概略表
HIGHRISK_CUSTOMERS (gseCreateView)
- 將概略表的空間直欄登記成為概略表層 (gseRegisterLayer)
| 這些步驟建立一個概略表,將其空間直欄登記成為概略表層。
|
執行空間分析
|
- 找出客戶與每一間辦公室的平均距離 (ST_Within, ST_Distance)
- 找出每一間辦公室的平均客戶收入和保險費 (ST_Within)
- 找出現存的辦公室未含括的客戶 (ST_Within)
- 找出每一個辦公區重疊的危險區域數目 (ST_Overlaps)
- 假設辦公室位於辦公區的中心點,找出最接近特定客戶位置的辦公室 (ST_Distance,
ST_Centroid)
- 找出接近特定危險區邊界的客戶位置 (ST_Buffer, ST_Overlaps)
- 找出特定辦公室所含括的高風險客戶
(所有步驟皆利用 gseRunSpatialQueries)
| 這些步驟使用 DB2 SQL 語言的空間述詞和函數來執行空間分析。 DB2
查詢最佳化工具開發空間直欄的空間索引,儘量改進查詢效能。
|
將空間層匯出到檔案
| 匯出 highRiskCustomers 層 (gseExportShape)
| 此步驟舉例說明如何將查詢結果匯出到 SHAPE 檔案。
將查詢結果匯出到另一個檔案格式, 可讓協力廠商工具 (例如,ESRI ArcInfo)
使用這些資訊。
|