`
linxtong
  • 浏览: 7058 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Google Maps in QlikView

阅读更多

在看了一篇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
];

 

 

 

2.在QlikView的Main Sheet 面板中右键 新建一个Chart 选择Scatter Chart。然后点击完成,这时这个Chart 还什么数据都没有,所以在Chart右键 属性切换到Dimension面板上,插入一个Dimension——-Ciudad,完成后点击应用。

 

 

3.切换到Expressions的设置面板,先勾选上左下角的Advanced Mode,切换到如下图的编辑模式。

要添加四个Expressions。分别如下:

  1. 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)
  2. 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())))))
  3. poblacion 
    Definition: poblacion
  4. ciudad
    Definition: ciudad

 前两个的定义值填入上述的公式,后面两个就填上两个字段名就好了。完成后点击应用。

 

 

4. 切换到定义Axes的界面,将下面的值填入相应的文本框中。

 

  • Escala Eje X
  • Min Estático: =((256*pow(2,($(var_zoom)-1)))+( var_mid_long *((256*pow(2,$(var_zoom)))/360)) -round(map_size_x/2))
  • Max Estático: =((256*pow(2,($(var_zoom)-1)))+( var_mid_long *((256*pow(2,$(var_zoom)))/360)) + round(map_size_x/2)-15)
  •  

  • Escala Eje Y
  • Min Estático: =((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))
  • Max Estático: =((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)+15)
  •  

    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' 

    6.再可以添加些其他Object,最后效果图如下。

    原文地址:http://www.webmining.cl/2011/02/google-maps-en-qlikview/

     

    分享到:
    评论

    相关推荐

      GoogleMapsAPIv3Toolkit-QV:QlikView扩展程序可将所有主要Google Maps API v3功能集成在一处

      QlikView扩展程序可将所有主要Google Maps API v3功能集成在一处 包括的功能有: 基于经纬度坐标 可能包含您的API密钥 支持主要地图类型 路线图卫星| 地形| 混合动力| 45º影像| 街景 显示标记 具有自定义多个标记...

      谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310

      谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310

      Google Maps in HTML

      在IT行业中,Google Maps是一个广泛使用的在线地图服务,它提供了丰富的功能,如路线规划、地理位置定位、卫星图像等。在HTML环境中集成Google Maps,可以让网站开发者将这些功能嵌入到自己的网页中,提升用户体验。...

      Google Maps API编程资源大全

      Google Maps API是Google提供的一项强大的服务,允许开发者在自己的应用程序中集成地图功能,进行地理位置相关的开发。这个"Google Maps API编程资源大全"包含了丰富的资料,帮助开发者深入理解和使用这一技术。 ...

      GoogleMaps-4.5.3-Blackberry

      《谷歌地图Google Maps 4.5.3 for Blackberry:移动导航的革命》 谷歌地图Google Maps是一款全球知名的在线地图服务,它为用户提供了一个全面、准确且实时更新的地图平台。在移动设备上,尤其是Blackberry操作系统...

      图书Google Maps API开发大全的各章源码

      《图书Google Maps API开发大全》是一本深入探讨Google Maps API技术的专业书籍,旨在帮助开发者全面理解和熟练运用这一强大的地图服务接口。源码文件名为"code",包含了书中各个章节的示例代码,使得读者能够通过...

      google maps,标注

      在IT行业中,Google Maps是一个非常重要的工具,尤其在地理信息系统(GIS)和定位服务领域。本文将深入探讨Google Maps的功能、使用方法以及如何在地图上进行标注。 首先,Google Maps是一款由Google公司提供的在线...

      flex做的googlemaps

      标题中的“flex做的googlemaps”指的是使用Adobe Flex技术来开发Google Maps的应用程序。Flex是一种基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIA),它可以与Flash Player或Adobe AIR运行...

      Google_Maps_API_V3.rar_Google Maps api v3_谷歌地图

      Google Maps API V3 是谷歌为开发者提供的一个强大工具,用于在网站或应用程序中集成交互式地图功能。这个API允许开发人员自定义地图显示的内容、样式以及交互方式,从而构建出各种基于地理位置的应用。在Google ...

      Google Maps 二次开发实例

      在IT行业中,Google Maps是一个广泛使用的地图服务,它提供了丰富的API和工具,允许开发者进行二次开发,以满足各种定制化需求。"Google Maps 二次开发实例"是一个具体的应用展示,它实现了多项实用功能,包括经纬度...

      google maps 自定义图形控件

      在IT行业中,Google Maps是一个广泛使用的地图服务,它提供了丰富的API功能,允许开发者自定义地图显示、添加交互性以及创建各种地图应用。本篇文章将详细探讨如何在VS2008环境下封装Google Maps API,实现自定义...

      Google Api之Google maps代码

      在IT行业中,Google Maps API是一个极其重要的工具,它允许开发者集成地图功能到自己的网站或应用程序中,提供导航、定位、地理编码、路线规划等多种服务。本篇将详细讲解基于JavaScript的Google Maps API的使用,...

      Google API开发详解:Google Maps部分

      在IT行业中,Google API是开发者们广泛使用的工具之一,尤其在地理位置服务方面,Google Maps API更是扮演了核心角色。本文将深入探讨Google Maps API的开发详解,帮助你掌握如何利用这个强大的工具创建丰富的地图...

      Google Maps API开发大全

      《Google Maps API开发大全》是针对开发者们深入学习和应用Google Maps API的重要参考资料。Google Maps API是Google提供的一项强大服务,允许开发者将地图功能集成到自己的网站或应用程序中,实现地图展示、定位、...

      Google Maps API V3 中文参考文档(JavaScript)

      Google Maps API V3 中文参考文档(JavaScript) Google Maps API V3 是 Google Maps 提供的一款强大的地图应用程序接口,允许开发者在网站或应用程序中轻松嵌入谷歌地图。该 API 的 JavaScript 版本提供了丰富的...

      Google Maps Hacks

      <br>Written by Schuyler Erle and Rich Gibson, authors of the popular Mapping Hacks, Google Maps Hacks shares dozens of tricks for combining the capabilities of Google Maps with your own datasets....

      黑莓8220 可用googlemaps4.5

      **黑莓8220与Google Maps 4.5的兼容性详解** 在智能手机领域,黑莓8220是一款经典的设备,以其全键盘和QWERTY输入体验深受用户喜爱。而Google Maps作为全球领先的在线地图服务,为用户提供路线导航、地点搜索、交通...

      Google Maps API 开发大全

      《Google Maps API 开发大全》是一本全面深入探讨Google Maps API技术的专著,旨在帮助开发者充分利用这个强大的工具集来创建交互式地图应用。书中详细介绍了如何集成Google Maps API到各种项目中,从基础概念到高级...

      android 的Google Maps

      在Android平台上,Google Maps是一个强大的工具,它允许开发者集成地图功能到自己的应用程序中,为用户提供地理定位、导航、路线规划等服务。本实例开发将详细讲解如何在Android应用中使用Google Maps API,让用户...

      Google Maps Layer in ArcGIS JS API

      Google Maps Layer in ArcGIS JS API

    Global site tag (gtag.js) - Google Analytics