Whitepaper_How to user RS map in SQL Server 2008 R2_ChS

SQL SERVER 2008 R2地图报表开发与应用SQL Server技术文档作者:张平安, 朱宁发布日期:January 2010适用产品: SQL Server 2008 R2摘要:本文简要介

SQL SERVER 2008 R2地图报表开发与应用

SQL Server技术文档

作者:张平安, 朱宁

发布日期:January 2010

适用产品: SQL Server 2008 R2

摘要:本文简要介绍了如何在SQL Server 2008 R2中创建和开发地图报表。文档首先基于Adventure works示例数据库叙述了创建地图报表的基本步骤、地图控件的主要属性及其使用方法、使用“地图层”向导添加地图层等操作,之后介绍了以电信业务为背景的BINET 项目地图报表的开发过程。

,

版权声明

本白皮书仅用于提供信息。Microsoft 对本文档中的信息不做任何明示、默示或法定的担保。

遵守所有适用的版权法律是用户的责任。在不对版权法所规定的权利加以限制的情况下,未得到Microsoft Corporation明确的书面许可,不得为任何目的、以任何形式或手段(电子的、机械的、影印、录制等等) 复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。

本文档可能涉及Microsoft 的专利、专利申请、商标、版权或其它知识产权。除非

Microsoft 通过书面许可协议明确提供,此文档并没有授予您对这些专利、商标、版权或其它知识产权的任何许可。

除非特别说明,此处所述作为范例的公司、组织、产品、域名、电子邮件地址、徽标、人员、地点和事件均为虚构,不与任何真实的公司、组织、产品、域名、电子邮件地址、徽标、人员、地点或事件有任何联系,也不应据此进行任何臆测或推断。

2010 Microsoft Corporation.保留所有权利。

Microsoft, SQL Server是Microsoft Corporation在美国和/或其它国家的注册商标或商标。

所有其它商标均是其各自所有者的财产。

,

目录

SQL SERVER SERVER 2008 R2地图报表开发与应用 ................................................ 0

版权声明 ....................................................................................................... 1

引言 ............................................................................................................ 1 1

2 准备工作 ................................................................................................ 1 使用地图 ................................................................................................ 1

第一张地图报表 . ................................................................................... 1

使用SQL 空间数据创建地图层 .................................................................. 5

向地图中添加线条层 .............................................................................. 9

添加 Bing 地图图块背景 ....................................................................... 12

添加 Virtual Earth 图块背景 . ............................................................................12

设置层的透明度..............................................................................................13 2.1 2.2 2.3 2.4 2.4.1 2.4.2

2.5

2.6

2.7

2.8

2.9 为多边形层指定颜色规则 ....................................................................... 14 在空间数据与分析数据之间建立关系 . ......................................................... 14 为层上的所有数据绑定多边形指定颜色规则 . ................................................. 15 设置色阶的格式 . ................................................................................. 18 使用图例 . ......................................................................................... 19

创建新图例 ...................................................................................................19

将图例与颜色规则关联 .....................................................................................19 2.9.1 2.9.2

3 BINET 地图案例 ....................................................................................... 20

3.1

3.2 案例需求 . ......................................................................................... 20 准备数据集 ....................................................................................... 21

空间数据 ......................................................................................................21

分析数据 ......................................................................................................23

创建工程 ......................................................................................................23

建立共享数据源..............................................................................................23

建立主地图报表Interruption.rdl .......................................................................25

建立空间数据集..............................................................................................25

建立分析数据集..............................................................................................27

拖放地图控件 ................................................................................................28

绑定空间数据到地图控件 ..................................................................................28

绑定分析数据到地图控件 ..................................................................................30

定义报表属性 ................................................................................................33

定义报表跳转动作 . ..........................................................................................35 3.2.1 3.2.2 3.3 创建地图报表 .................................................................................... 23 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.3.10

3.4 部署报表 . ......................................................................................... 36

,

引言

SQL Server 2008 R2是Microsoft SQL Server下一代平台产品,将于2010年上半年正式发布,目前已有August CTP和November CTP两种版本提供下载试用。SQL Server 2008 R2提供了诸多激动人心的新特性。在BI 方面最引人注目的一点是将地图功能集成到Reporting Services当中。开发人员只需点击几下鼠标即可生成报表地图,其地理空间数据以GEOMT RY 或者GEOGRAPHY 类型存储在SQL Server 2008 R2和ESRI SHP文件中。

