Hi,
I'm referencing a google fusions table as the datasource for my scatter
plot. It functions with google maps in that when a point on the map is
clicked, the data point chages color to indicate what site is clicked. I
would like to know if I can reference a column heading in my google fusion
table (column heading is "site") so that the title of the scatter plot
chages when the user clicks the map. I have a pie chart which will
dynamically change the title name based on user-clicked map points, but am
having problems applying the same method to the scatter plot. Any help
would be appreciated.
Here is the code for the map and scatter plot:
google.load('visualization', '1', {packages: ['corechart']});
google.load('maps', '3.9', {other_params: "sensor=false"});
google.setOnLoadCallback(initialize);
function initialize() {
var myOptions = {
center: new google.maps.LatLng(38.099983, -80.683594),
zoom: 7,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE
},
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
},
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
var layer = new google.maps.FusionTablesLayer();
updateLayerQuery(layer);
layer.setMap(map);
drawVisualization('Bear Branch');
var query = new
google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq=');
query.setQuery('SELECT Site, CALK, MAGIC_CL50 FROM 3235688');
query.send(function (response) {
var data = response.getDataTable();
var baseView = new google.visualization.DataView(data);
baseView.setColumns([1, 2]);
var scatter = new
google.visualization.ScatterChart(document.getElementById('scatter'));
google.visualization.events.addListener(scatter, 'ready', function
() {
google.maps.event.addListener(layer, 'click', function(e) {
var Site = e.row['Site'].value;
setScatterSelection(Site);
drawVisualization(Site);
});
google.maps.event.addDomListener(document.getElementById('Site'), 'change',
function() {
var Site = this.value;
updateLayerQuery(layer, Site);
setScatterSelection(Site);
drawVisualization(Site);
});
function setScatterSelection (site) {
var row = data.getFilteredRows([{column: 0, value:
site}])[0];
var view = new google.visualization.DataView(baseView);
view.setColumns([0, 1, {
type: 'number',
label: baseView.getColumnLabel(1),
calc: function (dt, index) {
if (row == index) {
return dt.getValue(index, 1);
}
else {
return null;
}
}
}]);
var ready =
google.visualization.events.addListener(scatter, 'ready', function () {
scatter.setSelection([{row: row, column: 2}]);
google.visualization.events.removeListener(ready);
});
scatter.draw(view, {
width: 350,
height: 300,
titleX: 'ANC (ueq/L)', title: 'Site', titleY: 'CL for ANC=50
(meq/m2/yr)',
series: [{
pointSize: 5
}, {
visibleInLegend: false,
pointSize: 10,
color: 'red'
}],
legend: {position: 'top', textStyle: {color: 'blue', fontSize: 12}}
});
};
});
scatter.draw(baseView, {
width: 350,
height: 300,
titleX: 'ANC (ueq/L)', title: 'Site', titleY: 'CL for ANC=50
(meq/m2/yr)',
series: [{pointSize: 5}],
legend: {position: 'top', textStyle: {color: 'blue', fontSize: 12}}
});
});
}
function updateLayerQuery(layer) {
layer.setOptions({
query: {
select: 'Site',
from: '3235688'
}
});
}
--
You received this message because you are subscribed to the Google Groups
"Google Visualization API" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-visualization-api/-/PJVQPFikcIQJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-visualization-api?hl=en.