自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 2008空間數(shù)據(jù)應(yīng)用系列二:空間索引(Spatial Index)基礎(chǔ)

開發(fā)
  在SQL Server 2008 空間應(yīng)用系列一中介紹了一些關(guān)于地理信息的基礎(chǔ)知識(shí),空間參照系統(tǒng)。 本篇主要介紹地理空間索引的概念以及微軟的SQL Server 2008R2中的空間索引的應(yīng)用。

Microsoft SQL Server 2008 提供了全面性的空間支持,可讓組織通過具有空間功能的應(yīng)用程序來無縫地取用、使用及擴(kuò)展以位置為基礎(chǔ)的數(shù)據(jù),***協(xié)助用戶做出更好的決策。本篇文章著重介紹的是空間索引的概念微軟SQL Server 2008空間索引的應(yīng)用。

一、空間索引

  空間索引是指依據(jù)空間對象的位置和形狀或空間對象之間的某種空間關(guān)系按一定的順序排列的一種數(shù)據(jù)結(jié)構(gòu),其中包含空間對象的概要信息。作為一種輔助性的空間數(shù)據(jù)結(jié)構(gòu),空間索引介于空間操作算法和空間對象之間,它通過篩選作用,大量與特定空間操作無關(guān)的空間對象被排除,從而提高空間操作的速度和效率。

 

  來至百科的定義:為便于空間目標(biāo)的定位及各種空間數(shù)據(jù)操作,按要素或目標(biāo)的位置和形狀或空間對象之間的某種空間關(guān)系來組織和存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)。

 

  關(guān)于更多空間索引的知識(shí)點(diǎn)需要深入了解EPSG和SRID,本文主要介紹基于微軟SQL Server 2008的空間數(shù)據(jù)特性實(shí)現(xiàn)介紹,故不詳細(xì)介紹這些基礎(chǔ)理論知識(shí)點(diǎn),有興趣的可以訪問文末的推薦資料鏈接,了解更多關(guān)于EPSG核SRID的相關(guān)知識(shí)。

 

  SQL Server 2008中的空間數(shù)據(jù)類型作為CLR系統(tǒng)類型來執(zhí)行。SQL Server 2008增加了數(shù)據(jù)庫中的CLR類型的***規(guī)模,提高了原來在SQL Server 2005中的8000字節(jié)的限制,這使得它可以存儲(chǔ)非常復(fù)雜的空間數(shù)據(jù)元素,例如通過許多點(diǎn)定義的多邊形。通過在關(guān)系表中存儲(chǔ)空間數(shù)據(jù),SQL Server 2008 使得可以結(jié)合空間數(shù)據(jù)到其他任何商業(yè)數(shù)據(jù)類型中去;這消除了對維護(hù)一個(gè)單獨(dú)的只用于空間數(shù)據(jù)存儲(chǔ)的維護(hù)要求,并使得可以做高性能查詢,它不需要結(jié)合從多個(gè)外部來源獲得的數(shù)據(jù)。

 

  在SQL Server 2008中對空間索引的支持進(jìn)一步增強(qiáng)了對空間數(shù)據(jù)的查詢操作。你可以用一個(gè)集成在SQL Server數(shù)據(jù)庫引擎中的適合的多級(jí)網(wǎng)格索引來檢索空間數(shù)據(jù)??臻g索引包含一個(gè)基于網(wǎng)格的層級(jí),在其中每一級(jí)索引又細(xì)分為由上一級(jí)所定義的網(wǎng)格區(qū)域。下圖為官方給出的一個(gè)空間索引的概率模型圖:

1

  SQL Server查詢優(yōu)化器會(huì)作出基于成本的決策,決定對給定的查詢使用哪種索引,并且因?yàn)榭臻g索引是數(shù)據(jù)庫引擎的一個(gè)完整部分,可以作出關(guān)于是否使用特殊的空間索引的基于成本的決策,就像其它索引一樣。

二、SQL Server 2008的空間參考系統(tǒng)

  微軟SQL Server 2008的空間系統(tǒng)表(實(shí)際上是一個(gè)系統(tǒng)視圖)"sys.spatial_reference_systems"中存儲(chǔ)了詳細(xì)的支持所有大地測量空間參考系統(tǒng)標(biāo)準(zhǔn),該表中的每一行數(shù)據(jù)對應(yīng)于一個(gè)唯一的空間參考系統(tǒng),可以基于這些空間參考系統(tǒng)在SQL Server 2008中來定義任何形式的空間數(shù)據(jù)?!?/P>

2

 

  系統(tǒng)表“sys.spatial_reference_systems”中實(shí)際上僅僅只是存儲(chǔ)了應(yīng)用于SQL Server 2008中地理參照坐標(biāo)的參考系統(tǒng),除了空間參考系統(tǒng)可以使用這張表中列出的參考系統(tǒng)標(biāo)準(zhǔn),也可以基于這些標(biāo)準(zhǔn)來定義基于任何地理投影的空間數(shù)據(jù)。

 