本文简要介绍了如何在SQL Server 2008 R2中创建和开发地图报表。文档首先基于Adventure works示例数据库叙述了创建地图报表的基本步骤、地图控件的主要属性及其使用方法、使用“地图层”向导添加地图层等操作,之后介绍了以电信业务为背景的BINET 项目地图报表的开发过程。

1 准备工作

为更好学习SQL Server 2008 R2的地图报表功能,完成本文档中案例的开发过程,建议您先完成如下准备工作:

⏹ 您的计算机上已经安装了Microsoft SQL Server 2008 R2 Report Building 3.0或者其自带的SQL

Server Business Intelligence Development Studio开发环境。

⏹ 在 Microsoft SQL Server 2008 R2 Reporting Services 报表服务器或与 SQL Server 2008 R2

Reporting Services 报表服务器集成的 SharePoint 站点上保存和查看报表的权限。即必须能够浏览到

报表服务器并且向其保存报表。

⏹ 报表服务器的 URL 以及报表的默认文件夹。

2 使用地图

2.1 第一张地图报表

首先,我们以SQL Server Business Intelligence Development Studio为开发环境创建一张简单的地图报表。 单击“开始”,依次指向“程序”—Microsoft SQL Server 2008 R2—SQL Server Business Intelligence Development Studio。创建一个新的报表工程MapReport ,并新建一个报表项目FirstMap.rdl

在工具箱面板中,拖放“地图”控件到报表中:

此时将打开地图向导。如下图所示:

1

,

在“选择空间数据的来源”页上,有三种空间数据来源可供选择:

Map gallery:是Map 控件自带的地图库,可选择美国及其各州地图

ESRI shapefile:从外部导入含空间地理数据的地图文件

SQL Server spatial query:可使用T-SQL 查询地理数据作为地图的空间数据来源(稍后将具体介绍) 这里我们选择“Map gallery”。

在“Map gallery”窗格中,展开“USA (美国)”下的“States by County”,然后单击“Washington ”。“地图预览”窗格将显示华盛顿的乡镇地图。

2

,

单击“下一步”。

在“选择空间数据和地图视图选项”上,接受默认值。默认情况下,来自地图库的地图元素将自动嵌入到报表定义中。 单击“下一步”。

在“选择地图可视化”页中,选择“基本图”

然后单击“下一步”。

在“选择颜色主题和数据可视化”上,用户可定义地图的主题及“显示标签”选项。选择“显示标签”,从“数据字段”下拉列表中,单击 #COUNTYNAME。表示地图区域的显示内容为乡镇名,右侧的预览图将随选项的变化而更新。

“地图预览”窗格还将显示以下各项:

⏹ 一个标题,其文本为地图标题。 一个地图,显示华盛顿的各个乡镇,其中每个县都用一种不同颜色表示,乡镇名称出现在区域上方适合的

位置。

⏹ 一个图例,包含标题和项1至5的列表。 一个色阶,包含值0到160但没有颜色。

3

,

一个距离宽度,显示公里数(km)和英里数(mi)。

单击“完成”。“设计”视图将打开,并在报表设计图面上显示该地图。

单击地图以选择它并显示“地图层”区域。如下图所示:

“地图层”区域显示一个层类型为“嵌入”的多边形层。每个乡镇都是该层上的一个嵌入地图元素。 右键单击地图标题,然后单击“标题属性”。

将标题文本替换为AdventureWorks Reseller。单击“确定”。点击“Preview ”预览报表,如下图所示:

4

,

上面创建了一个简单的华盛顿特区的地图报表,报表包含报表标题、地图标题、地图以及距离刻度。各乡镇用调色板中的颜色区分,但颜色并不与任何数据关联。距离刻度同时用公里和英里显示距离。图例和色阶并不显示,因为它们没有关联的数据。数据与地图区域的绑定,我们将在下面介绍。

2.2 使用SQL 空间数据创建地图层

接下来我们通过另一种数据来源——SQL 空间数据,在上述报表的基础上添加一个新的地图层,我们拟添加一个地图层,用于显示销售AdventureWorks 产品的商店的位置。步骤如下:

切换到“设计”视图。

双击地图以显示“地图层”区域。在工具栏上,单击“新建层向导”按钮。

在“选择空间数据的来源”页上,选择“SQL Server spatial query”,然后单击“下一步”。

在“选择与 SQL Server 空间数据源的连接”上,单击“新建”。

在“数据源属性”对话框中,单击“General ”。如下图所示,建立数据源SQLMap ,并连接Adventureworks 数据库。

点击OK ,如下图所示:点击“下一步”,接下来我们创建一个数据集查询,其中同时包含空间数据和分析数据。在“设计查询”页中,单击“编辑为文本”。查询设计器切换到基于文本的模式。

