0% found this document useful (0 votes)
80 views

Step-By-Step Google Map API v3 Integration

This document provides step-by-step instructions for integrating Google Maps into a visualization. It includes code snippets for defining necessary variables like the Google Maps API key and variables for calculating zoom level and center point. It also explains how to configure a scatter chart to plot location data and link it to the Google Maps image.

Uploaded by

diitris
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views

Step-By-Step Google Map API v3 Integration

This document provides step-by-step instructions for integrating Google Maps into a visualization. It includes code snippets for defining necessary variables like the Google Maps API key and variables for calculating zoom level and center point. It also explains how to configure a scatter chart to plot location data and link it to the Google Maps image.

Uploaded by

diitris
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Step-by-Step Google Map integration

1. Code to be added to the script:


// Google Maps Key
// get a key here http://code.google.com/apis/maps/signup.html
// gmap_key = 'xx';
max_zoom_level = 17; //maximum value 17
// Variables required for calculating map
// No need to change these
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)) ) <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=
'640';
map_size_y=
'400';
SET HidePrefix='_' ;
// Field required for calcualting best zoom level
_zoom_level:
Load RecNo( ) as _zoom_level autogenerate(max_zoom_level);
maptype:
LOAD * INLINE [
maptype
roadmap
mobile
satellite
terrain
hybrid
];
set hideprefix = 'maptype';

2. Add and configure a scatter chart:

=> NEXT

This defines the dots which will be plotted (Customers in that example).
=> NEXT

Click on Finish and exit the wizard.

Longitude:
=sum( round (256*pow(2,($(var_zoom)-1)))+( Longitude *((256*pow(2,$(var_zoom)))/360)))

Background color:
=argb(150,178,36,36)

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())))))

That value can be anything; it will control the size of the dots (Net Sales in that example).

X axis:
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 axis:
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))

10

Dynamic Image:
='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'

11

Size of the chart, according to map_size_x and map_size_y (defined in the script).

12

Result:

13

You might also like