本文章是由機器翻譯。

檯面之下

視覺化空間資料

Bob Beauchemin

在 SQL Server 2008 中 Microsoft 引進了兩個新的內建資料型別、 幾何與地理位置的空間資料支援。 雖然您可以 「 看到 」 中三種格式中的空間資料行資料 — 那已知文字、 Well-Known 二進位和地理標記語言 」 (GML) — 以視覺化方式檢視您在地圖上的資料,只內建的方法是透過已新增至 SQL Server Management Studio [空間結果] 索引標籤。 這是開發人員已視覺化地圖多邊形或甚至幾何的資料不相關的到地圖 boon (幾何的版面配置的一個倉儲也許),但是如果您有個城市的位置點的集合,您可以看到只點為單位。 若要將 「 基底地圖 」 (如範例為將城市位置的層級化,在世界地圖) 也可以使用 UNION ALL 語法使用 SELECT 陳述式,並視覺化有空間結果] 索引標籤:

SELECT city_name, geog FROM cities
UNION ALL 
SELECT NULL, geog FROM map_of_the_world_table;

但是 SQL Server Management Studio 是一個系統管理員和程式設計人員的工具。 您喜歡能夠以視覺化方式檢視您產生用於管理報告內的資料。 ’s 看得更清楚的趨勢,牽涉到圖形和 Waldo Tobler ’s 第一次地理定律狀態為 「 Everything 出在其餘的項目,但時更接近事情更密切相關 」。本文章中,我想要顯示在 SQL Server 空間的視覺效果場景上的三個新抵達:SQL Server 2008 R2 Reporting Services (SSRS) 中的地圖控制項、ESRI MapIt 產品,以及 SQL Server 2008 的 MapPoint 增益集。

報告服務地圖控制

地圖視覺效果使用一層的概念。 背景或基底地圖 (比方說的世界地圖) 是里程碑與空間資訊及資料庫資訊的一或多個圖層。 空間資訊可能會組成組多邊形像銷售領域、 例如 [道路] 或 [河流,linestrings 或點 (比如儲存位置。 其中一個最常見的分析商業資料類型是地圖的一個的 choropleth thematic 地圖區域會給您要分析之統計變數等比例呈現灰色。 比方說 choropleth 地圖,在美國顯示依州的銷售額可能看起來 的 圖 1 中螢幕擷取畫面。 新增會顯示您存放區位置的第二個圖層,且您具有可用的分析的另一層。


圖 1 Choropleth 引導模式的狀態由美國的銷售

身為報表程式設計人員,您可以透過報表產生器 3.0] 或 [報表服務專案中商務 「 智慧開發 Studio (BIDS) 存取 SQL Server 2008 R2 對應控制項。 圖會顯示為主要的報表產生器範本中的選項之一。 將 BIDS 專案中您對應控制項加入至報表從工具箱拖曳。 不論是哪一種方式對應精靈引導您走過基本概念。

首先,選擇您使用新的對應圖層] 對話方塊的基底地圖。 基底的地圖可以來自內建的對應表庫、 ESRI shapefile (表示 geospatial 資料一個標準的資料格式) 或 SQL Server 空間查詢。 的 圖 2 所示。


圖 2 的 SSRS 2008 R2 中的新圖層] 對話方塊

