如何在sql server r2中使用地图功能.docx
- 文档编号:12870867
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:52
- 大小:4.59MB
如何在sql server r2中使用地图功能.docx
《如何在sql server r2中使用地图功能.docx》由会员分享,可在线阅读,更多相关《如何在sql server r2中使用地图功能.docx(52页珍藏版)》请在冰点文库上搜索。
如何在sqlserverr2中使用地图功能
SQLServerServer2008R2地图报表开发与应用
SQLServer技术文档
作者:
张平安,朱宁
发布日期:
January2010
适用产品:
SQLServer2008R2
摘要:
本文简要介绍了如何在SQLServer2008R2中创建和开发地图报表。
文档首先基于Adventureworks示例数据库叙述了创建地图报表的基本步骤、地图控件的主要属性及其使用方法、使用“地图层”向导添加地图层等操作,之后介绍了以电信业务为背景的BINET项目地图报表的开发过程。
版权声明
本白皮书仅用于提供信息。
Microsoft对本文档中的信息不做任何明示、默示或法定的担保。
遵守所有适用的版权法律是用户的责任。
在不对版权法所规定的权利加以限制的情况下,未得到MicrosoftCorporation明确的书面许可,不得为任何目的、以任何形式或手段(电子的、机械的、影印、录制等等)复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。
本文档可能涉及Microsoft的专利、专利申请、商标、版权或其它知识产权。
除非Microsoft通过书面许可协议明确提供,此文档并没有授予您对这些专利、商标、版权或其它知识产权的任何许可。
除非特别说明,此处所述作为范例的公司、组织、产品、域名、电子邮件地址、徽标、人员、地点和事件均为虚构,不与任何真实的公司、组织、产品、域名、电子邮件地址、徽标、人员、地点或事件有任何联系,也不应据此进行任何臆测或推断。
2010MicrosoftCorporation.保留所有权利。
Microsoft,SQLServer是MicrosoftCorporation在美国和/或其它国家的注册商标或商标。
所有其它商标均是其各自所有者的财产。
目录
SQLServerServer2008R2地图报表开发与应用0
版权声明1
引言1
1准备工作1
2使用地图1
2.1第一张地图报表1
2.2使用SQL空间数据创建地图层5
2.3向地图中添加线条层9
2.4添加Bing地图图块背景12
2.4.1添加VirtualEarth图块背景12
2.4.2设置层的透明度13
2.5为多边形层指定颜色规则14
2.6在空间数据与分析数据之间建立关系14
2.7为层上的所有数据绑定多边形指定颜色规则15
2.8设置色阶的格式18
2.9使用图例19
2.9.1创建新图例19
2.9.2将图例与颜色规则关联19
3BINet地图案例20
3.1案例需求20
3.2准备数据集21
3.2.1空间数据21
3.2.2分析数据23
3.3创建地图报表23
3.3.1创建工程23
3.3.2建立共享数据源23
3.3.3建立主地图报表Interruption.rdl25
3.3.4建立空间数据集25
3.3.5建立分析数据集27
3.3.6拖放地图控件28
3.3.7绑定空间数据到地图控件28
3.3.8绑定分析数据到地图控件30
3.3.9定义报表属性33
3.3.10定义报表跳转动作35
3.4部署报表36
引言
SQLServer2008R2是MicrosoftSQLServer下一代平台产品,将于2010年上半年正式发布,目前已有AugustCTP和NovemberCTP两种版本提供下载试用。
SQLServer2008R2提供了诸多激动人心的新特性。
在BI方面最引人注目的一点是将地图功能集成到ReportingServices当中。
开发人员只需点击几下鼠标即可生成报表地图,其地理空间数据以GEOMTRY或者GEOGRAPHY类型存储在SQLServer2008R2和ESRISHP文件中。
本文简要介绍了如何在SQLServer2008R2中创建和开发地图报表。
文档首先基于Adventureworks示例数据库叙述了创建地图报表的基本步骤、地图控件的主要属性及其使用方法、使用“地图层”向导添加地图层等操作,之后介绍了以电信业务为背景的BINET项目地图报表的开发过程。
1准备工作
为更好学习SQLServer2008R2的地图报表功能,完成本文档中案例的开发过程,建议您先完成如下准备工作:
⏹您的计算机上已经安装了MicrosoftSQLServer2008R2ReportBuilding3.0或者其自带的SQLServerBusinessIntelligenceDevelopmentStudio开发环境。
⏹在MicrosoftSQLServer2008R2ReportingServices报表服务器或与SQLServer2008R2ReportingServices报表服务器集成的SharePoint站点上保存和查看报表的权限。
即必须能够浏览到报表服务器并且向其保存报表。
⏹报表服务器的URL以及报表的默认文件夹。
2使用地图
2.1第一张地图报表
首先,我们以SQLServerBusinessIntelligenceDevelopmentStudio为开发环境创建一张简单的地图报表。
单击“开始”,依次指向“程序”—MicrosoftSQLServer2008R2—SQLServerBusinessIntelligenceDevelopmentStudio。
创建一个新的报表工程MapReport,并新建一个报表项目FirstMap.rdl
在工具箱面板中,拖放“地图”控件到报表中:
此时将打开地图向导。
如下图所示:
在“选择空间数据的来源”页上,有三种空间数据来源可供选择:
Mapgallery:
是Map控件自带的地图库,可选择美国及其各州地图
ESRIshapefile:
从外部导入含空间地理数据的地图文件
SQLServerspatialquery:
可使用T-SQL查询地理数据作为地图的空间数据来源(稍后将具体介绍)
这里我们选择“Mapgallery”。
在“Mapgallery”窗格中,展开“USA(美国)”下的“StatesbyCounty”,然后单击“Washington”。
“地图预览”窗格将显示华盛顿的乡镇地图。
单击“下一步”。
在“选择空间数据和地图视图选项”上,接受默认值。
默认情况下,来自地图库的地图元素将自动嵌入到报表定义中。
单击“下一步”。
在“选择地图可视化”页中,选择“基本图”
然后单击“下一步”。
在“选择颜色主题和数据可视化”上,用户可定义地图的主题及“显示标签”选项。
选择“显示标签”,从“数据字段”下拉列表中,单击#COUNTYNAME。
表示地图区域的显示内容为乡镇名,右侧的预览图将随选项的变化而更新。
“地图预览”窗格还将显示以下各项:
⏹一个标题,其文本为地图标题。
⏹一个地图,显示华盛顿的各个乡镇,其中每个县都用一种不同颜色表示,乡镇名称出现在区域上方适合的位置。
⏹一个图例,包含标题和项1至5的列表。
⏹一个色阶,包含值0到160但没有颜色。
⏹一个距离宽度,显示公里数(km)和英里数(mi)。
单击“完成”。
“设计”视图将打开,并在报表设计图面上显示该地图。
单击地图以选择它并显示“地图层”区域。
如下图所示:
“地图层”区域显示一个层类型为“嵌入”的多边形层。
每个乡镇都是该层上的一个嵌入地图元素。
右键单击地图标题,然后单击“标题属性”。
将标题文本替换为AdventureWorksReseller。
单击“确定”。
点击“Preview”预览报表,如下图所示:
上面创建了一个简单的华盛顿特区的地图报表,报表包含报表标题、地图标题、地图以及距离刻度。
各乡镇用调色板中的颜色区分,但颜色并不与任何数据关联。
距离刻度同时用公里和英里显示距离。
图例和色阶并不显示,因为它们没有关联的数据。
数据与地图区域的绑定,我们将在下面介绍。
2.2使用SQL空间数据创建地图层
接下来我们通过另一种数据来源——SQL空间数据,在上述报表的基础上添加一个新的地图层,我们拟添加一个地图层,用于显示销售AdventureWorks产品的商店的位置。
步骤如下:
切换到“设计”视图。
双击地图以显示“地图层”区域。
在工具栏上,单击“新建层向导”按钮。
在“选择空间数据的来源”页上,选择“SQLServerspatialquery”,然后单击“下一步”。
在“选择与SQLServer空间数据源的连接”上,单击“新建”。
在“数据源属性”对话框中,单击“General”。
如下图所示,建立数据源SQLMap,并连接Adventureworks数据库。
点击OK,如下图所示:
点击“下一步”,接下来我们创建一个数据集查询,其中同时包含空间数据和分析数据。
在“设计查询”页中,单击“编辑为文本”。
查询设计器切换到基于文本的模式。
将以下查询语句粘贴到查询窗格中:
Select402asBusinessEntityID,'ImpromptuTrips'asStore,'Mountain'asSpecialty,'UnionGap'asCity,
'Yakima'asCounty,CAST(1500000asmoney)asAnnualSales,
CAST('POINT(-120.35239968357646.5526404267361)'asgeography)ASSpatialLocation
UNIONALL
SELECT518ASBusinessEntityID,'LatestSportsEquipment'ASStoreName,'Mountain'asSpecialty,'Seattle'ASCity,
'King'asCounty,CAST('800000'asmoney)asAnnualSales,
CAST('POINT(-122.271614914547.6252759540999)'asgeography)ASSpatialLocation
UNIONALL
Select656asBusinessEntityID,'OutstandingCycles'asStore,'Touring'asSpecialty,'Spokane'asCity,
'Spokane'asCounty,CAST(2000000asmoney)asAnnualSales,
CAST('POINT(-117.45832618852747.7390846943325)'asgeography)ASSpatialLocation
UNIONALL
Select762asBusinessEntityID,'FriendlyBikeShop'asStore,'Road'asSpecialty,'Bellingham'asCity,
'Whatcom'asCounty,CAST(2000000asmoney)asAnnualSales,
CAST('POINT(-122.52671073948.7985754516)'asgeography)ASSpatialLocation
UNIONALL
Select774asBusinessEntityID,'RuggedBikes'asStore,'Touring'asSpecialty,'Everett'asCity,
'Snohomish'asCounty,CAST(3000000asmoney)asAnnualSales,
CAST('POINT(-122.33992883241548.0034793435206)'asgeography)ASSpatialLocation
UNIONALL
Select870asBusinessEntityID,'VastBikeAnnualSalesandRental'asStore,'Mountain'asSpecialty,'Chehalis'asCity,
'Lewis'asCounty,CAST(3000000asmoney)asAnnualSales,
CAST('POINT(-123.17320292262846.5949185631117)'asgeography)ASSpatialLocation
UNIONALL
Select1138asBusinessEntityID,'RovingSports'asStore,'Road'asSpecialty,'Puyallup'asCity,
'Pierce'asCounty,CAST(1500000asmoney)asAnnualSales,
CAST('POINT(-122.14196234947447.2117618655752)'asgeography)ASSpatialLocation
UNIONALL
Select1230asBusinessEntityID,'FitnessSupplies'asStore,'Touring'asSpecialty,'Sequim'asCity,
'Clallam'asCounty,CAST(800000asmoney)asAnnualSales,
CAST('POINT(-123.16598087457748.0931018882565)'asgeography)ASSpatialLocation
UNIONALL
Select1270asBusinessEntityID,'OutdoorSportsSupply'asStore,'Mountain'asSpecialty,'NorthBend'asCity,
'King'asCounty,CAST(300000asmoney)asAnnualSales,
CAST('POINT(-121.5043994683847.5225521767213)'asgeography)ASSpatialLocation
UNIONALL
Select1388asBusinessEntityID,'OfficialPartsShop'asStore,'Road'asSpecialty,'Kelso'asCity,
'Cowlitz'asCounty,CAST(1000000asmoney)asAnnualSales,
CAST('POINT(-122.7796170283146.1007615739732)'asgeography)ASSpatialLocation
UNIONALL
Select1412asBusinessEntityID,'CityManufacturing'asStore,'Mountain'asSpecialty,'Shelton'asCity,
'Mason'asCounty,CAST(2500000asmoney)asAnnualSales,
CAST('POINT(-123.32305282383347.1401103193325)'asgeography)ASSpatialLocation
我们可在查询结果网格中看到七列:
BusinessEntityID、Store、Specialty、City、County、AnnualSales和SpatialLocation。
此数据表示华盛顿州销售AdventureWorks自行车的一组商店。
结果集中的每行都包含一个商店标识符、商店名称、该商店专销的自行车类型、商店所在的市/镇、年销售额以及用经度和纬度表示的空间位置。
点击“下一步”,进入“选择空间数据和地图视图选项”页,如下图所示:
验证“空间字段”为SpatialLocation,并且“层类型”为“点”。
接受本页上的其他默认值。
地图视图显示圆圈,这些圆圈标记销售AdventureWorks产品的商店的位置。
单击“下一步”。
接下来需要指定一个地图类型,它显示随分析数据而改变的标记。
这里我们选择“分析标记图”。
如下图所示:
单击“下一步”。
在“选择分析数据集”页上选择我们之前创建的数据集。
该查询包含分析数据以及空间数据。
单击“下一步”,如图所示:
该面板为“选择颜色主题和数据可视化”,这里清除选项“使用标记颜色实现数据的可视化效果”,然后选择选项“使用标记类型实现数据的可视化效果”。
在“数据”字段中,选择=Fields!
Specialty.Value。
这会导致标记随Specialty值而改变。
单击“完成”。
将向报表添加该地图层。
图例基于Specialty值显示标记类型。
如下图所示:
可以看到地图区域显示一个新层PointLayer1以及空间数据源类型DataRegion。
说明空间数据来自一个数据集,其中同时包含空间数据和分析数据。
预览报表,如下图所示。
该地图分类别显示了华盛顿州AdventureWorks商店的位置。
2.3向地图中添加线条层
在上述报表的基础上,我们接下来添加一个表示两个商店间路线的地图层,这里我们依旧使用SQL空间数据源,部分步骤与上一节类似,所不同的是相应的SQL语句使用如下:
SELECTN'Path'ASName,CAST('LINESTRING(
-120.35239968357646.5526404267361,
-119.846.3,
-119.0582847246.2734923199999)'ASgeography)asRoute
得到的查询视图如下所示:
在“选择空间数据和地图视图选项”页上,“空间字段”为“路线”,并且“层类型”为“线条”。
接受其他默认值。
地图视图将显示从Yakima县的某个商店到Franklin县的某个商店的路径,如下图所示:
在“选择地图可视化”页上,单击“基本线条图”
在“选择颜色主题和数据可视化”上,选择“单色图”选项。
该路径基于所选主题显示为某种颜色,如下图所示:
单击“完成”。
将向地图添加该地图层。
“地图层”区域显示一个新层LineLayer1以及空间数据源类型“数据集”。
在本例中,空间数据来自数据源,但没有分析数据与此线条关联。
报表预览如下:
2.4添加Bing地图图块背景
2.4.1添加VirtualEarth图块背景
切换到“设计”视图。
双击地图以显示“地图层”区域。
在工具栏中,单击“添加层”。
从下拉列表中,单击“图块层”。
“地图层”区域中的最后一层为TileLayer1。
默认情况下,图块层显示道路图样式。
单击TileLayer1上的向下箭头,然后单击“标题属性”。
在“类型”中,选择“Aerial”。
Aerial视图不包含文本。
单击“确定”。
预览效果如下图所示:
接下来,我们调整层的透明性,并让图块背景穿透显示
2.4.2设置层的透明度
切换到“设计”视图。
双击地图以显示“地图层”区域。
单击PolygonLayer1上的向下箭头,然后单击“层数据”。
将打开“地图多边形层属性”对话框。
如下图所示:
单击“可见性”。
在“透明度(%)”中,键入40。
预览效果如下所示:
2.5为多边形层指定颜色规则
多边形层上的每个县都有一种不同的颜色,因为报表处理器会根据我们在地图向导的最后一页选择的主题,自动从调色板中分配一个颜色值。
在下面的步骤中,指定颜色规则,以便将特定的颜色与每个县的一系列销售值关联起来。
颜色红-黄-绿指示相关的高-中-低年销售额。
设置色阶的格式以显示货币。
在新的图例中显示年销售额范围。
对于不包含商店的县,不使用任何颜色,以指明没有关联的数据。
若要基于分析数据改变县形状中的颜色,首先必须将分析数据与空间数据关联起来。
在本例中,在分析数据与空间数据之间建立关系的匹配字段为乡镇的名称。
2.6在空间数据与分析数据之间建立关系
切换到“设计”视图。
双击地图以显示“地图层”区域。
单击PolygonLayer1上的向下箭头,然后单击“层数据”。
将打开“地图多边形层属性”对话框。
单击“分析数据”。
如下图所示:
在“分析数据集”中,从下拉列表中选择DataSet1。
此数据集是您为乡镇指定空间数据查询时由向导创建的。
在“要匹配的字段”中,单击“添加”。
将添加一个新行。
在“来自空间数据集”中,从下拉列表单击COUNTYNAME。
在“来自分析数据集”中,从下拉列表单击[Country]。
单击“确定”。
通过从空间数据源和分析数据集中指定一个匹配字段,报表处理器可以基于地图元素对分析数据进行分组。
数据绑定的地图元素具有成功的匹配/值对。
例如,Yakima的地图元素具有Yakima对应AnnualSales值。
当地图元素与分析数据匹配完成后,我们即可为层上的所有数据绑定多边形指定颜色规则。
2.7为层上的所有数据绑定多边形指定颜色规则
单击PolygonLayer1上的向下箭头,然后单击“多边形颜色规则”。
将打开“地图颜色规则属性”对话框。
这里我们选择“使用颜色范围实现数据的可视化效果”。
原有的调色板选项被开始颜色、中间颜色和结束颜色选项取代。
如下图所示:
为每个乡镇的年销售额定义范围值。
在“数据字段”下拉列表中,选择=Sum(Fields!
AnnualSales.Value)。
单击最后一个字符之后的文本框,键入/1000。
文本框包含=Sum(Fields!
AnnualSales.Value)/1000。
这会划分货币值,以便以千为单位显示。
将开始颜色、中间颜色和结束颜色更改为“红”、“黄”和“绿”。
“红”表示低销售值,“黄”表示中等销售值,而“绿”表示高销售值。
报表处理器将基于这些值以及您在“分布”页上选择的选项来计算颜色范围。
单击“分布”。
如下图所示:
验证分布类型为“最佳”。
最佳分布将值划分到各个子范围,这些子范围在每个范围中的项数与每个范围的跨度之间实现平衡。
对于本页上的其他选项接受默认值。
单击“图例”。
在“色阶选项”中,验证选择了“在色阶中显示”。
在“在此图例中显示”中,从下拉列表选择空行。
这样只将颜色范围显示在色阶中。
单击“确定”。
预览效果如下图所示:
色阶显示五种颜色:
红色、橙色、黄色、黄绿色和绿色。
每个色阶颜色表示一个年销售额范围,此范围是根据AnnualSales中的年销售额值自动计算得出的。
接下来,我们将设置色阶的格式以显示货币。
2.8设置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何在sql server r2中使用地图功能 如何 sql r2 使用 地图 功能
![提示](https://static.bingdoc.com/images/bang_tan.gif)