首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2008 空間資料實現位置智慧:地理/幾何類型、空間索引、Virtual Earth 整合

     編輯:關於SqlServer

背景與機遇

資訊工作者處理海量多元資料,地理服務 (Virtual Earth、GPS) 普及,空間資訊成為決策基礎。應用場景:零售店位置查詢、銷售區域劃分、建築規劃疊加、路徑規劃、房地產篩選、行動應用周邊搜尋等。

SQL Server 2008 空間支援架構

空間模型

  • 大地測量模型:地球為扁球體,經緯度定義位置 (WGS84 橢球體等)。
  • 平面模型:投影將橢球體展平 (Mercator、Peters 等),適用小範圍或室內平面圖。

雙重空間資料類型

  • geography:經緯度儲存,考慮地球曲率,適合道路、建築、真實距離計算。
  • geometry:平面座標儲存,符合 OGC Simple Features for SQL 標準,適合州平面系統、室內佈局。

皆為 CLR 類型,支援點、線、多邊形,提供豐富屬性與方法 (距離、交集等)。

空間方法範例


CREATE TABLE Districts (DistrictId int IDENTITY, DistrictName nvarchar(20), DistrictGeo geometry);
CREATE TABLE Streets (StreetId int IDENTITY, StreetName nvarchar(20), StreetGeo geometry);
INSERT INTO Districts VALUES ('Downtown', geometry::STGeomFromText('POLYGON((0 0,150 0,150 150,0 150,0 0))', 0));
INSERT INTO Streets VALUES ('First Avenue', geometry::STGeomFromText('LINESTRING(100 100,20 180,180 180)', 0));
SELECT StreetName, DistrictName FROM Districts d, Streets s WHERE s.StreetGeo.STIntersects(d.DistrictGeo) = 1;

結果顯示街道與行政區交集關係。

高效能空間能力

  • CLR 類型大小限制提升 (超過 8000 位元組),支援極複雜多邊形。
  • 關聯表儲存空間資料,結合商業資料類型,免維護獨立空間存儲,高效查詢無需外部聯結。
  • 多層網格空間索引整合於引擎,查詢優化器基於成本決策使用索引。

應用擴展性

  • 多版本支援 (Express 至 Enterprise),無昂貴授權門檻。
  • 支援 WKT、WKB、GML 標準格式匯入匯出,易整合政府/商業資料源與 GIS 系統。
  • CLR 類型易建立用戶端應用,整合 Virtual Earth 等服務 (圖 4 示範普查街區餐廳密度熱力圖)。

結語

SQL Server 2008 以 geography/geometry 雙類型、空間索引、標準化介面與廣泛版本支援,提供全面、高效能、可擴展的空間資料平台,讓所有規模企業整合地理特徵於應用中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved