【IT168 技術(shù)文檔】在此練習(xí)中,您將創(chuàng)建返回以地理標(biāo)記語(yǔ)言 (GML) 表示的空間數(shù)據(jù)的存儲(chǔ)過(guò)程。GML 是一個(gè)由開放地理空間聯(lián)盟 (OGC) 定義的標(biāo)準(zhǔn),用于在應(yīng)用程序和系統(tǒng)之間交換地理數(shù)據(jù)。SQL Server 中的空間數(shù)據(jù)類型支持 GML 作為空間數(shù)據(jù)類型實(shí)例的數(shù)據(jù)源,也支持 GML 作為表示空間數(shù)據(jù)值的格式。借助對(duì) GML 的這種支持,可以輕松地在 SQL Server 中的空間數(shù)據(jù)和其他地理空間系統(tǒng)(如 Microsoft Virtual Earth)之間進(jìn)行集成。
注意:您可以從 C:\SQLHOLS\Spatial and VE\Solution\StoredProcs.sql 復(fù)制此練習(xí)中使用的代碼
創(chuàng)建包含空間數(shù)據(jù)的數(shù)據(jù)庫(kù)
1. 從開始菜單中的 Microsoft SQL Server 2008 程序組中啟動(dòng) SQL Server Management Studio。收到提示時(shí),使用 Windows 身份驗(yàn)證連接到數(shù)據(jù)庫(kù)引擎的 (local) 實(shí)例。
2. 打開 C:\SQLHOLs\Spatial and VE\Starter 文件夾中的 Create DB.sql 查詢文件。
3. 檢查此腳本中的 Transact-SQL 代碼。請(qǐng)注意,此代碼執(zhí)行下列任務(wù):
? 刪除名為 StoreData的數(shù)據(jù)庫(kù)并重新創(chuàng)建它。
? 創(chuàng)建一個(gè)名為 Stores 表,其中包含名為 StoreLocation 的 geography列。
? 在 StoreLocation 列上創(chuàng)建一個(gè)空間索引。
? 在 Stores 表中插入大量記錄。每個(gè)記錄都包含一個(gè)由緯度和經(jīng)度坐標(biāo)定義的表示地理點(diǎn)的 StoreLocation 值。
4. 單擊執(zhí)行運(yùn)行此腳本。如果尚不存在 StoreData 數(shù)據(jù)庫(kù),請(qǐng)忽略任何有關(guān)無(wú)法刪除該數(shù)據(jù)庫(kù)的錯(cuò)誤。
5. 保持 SQL Server Management Studio 打開,下一個(gè)過(guò)程還要使用此程序。
創(chuàng)建檢索所有商店的存儲(chǔ)過(guò)程
1. 單擊新建查詢創(chuàng)建新查詢。如果收到提示,請(qǐng)使用 Windows 身份驗(yàn)證連接到 (local) 數(shù)據(jù)庫(kù)引擎實(shí)例。
2. 在查詢編輯器中鍵入以下 Transact-SQL 代碼。
1. 在您在上一過(guò)程中添加的 EXECUTE 語(yǔ)句下,添加以下 Transact-SQL 代碼。
注意:此代碼創(chuàng)建一個(gè) geography 實(shí)例,該實(shí)例中包含一個(gè)基于傳遞到存儲(chǔ)過(guò)程的緯度和經(jīng)度參數(shù)的點(diǎn)。然后此代碼使用 geography 數(shù)據(jù)類型的 STBuffer 方法創(chuàng)建表示搜索點(diǎn)周圍方圓 100km 范圍內(nèi)的多邊形 geography 實(shí)例。最后,此代碼返回定義搜索區(qū)域的 geography 實(shí)例的 GML 表示形式以及搜索區(qū)域中的所有商店,通過(guò)使用 geography 數(shù)據(jù)類型的 STIntersects 方法可以找到這些商店。
2. 選擇剛剛添加的 CREATE PROCEDURE 語(yǔ)句,然后單擊執(zhí)行運(yùn)行所選的代碼。
3. 在 CREATE PROCEDURE 語(yǔ)句下,添加下面的代碼以測(cè)試存儲(chǔ)過(guò)程。
4. 選擇剛剛添加的 EXECUTE 語(yǔ)句,然后單擊執(zhí)行運(yùn)行所選的代碼。
5. 在結(jié)果窗格中,單擊第一個(gè) XML 值,以在 XML 查看器中查看搜索區(qū)域的 GML 表示形式。
6. 關(guān)閉 XML 查看器并返回到查詢編輯器。
7. 將查詢腳本文件另存為 C:\SQLHOLs\Spatial and VE\Starter\StoredProcs.sql,然后關(guān)閉 SQL Server Management Studio。
注意:此代碼使用地理數(shù)據(jù)類型的 AsGml 方法返回 GML 格式的空間數(shù)據(jù)值。
3. 單擊執(zhí)行運(yùn)行此腳本。
4. 在 CREATE PROCEDURE 語(yǔ)句下,添加下面的代碼以測(cè)試存儲(chǔ)過(guò)程。
5. 選擇剛剛添加的 EXECUTE 語(yǔ)句,然后單擊執(zhí)行運(yùn)行所選的代碼。
6. 在結(jié)果窗格中,單擊任意 StoreGML 值在 XML 查看器中查看空間數(shù)據(jù)的 GML 表示形式。
7. 關(guān)閉 XML 查看器并返回到查詢編輯器。