如果選擇 [SQL Server 空間查詢您取得地圖資料從 SQL Server 資料表中的空間資料行。 精靈會引導您走過您使用 「 查詢設計師 」 建立查詢時,建立資料連接。 您的查詢必須包含至少一個資料行的資料型別幾何或地理位置或,就會發生的錯誤。 下一個對話方塊選擇空間的資料] 與 [圖檢視選項可讓您選擇空間欄位 (萬一您的查詢包含多個空間的欄位)] 和 [圖層類型如 的 圖 3 所示。 通常,表格中的空間欄將包含所有資料點、 所有 linestrings 或所有多邊形而且對應表精靈查看資料,並且傳回對應的圖層類型的種類。 您可以變更圖層] 類型 ; 不過,如果您選擇的欄位含有所有多邊形 (或 multipolygons) 但選取的圖層類型:點沒有對應的資料會出現在預覽窗格中。  一項不錯的功能是以包含 Bing 對應背景選項因此如果您點資料您可以使用 Bing 對應並排作為基底地圖背景為您的地圖控制項。 以做為背景的 [Bing 對應牌,您可以選擇街道地圖、 航空或交互式檢視。 如果選擇 [Bing 對應空間資料會層疊 Bing 對應的基底圖層的上方。


圖 3 選擇空間的資料] 與 [對應選項

一旦您已設定基底的圖層或層次,出現一組對應型別選擇而有所不同,視情況而定空間資料是否包含點、 linestrings 或多邊形。 比方說如果您層包含多邊形,您可以選擇之間基本圖 (僅空間資料選取),色彩分析圖 (choropleth 對應所述的較早何處每個多邊形的色彩根據未分析的變數),或泡泡圖 (位置中每個區域的中央符號大小是依比例分析變數所)。 Linestring 資料可讓您選擇基本的行引導模式] 或 [分析線條圖。 點的資料可讓您選擇基本的標記對應、 分析標記圖或泡泡圖。 choropleth 地圖 的 圖 1 是由精靈所產生的色彩分析的對應。

選擇色彩分析] 或 [泡泡地圖導致可讓您選取要分析的資料行的面板。 這項資料可能是在相同的資料集做為您的空間資料或在不同的資料集與相關的欄位。 比方說,您可能有包含狀態資訊的資料表和每個狀態包含 SalesTotals 的另一個資料表。 雖然地圖圖形資料可以只來自 shapefiles、 地圖圖庫或空間的 SQL Server 資料表,分析的資料可以來自包括 SQL Server 分析服務任何資料來源中。

如果需要,選擇您的分析資料來源之後最終面板可讓您選擇如一個泡泡地圖或多邊形色彩,以視覺化方式檢視資料的泡泡大小的常見視覺效果層面。  您也可以選擇是否會顯示圖層 ’ 標籤。 比方說如果您的地圖的多邊形,代表圖案的狀態是由所的組成標籤可能是狀態的名稱。  別忘了標籤只出現在多邊形多邊形夠大,足以容納文字。

當然如同一般的精靈架構開發,精靈只而已您可以執行的工作的表面。 控制項中對應的部份包含在一個檢視區的是不同的控制項,會強制使用在 [報表] 頁面上對應的界限。 地圖控制項的屬性會分成大致上檢視區內容、 對應屬性和圖層屬性]。 您可以變更使用內容功能表或在 Windows 中的內容提供更詳細的檢視屬性。 一組您在對應的 [屬性] 視窗中看到的屬性取決於在其上對應控制項的一部分擁有焦點。

檢視區 ’s 屬性中指定對應投射。 您所做的選擇視兩下空間的資料行使用圖層中的型別而定,’s 重要實現您的資料和 SRID (空間參考 ID) 如何影響您的選擇。  若要以最簡單的情形開始假設您喜歡版面配置的公司 ’s 倉儲 (實體的倉儲貨物的儲存位置,不是資料倉儲) 的對應。 您可能是測量在倉儲、 繪製樓面規劃及對應位置的貨物根據它們在樓面規劃中的位置。 在這種情況下被對應的距離就是小型地球是圓形,而不是一般事實不重要。 您測量在幾何的座標系統 (X 和 Y 座標) 和 SQL Server ’s 幾何資料型別方面。 在這種情況下您將檢視區 ’s 座標系統屬性設定為平面。

較常見的情形是繪製在緯度和 longitude.� 方面地球上的位置對應資料包含緯度,並經度因此 you�re 可能使用地理資料 type.� 產生一個平面地球 (也就是技術上的 oblate spheroid),從地圖控制項對應提供一組的地圖估算該 you�re。若要適當地使用地圖估算,地理資料型別的資料行應該使用 SRID 4326 4269 或其中一個其他常見地球相關 SRIDs 地圖控制在此情況下是 expecting.�,您將 Viewport�s 座標系統] 屬性設定為 Geographic,然後選擇地圖投射為 Viewport�s 投射屬性清單。

