使用IBM DB2 Spatial Extender管理空間數據: 獲取空間數據和開發

本系列教程介紹了使用 IBM DB2 Spatial Extender 管理空間數據的常見任務,包括導入和創建空間數據,構造和執行空間查詢,使用 IBM、第三方和開源的空間工具,調節性能,以及在數據倉庫環境中考慮空間環境。

在本系列的第一篇文章中,我們將了解如何獲取空間數據和構建應用程序。了解如何使用形狀文件 (shapefile)、空間數據表和空間索引。

了解能從本學到哪些知識,如何最充分地掌握這些知識。

關于本系列

10 多年來,DB2 Spatial Extender 提供了管理和分析 DB2 關系表中存儲的空間數據的功能。可為點、線和多邊形定義具有空間類型的表列,它們可表示以下對象:

點位置
客戶、零售店、變壓器、蜂窩塔
高速公路、海岸線、配送路線、電力傳輸線
多邊形
銷售/服務區域、洪水/火災風險、國家/省/縣

SQL 查詢可合并空間函數來分析空間關系,比如查找一個洪災區域的客戶。清單 1 顯示了合并空間函數的代碼示例。

清單 1. 合并空間函數的查詢
?

 					 SELECT cust_name, cust_addr FROM customers, floodzones WHERE ST_Within(cust_loc, flood_loc) = 1 

?

此查詢的結果會生成一組其房屋面臨洪水淹沒風險的客戶的姓名和住所地址。此信息在計算保險費率或發放洪災保險購買時很有用。

本系列教程將介紹在 DB2 Spatial Extender 中處理空間數據的常見任務。這包括導入和創建空間數據,構造和執行空間查詢,使用 IBM、第三方和開源的空間工具,調節性能,以及在數據倉庫環境中考慮空間環境。

盡管本系列教程的重點是 Linux?、UNIX? 和 Windows? 操作系統上的 DB2 Spatial Extender,但許多概念同樣適用于其他具有空間功能的 IBM 產品,包括:

  • Spatial Support for DB2 for z/OS?
  • Informix? Spatial Datablade
  • Netezza? Spatial

關于本教程

本教程介紹 DB2 Spatial Extender 提供的技術。還提供了向 DB2 表填充空間數據的方法:在實現空間查詢之前的一個關鍵步驟。本教程還介紹了執行空間查詢的環境,包括 DB2 命令行處理器、IBM Data Studio 和使用 JDBC、CLI 和其他接口嵌入到應用程序中的環境。

目標

完成本教程后,您將:

  • 理解與空間類型和坐標系統相關的重要空間概念
  • 掌握導入和創建空間數據的方法
  • 理解空間索引
  • 熟悉執行空間查詢的環境

DB2 Spatial Extender 概述

安裝和設置 DB2 Spatial Extender,提供以下主要功能和組件:

空間數據類型
一組數據類型,可用于定義將包含空間數據的表列。這包括用于原子空間值的 ST_Point、ST_Linestring 和 ST_Polygon。這還包括用于同類空間值集合的 ST_MultiPoint、ST_MultiLinestring 和 ST_MultiPolygon。
空間函數和謂詞
大量 SQL UDF,用于創建空間值,返回有關空間值的信息,識別空間關系,以及在空間值上執行操作。這些空間 UDF 可合并到 SQL 查詢中,這樣可以利用 SQL 語言的所有功能。
空間索引
提供空間索引機制來支持空間數據的二維性質。一些工具可幫助指定空間索引。
空間命令行處理器 (CLP) – db2se
db2se CLP 為空間存儲過程提供了一個方便的命令行界面來執行操作,比如為數據庫啟用空間功能和導入或導出空間數據。

空間參考系統和坐標系統

空間數據通常由坐標值元組來表示(最常見形式為 x 和 y),但也支持 z 和 m 坐標。本教程考慮具有 x 和 y 坐標值的數據。它還將考慮僅使用經度和緯度(以度為單位的十進制值)的數據。請注意,當使用經度和緯度時,經度 對應于 x,緯度 對應于 y。

要正確執行空間操作,每個空間值必須有一個關聯的坐標系統,用于描述坐標值與地球表面上的位置的關系。盡管 Spatial Extender 提供了 3,000 多個不同的預定義坐標系統,但本教程僅采用兩個最常用的:用于北美的坐標 NAD83 和用于全球坐標 WGS84。請注意,大部分 GPS 設備都使用 WGS84 報告坐標。

為了有效地存儲和處理空間數據,Spatial Extender 在內部將坐標表示為 64 位整數。Spatial Extender 使用一個空間參照系統 (SRS) 來管理此數據,該系統指定用于在雙精度值的用戶表示與內部表示之間來回轉換的偏移和比例系數。每個 SRS 也有一個關聯的坐標系統。實際上正是 SRS 與每個空間值相關聯。SRS 既可以指它的 128 字符值名稱(稱為 srsName 或 SRS_NAME),也可以指它的 32 位整數標識符(稱為 srid 或 SRS_ID)。srid 用在 SQL 語句中,srsName 用于 db2se CLP,最常在導入空間數據時使用。

Spatial Extender 為名為 NAD83_SRS_1 的 SRS 提供了 srid 1,表示使用 NAD83 坐標系統的數據。Spatial Extender 為名為 WGS84_SRS_1003 的 SRS 提供 srid 1003,表示使用 WGS84 坐標系統的數據。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享