三、空間參照文本格式(WKT)

  Well-Known Text (WKT) Representation of Spatial Reference Systems:顧名思義用眾所周知的文字形式來描述看見坐標(biāo)參考系統(tǒng),它與EPSG(2005年已經(jīng)換名)的坐標(biāo)文字表述模型一致。WKT字符串應(yīng)用于確定空間參考系統(tǒng)的組成部分的描述,其定義主要包含以下10項(xiàng)內(nèi)容:

  1、一個(gè)總體的坐標(biāo)系名

  2、一個(gè)地理圖形坐標(biāo)系統(tǒng)名
  3、一個(gè)基準(zhǔn)面定義
  4、一個(gè)橢球體的名字。長半軸(semi-major axis)和反扁率(inverse flattening)
  5、本初子午線(prime meridian)名和其與格林威治子午線的偏移值
  6、投影方法類型(如橫軸莫卡托)
  7、投影參數(shù)列表(如中央經(jīng)線等)
  8、一個(gè)單位的名稱和其到米和弧度單位的轉(zhuǎn)換參數(shù)
  9、軸線的名稱和順序
  10、在預(yù)定義的權(quán)威坐標(biāo)系中的編碼(如EPSG)

  1. select well_known_text   
  2. from sys.spatial_reference_systems   
  3. where authorized_spatial_reference_id=4326   
  4. and authority_name='EPSG' 

  基于sys.spatial_reference_systems表定義了多種不同的空間參照系統(tǒng)的WKT描述,如上SQL語句查詢出的是我們平時(shí)在地圖應(yīng)用開發(fā)中使用最多的EPSG:4326空間參照系統(tǒng)標(biāo)準(zhǔn),則對于的WKT如下:

  1. GEOGCS["WGS 84",   
  2.         DATUM["World Geodetic System 1984",   
  3.         ELLIPSOID["WGS 84", 6378137, 298.257223563]],   
  4.         PRIMEM["Greenwich", 0],   
  5.         UNIT["Degree", 0.0174532925199433]  
  6.       ]  

  以上KWT字符串確定了EPSG:4326空間參照系統(tǒng)的組成部分元素描述,其主要使用了四種空間配置,分別為:基準(zhǔn)(Datum)、橢圓(Ellipsoid)、本初子午線(Primem)和Unit(計(jì)量單位)。關(guān)于這些空間參考系統(tǒng)參數(shù)在上一篇文中中介紹過,這里就不在做重復(fù)介紹,以上KWT字符串表述的意思大致是這樣的:“WGS 84坐標(biāo)系,采用1984年訂立的世界地理坐標(biāo)系統(tǒng)標(biāo)準(zhǔn),地理標(biāo)準(zhǔn)半徑為:6378137........”。

 

四、SQL Server 2008的空間索引

  SQL Server 2008 引入了對空間數(shù)據(jù)和空間索引的支持?!翱臻g索引”是一種擴(kuò)展索引,允許您對空間列編制索引??臻g列是包含空間數(shù)據(jù)類型(如 geometry 或 geography)數(shù)據(jù)的表列。本節(jié)中的主題介紹了空間索引。

 

  在 SQL Server 2008 中,空間索引(存儲(chǔ)在:sys.spatial_indexes表中)使用 B 樹構(gòu)建而成,也就是說,這些索引必須按 B 樹的線性順序表示二維空間數(shù)據(jù)。因此,將數(shù)據(jù)讀入空間索引之前,SQL Server 2008 先實(shí)現(xiàn)對空間的分層均勻分解。索引創(chuàng)建過程會(huì)將空間分解成一個(gè)四級(jí)“網(wǎng)格層次結(jié)構(gòu)”。這些級(jí)別指的是“第 1 級(jí)”(***)、“第 2 級(jí)”、“第 3 級(jí)”和“第 4 級(jí)”。

 

  每個(gè)后續(xù)級(jí)別都會(huì)進(jìn)一步分解其上一級(jí),因此上一級(jí)別的每個(gè)單元都包含下一級(jí)別的整個(gè)網(wǎng)格。在給定級(jí)別上,所有網(wǎng)格沿兩個(gè)軸都有相同數(shù)目的單元(例如 4x4 或 8x8),并且單元的大小都相同。下圖顯示了網(wǎng)格層次結(jié)構(gòu)每個(gè)級(jí)別的右上角單元被分解成 4x4 網(wǎng)格的情況。事實(shí)上,所有單元都是以這種方式分解的。因此,以此為例,將一個(gè)空間分解成四個(gè)級(jí)別的 4x4 網(wǎng)格際上會(huì)總共產(chǎn)生 65,536 個(gè)第四級(jí)單元。針對空間索引進(jìn)行的空間分解與應(yīng)用程序數(shù)據(jù)使用的度量單位無關(guān)。