最後一次的情形是當您的資料使用預計的座標系統時。 在這種情況下使用 SQL Server ’s 幾何資料型別,不地理位置。 地圖控制項將不執行任何動作的專案資料,因為投影資訊已經是資料的一部份鍵入本身。 預計的座標系統的常見 SRIDs 包括狀態平面資料投射] 或 [英國國家格線。  在這種情況下您將檢視區 ’s 座標系統屬性設定為平面。

我提到這所有原因將是,以外的預計的地理位置座標 (這會假設為 4326-WGS84 協調),地圖控制項將不會自動 reproject 之間不同的座標系統。 比方說您 can’t 混合一個 Bing 對應並排層 (地理) 與一個英國國家格線層 (平面) 相同的地圖上。  結果 wouldn’t 是漂亮。

大贏與 「 報告服務 2008 R2 對應控制項是 SQL Server 空間資料是自動 visualizable 各種地圖格式。 商務資料空間資料之間的相互關係皆可輕鬆地使用該精靈完成,且您需要的所有其他電源使用與自訂項目的屬性透過主機。 我最愛的 (nonspatial) 功能之一地圖控制項是能夠透過一般的 「 動作 」 機制,SQL Server 報告服務 」 中啟用向下切入。 只需選取 [對應屬性] 對話方塊中的 [動作] 索引標籤上並您可以連結在一起包含在世界地圖上顯示依國家分類的銷售,然後向下切入至狀態] 或 [再到城市的區域的地圖的報表。 縣/市] 層級中,您可以新增點圖層與您的存放區位置。 如需有關準備並搭配 SQL Server 2008 R2 報告的服務地圖控制項使用空間資料的額外資訊,請參閱 Ed Katibah ’s 絕佳的部落格數列 blogs.msdn.com/edkatibah/archive/2009/05/09/cartographic-adjustment-of-spatial-data-for-sql-server-reporting-services-part-1.aspx 處開始。

ESRI MapIt 產品

ESRI 世界 ’s 前置 GIS 公司發行產品,名為 MapIt 在其 2009年使用者會議。 MapIt 實際上是一組讓您更容易使用牽涉到位置的現有商務資料的元件。 此產品直接產生,並且會消耗 SQL Server 2008 空間資料型別,因此沒有額外的 ESRI 軟體需要使用它。

位置為基礎的商務資料的最常見的範例是地址資料,並因此 MapIt 包含一個程式之空間資料助理,執行 geocoding 在不同的格式中的地址資料。 空間資料助理將地址與任何 SQL Server 資料表中加入新的幾何資料行並填入由呼叫 Web 服務。 您必須選擇 ESRI 對應服務或 Bing 對應 Geocoding 服務。 一旦更新現有資料,您可以在觸發程序中使用 geocoding,保持位置同步。 這種觸發程序的範例是可用 MapIt 支援網站上。

若要顯示您的商務資料,連同其他圖層 (比方說的學生連同學區界限所組成的圖層的位址),需要匯入 SQL Server 2008 的其他位置資訊。 空間資料助理可以匯入 ESRI Shapefile 格式的現有 GIS 資料或者組的免費 ESRI 線上資料可用的對應。 在匯入時,允許您變更的資料投射来對應到 Bing 對應或 ARCGIS 伺服器使用的投影。 您甚至可以指定您的選擇清單中的支援 SRIDs SRID。 匯入函式會產生匯入資料表的 SQL Server 幾何資料行。

