附录:FLASH地图
本节对系统中自带的LFASH地图的属性和制作自定义FLASH地图的方法步骤进行介绍。
自定义FLASH地图
产品的统计图功能支持自定义FLASH地图。用户可以方便地设置在地图上显示的数据、热点等信息。
地图图源使用SVG矢量文件。产品中已经默认提供了包括中国以及各省、直辖市在内的地图可供用户直接使用。用户还可根据需要配置和使用自定义的SVG地图。
下面详细介绍如何设置地图、地图热点以及添加自定义地图。
选择自定义FLASH地图
【自定义FLASH地图】位于【特殊图】类别下,在报表中插入统计图时,可从该类别下选择使用:
注意:自定义FLASH地图无需进行【选风格】设置,选择该类型后即可跳过【选风格】的步骤而直接进入【选取数】。
选择地图和数据来源
在【选取数】界面下选择具体要使用哪个地理区域的地图。同时设置地图的数据来源,可以来源于当前报表的单元格:
地图区域设置
设置地图上各区域的具体显示信息,如下图。
其中地图区域是指地图上划分的各地理区块。例如以中国地图为例,上面的各省、直辖市就是地图中的区域。
各项区域设置的具体作用和定义方法如下:
- 区域ID:必填,每个区域都必须有一个唯一的ID值,在所选择地图对应的SVG文件中设置有区域ID,此处设置的区域ID必须与地图SVG文件中设置的区域ID保持一致,从而实现地图数据来源与地图区域的对应。地图对应的SVG文件存放于产品应用【\mis2\Charts\svg】目录下,默认地图名即为文件名,文件中<path>和<text>节点中id属性的值即为区域ID,可使用文本编辑器打开地图SVG文件查看其中各区域ID设置
- 区域名称:必填,每个区域所显示的名称
- 区域值:必填,每个区域对应的数据值
- 区域标签:为区域设置标签
- 区域提示:鼠标悬停于区域时弹出的提示信息,提示信息可设置为表达式(例如从报表单元格读取)或url链接,可自定义停留时间长度
- 是否包含超链接:1代表包含超链接,0代表不可超链接,设置包含超链接后,点击地图区域可传递地图区域的相关信息并打开目标链接
- 区域超链接:当是否包含超链接设置为1时,该项设置有效,可以在链接中通过参数传入地图数据,例如区域ID、区域名称,超链接类型可以是手动输入的URL地址,或者选择系统链接。
超链接例子:mis2/vrsr/showReport1.jsp?resID=30013&svgName=@areaId&maparg1=@areaId&maparg2=@areaName&startTime=value(A1)&endTime=value(arg0)&encodeParamName=areaId,areaName,arg0
关于地图超链接的介绍可参见下一节“超链接及传参”
关于系统链接可参考:超链接管理
在设置地图时,作为地图数据来源的报表单元格通常必须是可扩展单元格,因此区域设置中对可扩展单元格的引用注意使用【单元格名称+{}】的格集书写形式。同时,报表中作为区域ID的单元格,必须是其它作为区域名称、区域值等单元格的主格。这样才能实现单元格数据与地图中区域的一一对应。
例如下图所示的例子中,报表A2单元格中的数据是区域ID,该单元格是扩展单元格,并且是其后B2-F2五个单元格的主格,在地图的区域设置中,即可设置区域ID=A2{},区域名称=B2{},区域值、区域标签、区域提示的设置依此类推:
地图热点设置
地图热点标记了地图中的特定作用区域,可以在热点上显示数据、设置超链接等。
例如下图所示的中国地图上,就定义了库尔勒、青岛等城市热点,鼠标如果悬停在热点上可以显示出数据,点击热点可以链接到显示该城市详细数据的报表中。
如果所使用地图的SVG文件中定义了热点,则可在【选取数】界面中进行地图热点的详细设置;如果地图SVG中未定义热点,则此处的设置无效。
热点设置界面见下图:
具体各项热点设置说明如下:
- 增加、删除按钮:可通过增加按钮,添加多组热点设置
- 热点ID:每个热点都必须有一个唯一的ID值,地图展现时将根据此处设置的热点ID匹配地图SVG文件中设置的热点ID,从而实现地图数据来源与地图热点的对应。在地图的SVG文件中通过<image>节点定义热点,其id属性的值即为热点ID
- 其它热点名称、值、标签、提示、超链接的作用与设置与地图的区域设置类似
- 图标,热点在地图上的显示图片
添加自定义地图
用户可以在产品中添加和使用自定义的地图。地图的图源使用SVG矢量图形文件。
可以从以下多种方式来获取需要的SVG地图:
- 下载第三方现成的SVG地图文件。
- 自己手动编写自定义SVG地图文件,每个区域块必须包含path和text属性,且path和text都必须包含id值。
- 使用产品中自带的SVG地图文件,文件位于产品应用的【\mis2\Charts\svg】目录下。
注意:使用第三方SVG地图或者自己手动定义的自定义地图时,必须首先将SVG地图文件添加到产品应用的【\mis2\Charts\svg】目录下。
添加可选地图
可以将已经添加到产品应用的【\mis2\Charts\svg】目录下的自定义地图,进一步添加至统计图向导界面中的“选择地图”下拉列表中。
配置方法是通过配置文件【\mis2\flexdesigner\designer\config\GraphMapDefine.json】的"types"属性进行定义:
- "types"属性的值是数组类型,数组中的数据为json串,一个json串代表一个可选地图
- 添加可选地图时,在"types"属性值中添加json串即可,json串的"name"属性表示在“选择地图”下拉列表中显示的地图名称,"graphMapID"属性表示地图对应的SVG文件名称,"describe"属性是对地图的描述,其余属性可不用动
超链接url及js方法
超链接书写规则
当需要通过点击地图某一个区域,将当前地图相关参数值传递给另一个地图时,需要书写超链接表达式。
例如:mis2/reportcenter/showReport1.jsp?resID=32209&maparg1=value(city)&maparg2=value(A2)&encodeParamName=city
js方法
当需要通过点击地图某一个区域,将当前地图的相关参数值传递其他方法(例如将地图的参数值传递给当前报表的统计图),需要使用javascript:方法。
javascript:方法名(参数1,参数2...) //后台会将将所有参数拼成一个字符串用逗号分割。需要js方法里自己分割一下。
例如:javascript:confirm(areaId,areaName)
例如:javascript:confirm(@areaId,@areaName,value(A1),value(arg0))
参数介绍
地图的参数,除了自带的areaId、areaName、svgName、maparg1、maparg2外,也可以使用报表参数或取某一个单元格的值。
参数格式:
区域id :@areaId
区域名称:@areaName
区域值:@areaValue
svg名称:@svgName
单元格值:value(坐标)
参数值:value(参数名)
参数意义:
areaId:区域ID,需要与地图的svg文件中的id值相一致。
areaName:区域名称,是显示在地图上的区域名称。(如果不设置该值,或对应不上,则地图上不会显示区域名称)。
areaValue:当前区域的数值。
svgValue:地图svg文件名称。js目前不支持该参数。
maparg1、maparg2:没有实际意义,可以按照该规则命名,也可以自定义名称。
注意:地图接收传递的svgName值时,是接收使用base64加密过的值。使用超链接传递的时候系统会自动进行加密处理,但是如果需要通过报表参数或其他方式来传递svgName参数值时,需要进行加密处理,加密时可以使用encode加密函数。