在当今的商业环境中,数据的呈现方式多种多样,包括表格、图形和地理地图等。本文将探讨为何在地理地图上展示信息是一种有效的方法,并以印度一家运营公司的地区销售数据为例进行说明。
地理空间可视化技术具有以下优势:
几年前,当第一次使用Qlikview时,希望将这种可视化技术融入准备的仪表板中,但发现缺乏结构化的教程。因此,撰写了本文,希望对像一样在这个问题上挣扎的分析师有所帮助。
以下是在Qlikview中实现地理空间可视化的步骤:
请参考以下Excel文件,将其加载到Qlikview中:
Qlikview Google Map Base Data
确保纬度和经度变量名称为小写,因为Google地图变量是基于小写生成的。
在脚本中创建一个新的标签页(文件 -> 编辑脚本。然后在新窗口中选择标签页 -> 添加新标签)。粘贴以下代码以生成Google地图变量:
// Google Maps Key
// 在此处获取密钥 http://code.google.com/apis/maps/signup.html
gmap_key = 'ABQIAAAAPTYGDOAE5g8mVF5kIaY54RSHwNu1JdqUbdjDP-YY4oym4d2mTxSRdsISI-1rwwnl-9gjJrMO3oTkMA';
max_zoom_level = 5; //最大值17
def_map_size = 400;
// 计算地图所需的变量
// 不需要更改这些
var_pi180= '=pi()/180';
var_lat_offset= '0';
var_mc2= '=256*pow(2,$(var_zoom))';
var_mc1= '=256*pow(2,($(var_zoom)-1))';
var_mid_lat= '=min(latitude)+(1+var_lat_offset)*((max(latitude)-min(latitude))/2)';
var_mid_long= '=min(longitude)+(max(longitude)-min(longitude))/2';
var_zoom= '=max(aggr(if(max( round(256*pow(2,(_zoom_level -1)))+( longitude *((256*pow(2,_zoom_level ))/360)) )-min( round(256*pow(2,(_zoom_level -1)))+( longitude *((256*pow(2,_zoom_level ))/360)) )
粘贴代码后,点击“保存”,然后点击“确定”关闭窗口并重新加载脚本。
要创建图表,请按照以下步骤操作:“新建工作表对象” -> “图表” -> 按照下图所示的步骤进行。
步骤-10:接下来,转到“排序”标签页,按返回按钮并在表达式中编写以下代码:
longitude:
“=SUM( round (256*pow(2,($(var_zoom)-1)))+( longitude *((256*pow(2,$(var_zoom)))/360)) )”
latitude:
“=SUM(((256*pow(2,($(var_zoom)-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,$(var_zoom)))/(2*pi())))))”
步骤-11:添加两个更多的表达式:城市和销售额
City:
= “City”
Sales:
“=sum(Sales)”
复制并粘贴以下代码到步骤21和24:
X轴:
static Min: =(256*pow(2,($(var_zoom)-1)))+(var_mid_long*((256*pow(2,$(var_zoom))/360)) -round(map_size_x/2))
Static Max: =( (256*pow(2,($(var_zoom)-1)))+(var_mid_long*((256*pow(2,$(var_zoom))/360)) + round(map_size_x/2))
Y轴:
Static Min: =((256*pow(2,($(var_zoom)-1)))+((0.5*log((1+(sin(var_mid_lat*pi()/180)))/(1-(sin(var_mid_lat*pi()/180)))))*((-256*pow(2,$(var_zoom))/(2*pi())))+round(map_size_y/2))
Static Max: =((256*pow(2,($(var_zoom)-1)))+((0.5*log((1+(sin(var_mid_lat*pi()/180)))/(1-(sin(var_mid_lat*pi()/180)))))*((-256*pow(2,$(var_zoom))/(2*pi())))-round(map_size_y/2))
复制并粘贴以下代码到步骤-26:
='http://maps.google.com/staticmap?center='
&
num(
var_mid_lat
, '##############', '.', ',' )
&
','
&
num(
var_mid_long
, '##############', '.', ',' )
&
'&zoom=$(var_zoom)'
&
'&maptype='&
var_maptype
&
'&size='&
map_size_x
&'x'&
map_size_y
&
'&key='&gmap_key & '&.jpg'
在标题标签页中,根据map_size_x和map_size_y(在脚本中定义)调整宽度和高度。最终,得到了所需的结果。