一旦您在 SQL Server 中有您的商務資料和其他地圖] 圖層資料,可以在您自己的程式中進行視覺化。 ESRI 提供免費的 「 Silverlight 」 和 「 Windows Presentation Foundation (WPF) 可用來建立豐富的 Web 和 Windows 架構應用程式的 API。 若要啟用 SQL Server 空間資料使用這些 API,MapIt 包括一個 REST 為基礎空間資料服務,可讓您產生 JSON] 或 [HTML 輸出的格式的 Silverlight API 會耗用的一或多個網站端點公開 (Expose)。  它包含可讓您瀏覽您的資料表和檢視表,並查詢包含幾何和地理位置的資料行的一個空間資料服務目錄。 一旦您決定在您您對應中要使用的資料上,只需從空間資料服務目錄位置複製該資料表或檢視 ’s URL,並貼到使用 API 的應用程式。 這裡 ’s 公開 AdventureWorks2008 資料庫檢視 Sales.vIndividualCustomerSpatial 我建立的現有 AdventureWorks2008 檢視 (圖 4 ) 中加入 SpatialLocation 資料行中使用空間的資料服務中的客戶地址的範例。 此對應包含了我喜愛的功能之一 — 叢集元件加入叢集點較低的地圖解析度。 如向下切入到較高的地圖解析度時,點叢集都是個別點為可見。

圖 4 使用空間的資料服務,以檢視

<!--UserControl element and namespace declarations elided for clarity -->
<Grid x:Name="LayoutRoot">
    <esri:Map x:Name="MyMap" >
        <esri:Map.Layers>
            <esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_
StreetMap_World_2D/MapServer"/>
                <esri:FeatureLayer ID="MyFeatureLayer"
                    Url="http://zmv10/SDS/databases/AdventureWorks2008/Sales.
vIndividualCustomerSpatial"
                Where="CountryRegionName = 'United States'">
                <esri:FeatureLayer.Clusterer>
                    <esri:FlareClusterer FlareBackground="#99FF0000"
                        FlareForeground="White" MaximumFlareCount="9" />
                    </esri:FeatureLayer.Clusterer>
                </esri:FeatureLayer>
            </esri:Map.Layers>
        </esri:Map>
</Grid>

這個程式碼產生的結果都是 的 [圖 5] 所示。 請注意您可以混合,並且符合 SQL Server 2008 與 ARCGIS 或 Bing 對應的空間資料層基底對應圖層,以及使用 [空間資料助理匯入其他圖層。 比方說,您可以新增包含銷售人員地址,以視覺化方式檢視您的銷售人員 vis-à-vis 位置您的客戶的圖層。 圖層型別也可用的圖形並繪圖介面支援的 API 以進一步地圖互動功能。 最後,沒有特殊的圖層可用在 ESRI 支援網站 GEORSS 和 KML。 我幾乎沒有刮痕 API ’s 功能的表面。  如需 Silverlight 和 WPF API 的多個資訊,請參閱 resources.esri.com/arcgisserver/apis/silverlight/index.cfm


圖 5 MapIt 產生地圖與客戶位置顯示點叢集

若要提供專業外觀的對應根據 SQL Server 資料,而不會在程式設計與維護 Silverlight 或 WPF 的應用程式的成本。 MapIt 包括可讓您以沒有程式設計的 SharePoint 網站中加入對應的網頁組件。 您可以包含從空間資料:

  • 包含地址或緯度/經度欄位的 SharePoint 清單
  • SQL Server 空間資料公開空間資料小幫手
  • ARCGIS 伺服器資料

編輯 ESRI SharePoint 網頁組件的執行個體,可以讓您藉由提供 URL 或 SharePoint 清單名稱匯入空間資料的圖層。 您可以使用 Bing 對應或 ARCGIS 伺服器作為基底的地圖。 其他對話方塊可讓您指定篩選條件運算式,定義顯示的其他資訊,如您將滑鼠指標停留 (稱做 「 MapTips Silverlight API 中) 的個別點的快顯視窗、 選擇象徵意義並新增一個核取方塊,即可叢集的點。 在地圖將會重新整理,以顯示最新的資訊,如果您有動態地變更資料。 您可以設定資料重新整理] 和 [快取在可個別的網頁組件程度或全域空間的資料服務。

MapPoint 2010 增益集的 SQL Server 2008

MapPoint 是 Microsoft 原始提供商務空間資料視覺效果和位置為基礎的查詢的領域中。 其優點之一就是 MapPoint 隨附豐富在離線模式,以及讓您新增您自己空間圖層中運作的多層次的對應資訊的集合。 最新版的 MapPoint 甚至隨附 GPS 整合。 在八月 2009 Microsoft 發行一個免費 MapPoint 增益集的 SQL Server 2008 空間資料,就可輕鬆新增圖層的 SQL Server 為基礎的資訊、 執行空間查詢對資料與圖層,及儲存結束產品來進一步細分的磁碟。  對應的儲存的版本可以分散而不需要存取 SQL Server 使用。

在 WPF 架構增益集使用直接 ADO.NET 連線,討論到 SQL Server。 一旦您連接到 SQL Server 執行個體和包含您空間資料 (如 的 圖 6 所示) [新增圖層] 索引標籤中的資料庫,您選擇包含要做為您層空間資料行的資料表。 您可以限制功能,以目前的地圖程度,以及選取資料行子集和一般化傳回的資料來減少就會傳回 (以及因此請填入速度較快的圖層) 的資料量。 您也可以指定 SQL WHERE 子句上您的查詢。 查詢介面專為最大的速度而設計 ; 以確保兩下空間索引使用,您可以選擇要用於更複雜的查詢中的一般資料表運算式。  當然是對話方塊是提供,讓您在象徵意義的完整控制權。


圖 6 MapPoint 增益集新增圖層對話方塊

像點的所有資料在資料表中包含選取空間功能時,會出現 [對應提示您指定。 此資料是 「 Live,」 是,您可以編輯對應於個別的空間功能資料表的資料而更新的資料將會儲存到資料庫,叫用 [儲存] 按鈕時。 甚至可以新增新功能 (包含空間資料的資料列) 或直接從增益集刪除功能。

最後,您可以修改現有的空間資料層為基礎的查詢。 比方說一旦我擷取組大致上對應到我的城市限制的對應範圍為基礎的學校位置,我可以查詢,以設定要尋找的我屋內一英里學校。 或者,我可以在任何其他我擷取的欄位中查詢。 每個額外的查詢將會帶回額外層級和您可以隱藏、 顯示和儲存在對應之前,先精簡您的圖層。 當您儲存對應時,不只儲存圖形的圖層還會產生它們,所以如果在資料變更,您可以更新您的圖層的 SQL 查詢。 對於 sub-layer 查詢產生的 SQL 視窗中會顯示執行查詢之前。 有 ’s 一個使用者可設定的逾時] 值,您可以取消進行中的執行層查詢。 您直接連線到 SQL Server 的事實會讓經驗更加互動式。  甚至 ’s 公用程式,可讓您將資料匯入 SQL Server 從圖形的檔案或 MapInfo.MIF 檔案。

產品和我此處提及的功能都是只是最新的展開 [使用 SQL Server 空間資料的方式。 在另外的 SQL Server 2008 產品安全軟體 ’s FME 被整合與 SQL Server 整合服務 (SSIS),讓兩下空間 ETL SSIS 工作流程中。 或許是在下一版的 SQL Server 將會看到與 SQL Server 分析服務和甚至資料採擷功能更多的整合。 內建和協力廠商的視覺效果支援展開超過分析地址使來自活著的一般商務資料的位置資料可用性。

Bob Beauchemin 是以資料庫為中心的應用程式 practitioner 且架構設計人員、 課程作者和講師、 寫入器以及在 SQLskills 開發 o 人 h 員 û 工 u 具 ã 技能夥伴。 他寫入書籍和文章上 SQL Server、 資料存取和整合技術和資料庫的安全性。 您可以在 bobb@sqlskills.com 到達他。