4.1

   

 

 

  網(wǎng)格層次結(jié)構(gòu)的單元是利用多種 Hilbert 空間填充曲線以線性方式編號(hào)的。然而,出于演示目的,這里使用的是簡單的按行編號(hào),而不是由 Hilbert 曲線實(shí)際產(chǎn)生的編號(hào)。在下圖中,幾個(gè)表示建筑物的多邊形和表示街道的線已經(jīng)放進(jìn)了一個(gè) 4x4 的 1 級(jí)網(wǎng)格中。第 1 級(jí)單元的編號(hào)為 1 到 16,編號(hào)從左上角的單元開始。

4.2

   

  沿網(wǎng)格軸的單元數(shù)目確定了網(wǎng)格的“密度”:單元數(shù)目越大,網(wǎng)格的密度越大。例如,8x8 網(wǎng)格(產(chǎn)生 64 個(gè)單元)的密度就大于 4x4 網(wǎng)格(產(chǎn)生 16 個(gè)單元)的密度。網(wǎng)格密度是以每個(gè)級(jí)別為基礎(chǔ)定義的。網(wǎng)格配置單元數(shù)目低 :4X4 =16,中8X8 = 64,高16X16 =256,默認(rèn)設(shè)置所有級(jí)別都為 中。

 

  您可以通過指定非默認(rèn)的網(wǎng)格密度控制分解過程。例如,在不同級(jí)別指定不同網(wǎng)格密度對于基于索引空間的大小和空間列中的對象來優(yōu)化索引可能非常有用??臻g索引的網(wǎng)格密度顯示在 sys.spatial_index_tessellations 目錄視圖的 level_1_grid、level_2_grid、level_3_grid 和 level_4_grid 列中。

 

  將索引空間分解成網(wǎng)格層次結(jié)構(gòu)后,空間索引將逐行讀取空間列中的數(shù)據(jù)。讀取空間對象(或?qū)嵗┑臄?shù)據(jù)后,空間索引將為該對象執(zhí)行“分割過程”。分割過程通過將對象與其接觸的網(wǎng)格單元集(“接觸單元”)相關(guān)聯(lián)使該對象適合網(wǎng)格層次結(jié)構(gòu)。從網(wǎng)格層次結(jié)構(gòu)的第 1 級(jí)開始,分割過程以“廣度優(yōu)先”方式對整個(gè)級(jí)別進(jìn)行處理。在可能的情況下,此過程可以連續(xù)處理所有四個(gè)級(jí)別,一次處理一個(gè)級(jí)別。

 

  注:以上內(nèi)容截取SQL Server 2008幫助文檔,詳細(xì)請查看聯(lián)機(jī)幫助文檔。

五、相關(guān)資料

  [1]、EPSG:http://en.wikipedia.org/wiki/European_Petroleum_Survey_Group

  [2]、SRID:http://en.wikipedia.org/wiki/SRID

  [3]、WKT:http://en.wikipedia.org/wiki/Well-known_text

  [4]、空間索引概論:http://www.cnblogs.com/terryfeng/archive/2009/05/27/1490803.html

總結(jié):

通過本文我們了解了空間索引的概念和微軟SQL Server 2008 空間索引的應(yīng)用,在后續(xù)文章中將了解SQL Server 2008 空間數(shù)據(jù)類型。

【編輯推薦】

  1. SQL Server 2008應(yīng)用 阻塞(Blocking)
  2. 微軟 SQL Server 2008中自動(dòng)化數(shù)據(jù)采集器
  3. SQL Servr 2008空間數(shù)據(jù)應(yīng)用系列一:空間信息基礎(chǔ)知識(shí)
  4. 微軟SQL Server 2008令商業(yè)智能平民化
  5. SQL Server 2008幾項(xiàng)新特性概述

 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2011-02-21 13:06:42

Microsoft S

2011-02-21 10:26:53

Microsoft S

2011-02-21 13:23:54

微軟 SQL Serv

2011-03-22 15:36:44

Spatial TooSQL Server

2011-03-22 15:10:49

Bing MapsSQL Server

2011-03-22 10:20:18

Bing MapsSQL Server

2011-02-21 13:41:14

SQL Server

2011-03-22 09:17:12

SQLCRLSQL Server

2011-09-01 13:24:42

SQL Server 呈現(xiàn)GeoRSS訂閱的Bing Maps

2009-04-16 17:55:55

SQL Server 空間數(shù)據(jù).NET

2011-02-21 13:06:34

SQL Servr 2

2009-08-28 11:38:15

MapPoint

2009-04-16 17:38:24

SQL Server 空間數(shù)據(jù)智能

2009-01-20 13:39:56

數(shù)據(jù)挖掘空間數(shù)據(jù)方法

2010-05-07 12:35:05

Oracle spat

2010-03-29 11:31:45

2010-09-07 16:28:58

DB2 空間數(shù)據(jù)

2022-03-30 09:30:00

數(shù)據(jù)庫地理空間查詢SQL

2022-09-14 11:27:19

物聯(lián)網(wǎng)大數(shù)據(jù)智慧城市

2011-08-15 17:55:49

提取MapInfo地圖SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)