将以下查询语句粘贴到查询窗格中:

5

,

Select 402 as BusinessEntityID, 'Impromptu Trips' as Store, 'Mountain'as Specialty, 'Union Gap' as City,

'Yakima' as County, CAST(1500000 as money) asAnnualSales,

CAST('POINT(-120.352399683576 46.5526404267361)' as geography) AS SpatialLocation

UNION ALL

SELECT 518 AS BusinessEntityID, 'Latest Sports Equipment' AS StoreName, 'Mountain' as Specialty, 'Seattle' AS City, 'King' as County, CAST('800000' as money) as AnnualSales,

CAST('POINT(-122.2716149145 47.6252759540999)' as geography) AS SpatialLocation

UNION ALL

Select 656 as BusinessEntityID, 'Outstanding Cycles' as Store, 'Touring'as Specialty, 'Spokane' as City,

'Spokane' as County, CAST(2000000 as money) as AnnualSales,

CAST('POINT(-117.458326188527 47.7390846943325)' as geography) AS SpatialLocation

UNION ALL

Select 762 as BusinessEntityID, 'Friendly Bike Shop' as Store, 'Road' as Specialty, 'Bellingham' as City,

'Whatcom' as County, CAST(2000000 as money) as AnnualSales,

CAST('POINT(-122.526710739 48.7985754516)' as geography) AS SpatialLocation

UNION ALL

Select 774 as BusinessEntityID, 'Rugged Bikes' as Store, 'Touring' as Specialty, 'Everett' as City,

'Snohomish' as County, CAST(3000000 as money) as AnnualSales,

CAST('POINT(-122.339928832415 48.0034793435206)' as geography) AS SpatialLocation

UNION ALL

Select 870 as BusinessEntityID, 'Vast Bike AnnualSales and Rental' as Store, 'Mountain' as Specialty, 'Chehalis' as City, 'Lewis' as County, CAST(3000000 as money) as AnnualSales,

CAST('POINT(-123.173202922628 46.5949185631117)' as geography) AS SpatialLocation

UNION ALL

Select 1138 as BusinessEntityID, 'Roving Sports' as Store, 'Road' as Specialty, 'Puyallup' as City,

'Pierce' as County, CAST(1500000 as money) as AnnualSales,

CAST('POINT(-122.141962349474 47.2117618655752)' as geography) AS SpatialLocation

UNION ALL

Select 1230 as BusinessEntityID, 'Fitness Supplies' as Store, 'Touring' as Specialty, 'Sequim' as City,

'Clallam' as County, CAST(800000 as money) as AnnualSales,

CAST('POINT(-123.165980874577 48.0931018882565)' as geography) AS SpatialLocation

UNION ALL

Select 1270 as BusinessEntityID, 'Outdoor Sports Supply' as Store, 'Mountain' as Specialty, 'North Bend' as City, 'King' as County, CAST(300000 as money) as AnnualSales,

CAST('POINT(-121.50439946838 47.5225521767213)' as geography) AS SpatialLocation

UNION ALL

Select 1388 as BusinessEntityID, 'Official Parts Shop' as Store, 'Road' as Specialty, 'Kelso' as City,

'Cowlitz' as County, CAST(1000000 as money) as AnnualSales,

CAST('POINT(-122.77961702831 46.1007615739732)' as geography) AS SpatialLocation

UNION ALL

Select 1412 as BusinessEntityID, 'City Manufacturing' as Store, 'Mountain' as Specialty, 'Shelton' as City,

'Mason' as County, CAST(2500000 as money) as AnnualSales,

CAST('POINT(-123.323052823833 47.1401103193325)' as geography) AS SpatialLocation

我们可在查询结果网格中看到七列:

BusinessEntityID 、Store 、Specialty 、City 、County 、AnnualSales 和SpatialLocation 。

6

,

此数据表示华盛顿州销售AdventureWorks 自行车的一组商店。结果集中的每行都包含一个商店标识符、商店名称、该商店专销的自行车类型、商店所在的市/镇、年销售额以及用经度和纬度表示的空间位置。

点击“下一步”,进入“选择空间数据和地图视图选项”页,如下图所示:

验证“空间字段”为SpatialLocation ,并且“层类型”为“点”。接受本页上的其他默认值。地图视图显示圆圈,这些圆圈标记销售AdventureWorks 产品的商店的位置。

单击“下一步”。接下来需要指定一个地图类型,它显示随分析数据而改变的标记。这里我们选择“分析标记图”。如下图所示:

7

标签: