Google Maps in QlikView
来源:互联网 发布:小照域名授权源码2.9 编辑:程序博客网 时间:2024/06/04 19:36
在看了一篇Google Map 和 QlikView10 整合的文章,决定自己实践一下熟悉一下这个流程。由于原文是西班牙语,所以没有逐句翻译,只是明白大体流程后,将我自己做的流程写下来,流程如下:
1. 打开QlikView 10(下载地址) 通过 File->Edit Script将以下代码贴到原有代码的下方。点击File—>Reload,加载数据。
- SET DecimalSep='.';
- // Google Maps en QlikView
- // Google Maps Key. Obten la tuya en http://code.google.com/apis/maps/signup.html
- gmap_key = 'xx';
- max_zoom_level = 4; //valor máximo = 17
- // Variables requeridas para calcular mapa
- var_pi180= '=pi()/180';
- var_lat_offset= '0';
- 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)) ) <map_size_x AND max((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))-min((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))<map_size_y,_zoom_level,1),_zoom_level))';
- var_maptype= '=if(isnull(only(maptype)),fieldvalue( '&chr(39&'maptype'&chr(39)&', 1 ),maptype)';
- map_size_x= '350';
- map_size_y= '350';
- var_mc2= '=256*pow(2,$(var_zoom))';
- var_mc1= '=256*pow(2,($(var_zoom)-1))';
- SET HidePrefix='_' ;
- // Campo Requerido para calcular el mejor nivel de zoom
- _zoom_level:
- Load RecNo( ) as _zoom_level autogenerate(max_zoom_level);
- maptype:
- LOAD * INLINE [
- maptype
- roadmap
- mobile
- satellite
- terrain
- hybrid
- ];
- Data:
- LOAD * INLINE [
- ciudad,poblacion,latitude,longitude
- Arica,189692,-32.7648852,-71.1963079
- Iquique,286105,-20.2440725,-70.1385651
- Antofagasta,547933,-23.6239214,-70.4016127
- Copiapó,272402,-27.3753215,-70.3285281
- La Serena,6773,-29.9069352,-71.2470754
- Valparaíso,1682005,-33.0504619,-71.6164515
- Santiago,6607805,-33.4253598,-70.5664659
- Rancagua,84912,-34.1620308,-70.7410124
- Talca,975244,-35.4227130,-71.6565138
- Concepción,1982649,-36.8148146,-73.0292574
- Temuco,937259,-38.7270296,-72.5989468
- Valdivia,373712,-39.8274322,-73.2512409
- Puerto Montt,794529,-41.4543039,-72.9925047
- Coihaique,100417,-45.5637560,-72.0646866
- Punta Arenas,156502,-53.1478563,-70.9066254
- ];
SET DecimalSep='.';// Google Maps en QlikView// Google Maps Key. Obten la tuya en http://code.google.com/apis/maps/signup.htmlgmap_key = 'xx';max_zoom_level = 4; //valor máximo = 17// Variables requeridas para calcular mapavar_pi180= '=pi()/180';var_lat_offset= '0';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)) ) <map_size_x AND max((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))-min((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))<map_size_y,_zoom_level,1),_zoom_level))';var_maptype= '=if(isnull(only(maptype)),fieldvalue( '&chr(39&'maptype'&chr(39)&', 1 ),maptype)';map_size_x= '350';map_size_y= '350';var_mc2= '=256*pow(2,$(var_zoom))';var_mc1= '=256*pow(2,($(var_zoom)-1))';SET HidePrefix='_' ;// Campo Requerido para calcular el mejor nivel de zoom_zoom_level:Load RecNo( ) as _zoom_level autogenerate(max_zoom_level);maptype:LOAD * INLINE [maptyperoadmapmobilesatelliteterrainhybrid];Data:LOAD * INLINE [ciudad,poblacion,latitude,longitudeArica,189692,-32.7648852,-71.1963079Iquique,286105,-20.2440725,-70.1385651Antofagasta,547933,-23.6239214,-70.4016127Copiapó,272402,-27.3753215,-70.3285281La Serena,6773,-29.9069352,-71.2470754Valparaíso,1682005,-33.0504619,-71.6164515Santiago,6607805,-33.4253598,-70.5664659Rancagua,84912,-34.1620308,-70.7410124Talca,975244,-35.4227130,-71.6565138Concepción,1982649,-36.8148146,-73.0292574Temuco,937259,-38.7270296,-72.5989468Valdivia,373712,-39.8274322,-73.2512409Puerto Montt,794529,-41.4543039,-72.9925047Coihaique,100417,-45.5637560,-72.0646866Punta Arenas,156502,-53.1478563,-70.9066254];
2.在QlikView的Main Sheet 面板中右键 新建一个Chart 选择Scatter Chart。然后点击完成,这时这个Chart 还什么数据都没有,所以在Chart右键 属性切换到Dimension面板上,插入一个Dimension——-Ciudad,完成后点击应用。
3.切换到Expressions的设置面板,先勾选上左下角的Advanced Mode,切换到如下图的编辑模式。
要添加四个Expressions。分别如下:
longitude
- Definition: =avg( round (256*pow(2,($(var_zoom)-1)))+( longitude *((256*pow(2,$(var_zoom)))/360)) )
- backgroud color: =argb(180,round(550*poblacion/max(total poblacion)),0,80)
- latitude
- Definition: =avg(((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())))))
- poblacion
Definition: poblacion - ciudad
Definition: ciudad
前两个的定义值填入上述的公式,后面两个就填上两个字段名就好了。完成后点击应用。
4. 切换到定义Axes的界面,将下面的值填入相应的文本框中。
5.最后一步很关键,切换到Colors面板 中面板的左中部有一个Frame Background,选中其中的一个Dynamic Image,填入以下的公式。完成后点击应用,这时就能看到效果了。Qlikview版本不同效果也有些不同。
- ='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'
='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'
6.再可以添加些其他Object,最后效果图如下。
原文地址:http://www.webmining.cl/2011/02/google-maps-en-qlikview/
- Google Maps in QlikView
- JSON in google Maps
- Using Google Maps in Android
- Using Google Maps in Android
- Using Google Maps in Android
- Venn Diagram in Qlikview using google chart api
- Google Maps API in Java ME
- Google Maps
- google maps
- google maps navigation is not yet available in this location
- Create Google Maps directions in PeopleSoft using Related Content
- Example of Using Google Maps Service and GPS in Android
- QlikView
- Google Maps API 说明
- baidu & google maps 分析
- Google Maps API
- Google maps切割方法
- Google Maps Hacks
- 问题汇总!!!
- 使用AspectJ为Java程序添加日志管理
- 条款02:尽可能使用const, enum, inline替代define
- 移动技术开发之谜
- 教你如何迅速秒杀99%的海量数据处理面试题
- Google Maps in QlikView
- 自动sga内存管理
- RSS源推荐大全(it版)
- MYSQL数据库备份命令
- Eclipse反编译工具Jad及插件JadClipse配置
- 增加tomcat jvm的虚拟内存
- 十大仍在工作的老古董:最古老灯泡使用111年
- 使用jwebunit测试https请求
- 分享:如何开发出成功的iOS小游戏?