>
> So, I deleted the  "google.maps.event.addDomListener(window, 'load',
> initialize);" at the very bottom of the script and I moved the ToggleLayer
> function to here (see below), but the toggle still doesn't work.  Did I do
> this correctly?
>
>
 <script type="text/javascript">
    google.load('visualization', '1', {packages: ['corechart']});
google.load('maps', '3.9', {other_params: "sensor=false"});
google.setOnLoadCallback(initialize);
var map;
function initialize() {

*function ToggleLayer() {
 var chkLayer = document.getElementById("show_hide_Layer");
    if (chkLayer.checked === true) {
        //Turn layer on
        layer.setMap(map);
    }
    else {
        //Turn layer off
        layer.setMap(null);
    }
}

*
On Wed, Aug 1, 2012 at 1:39 PM, asgallant <[email protected]> wrote:

> Two things:
>
> 1) you shouldn't call the initialize function from both
> google.setOnLoadCallback and google.maps.event.addDomListener - the
> setOnLoadCallback should be sufficient (and the other one is probably
> throwing an error - if it isn't, then initialize is being called twice,
> which you probably don't want).
>
> 2) the source of your problem is the scope of the "layer" variable.  It is
> declared locally inside the initialize function, and you are trying to
> access it from outside the initialize function.  You either need to declare
> "layer" in a global scope or move the ToggleLayer function inside the
> initialize function.
>
>
> On Wednesday, August 1, 2012 4:27:30 PM UTC-4, es wrote:
>>
>> I'm wondering if it's interfering in some way, with my pie and scatter
>> (which also reference the "layer" variable).  I wanted to spare you a
>> lengthy code posting, but maybe it would be helpful to see the rest of the
>> code??
>>
>> <!-- Below is the code for the google map: -->
>>
>>     <script type="text/javascript">
>>     google.load('visualization', '1', {packages: ['corechart']});
>> google.load('maps', '3.9', {other_params: "sensor=false"});
>> google.setOnLoadCallback(**initialize);
>> var map;
>> 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
>>     };
>>
>>  map = new google.maps.Map(document.**getElementById('map_canvas'),
>> myOptions);
>>     var layer = new google.maps.FusionTablesLayer(**);
>>     updateLayerQuery(layer);
>>     layer.setMap(map);
>>
>> var kmlLayerNationalforestURL = 'http://www.esenvironmental.**
>> com/kml/national_forests.kml<http://www.esenvironmental.com/kml/national_forests.kml>
>> ';
>> var kmlLayerWildernessURL = 'http://www.esenvironmental.**
>> com/kml/wilderness.kml<http://www.esenvironmental.com/kml/wilderness.kml>
>> ';
>> var kmlLayerBoundaryURL = 'http://www.esenvironmental.**
>> com/kml/study_region.kml<http://www.esenvironmental.com/kml/study_region.kml>
>> ';
>> <!-- preserveViewport prevents the map from zooming to the specific kml
>> file -->
>> var kmlOptions = {
>>                 preserveViewport: true
>>     };
>>
>> kmlLayerNationalforest = new 
>> google.maps.KmlLayer(**kmlLayerNationalforestURL,
>> kmlOptions);
>>  kmlLayerNationalforest.**setMap(null);
>>
>> kmlLayerWilderness = new google.maps.KmlLayer(**kmlLayerWildernessURL,
>> kmlOptions);
>>  kmlLayerWilderness.setMap(**null);
>>
>> kmlLayerBoundary = new google.maps.KmlLayer(**kmlLayerBoundaryURL,
>> kmlOptions);
>>  kmlLayerBoundary.setMap(map);
>>
>>
>> document.getElementById('show_**hide_KML_Layer_Nationalforest'**).checked
>> = false;
>> document.getElementById('show_**hide_KML_Layer_Wilderness').**checked =
>> false;
>> document.getElementById('show_**hide_KML_Layer_Boundary').**checked =
>> true;
>> document.getElementById('show_**hide_Layer').checked = true;
>> //In the Javascript OUTSIDE of where you are creating your map, toggle
>> the display of the KML Layers
>> //(see near the end of this Java Script code).  If the toggle is created
>> inside the map code, toggling will NOT work!
>>
>>
>>     var pieChart = new google.visualization.**ChartWrapper({
>>         containerId: "visualization",
>>         chartType: "PieChart",
>>         options: {
>>             colors: ['#0000CC', '#3399FF', '#66CC00', '#FFFF00',
>> '#FF9933', '#FF0033'],
>>             legendTextStyle: {
>>                 color: '#666666',
>>                 fontSize: '11'
>>             },
>>             titleTextStyle: {
>>                 color: '#006600',
>>                 fontSize: '12'
>>             },
>>             titlePosition: 'out',
>>             legend: 'left',
>>             is3D: true,
>>             height: 150,
>>             width: 350,
>>             backgroundColor: 'none',
>>             tooltip: {
>>                 textStyle: {
>>                     color: 'black'
>>                 },
>>                 showColorCode: true
>>             },
>>             pieSliceText: 'percentage',
>>             pieSliceTextStyle: {
>>                 color: 'white',
>>                 fontSize: '11'
>>             },
>>             chartArea: {
>>                 top: '30',
>>                 left: '5',
>>                 height: "80%",
>>                 width: "70%"
>>             }
>>         }
>>     });
>>
>>
>>     drawVisualization('Bear Branch');
>>     var query = new google.visualization.Query('ht**tp://www.google.com/*
>> *fusiontables/gvizdata?tq='<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.**ChartWrapper({
>>             containerId: "scatter",
>>             chartType: "ScatterChart",
>>             dataTable: baseView,
>>             options: {
>>                 width: 300,
>>                 height: 300,
>>                 titleX: 'ANC (ueq/L)', fontSize: '12',
>>                 title: 'Site',
>>     backgroundColor: {fill: 'white'},
>>                 titleTextStyle: {
>>                     color: '#006600',
>>                     fontSize: '12'
>>                 },
>>                 titleY: 'CL for ANC=50 (meq/m2/yr)', fontSize: '12',
>> fontName: 'Arial',
>>                 series: [{
>>                     pointSize: 5
>>                 }, {
>>                     visibleInLegend: false,
>>                     pointSize: 10,
>>                     color: 'red'
>>                 }],
>>                 legend: {
>>                     position: 'none',
>>                     textStyle: {
>>                         color: 'blue',
>>                         fontSize: 12
>>                     }
>>                 }
>>             }
>>         });
>>         var runOnce = 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);
>>             });
>>
>>             google.visualization.events.**removeListener(runOnce);
>>         });
>>
>>         setScatterSelection('Bear Branch');
>>
>>         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.getChart().**setSelection([{
>>                     row: row,
>>                     column: 2
>>                 }]);
>>                 google.visualization.events.**removeListener(ready);
>>             });
>>
>>             scatter.setDataTable(view);
>>             scatter.setOption('title', site);
>>             scatter.draw();
>>         };
>>     });
>>
>>     function drawVisualization(Site) {
>>         var pieQuery = new google.visualization.Query('ht**
>> tp://www.google.com/**fusiontables/gvizdata?tq='<http://www.google.com/fusiontables/gvizdata?tq='>
>> );
>>         pieQuery.setQuery("SELECT Site, BCw, BCdep, Nup, Nimm, ANClimit,
>> BCup FROM 3235688 WHERE Site = '" + Site + "'");
>>         pieQuery.send(function(**response) {
>>             var baseData = response.getDataTable();
>>
>>             var pieData = new google.visualization.**DataTable();
>>             pieData.addColumn('string', baseData.getColumnLabel(0));
>>             pieData.addColumn('number', 'Value');
>>
>>             for (var i = 1; i < baseData.getNumberOfColumns(); i++) {
>>                 pieData.addRow([baseData.**getColumnLabel(i),
>> baseData.getValue(0, i)]);
>>             }
>>
>>             pieChart.setOption('title', Site);
>>             pieChart.setDataTable(pieData)**;
>>             pieChart.draw();
>>
>>             basePieData = null;
>>             pieData = null;
>>         });
>>     }
>>
>>     function updateLayerQuery(layer) {
>>         layer.setOptions({
>>             query: {
>>                 select: 'Site',
>>                 from: '3235688'
>>             }
>>         });
>>     }
>> }
>>
>> function toggleKMLLayerBoundary() {
>>         if (!document.getElementById('**show_hide_KML_Layer_Boundary')**
>> .checked)
>>                 kmlLayerBoundary.setMap(null);
>>         else
>>                 kmlLayerBoundary.setMap(map);
>> }
>> function toggleKMLLayerWilderness() {
>>         if (!document.getElementById('**show_hide_KML_Layer_**
>> Wilderness').checked)
>>                 kmlLayerWilderness.setMap(**null);
>>         else
>>                 kmlLayerWilderness.setMap(map)**;
>> }
>> function toggleKMLLayerNationalforest() {
>>         if (!document.getElementById('**show_hide_KML_Layer_**
>> Nationalforest').checked)
>>                 kmlLayerNationalforest.setMap(**null);
>>         else
>>                 kmlLayerNationalforest.setMap(**map);
>> }
>> function ToggleLayer() {
>>  var chkLayer = document.getElementById("show_**hide_Layer");
>>     if (chkLayer.checked === true) {
>>         //Turn layer on
>>         layer.setMap(map);
>>     }
>>     else {
>>         //Turn layer off
>>         layer.setMap(null);
>>     }
>> }
>>
>> google.maps.event.**addDomListener(window, 'load', initialize);
>> </script>
>>
>>
>> On Wednesday, August 1, 2012 1:06:34 PM UTC-7, es wrote:
>>
>>> Oh yes... I see that now.  However after making the change the fusion
>>> layer still does not turn off and on.  Any other thoughts?
>>>
>>> On Wednesday, August 1, 2012 12:58:51 PM UTC-7, asgallant wrote:
>>>
>>>> It's in the javascript; it should be:
>>>>
>>>> var chkLayer = document.getElementById("show_**hide_Layer");
>>>>
>>>> On Wednesday, August 1, 2012 3:53:31 PM UTC-4, es wrote:
>>>>>
>>>>> I tried using a lower case "l", but that didn't work either:
>>>>> id="show_hide_layer".  Is this the wrong id all together?
>>>>>
>>>>>
>>>>>
>>>>> On Wednesday, August 1, 2012 12:34:01 PM UTC-7, asgallant wrote:
>>>>>
>>>>>> The id of the checkbox doesn't match the id you use to set the
>>>>>> chkLayer variable in the ToggleLayer function.
>>>>>>
>>>>>> On Wednesday, August 1, 2012 3:15:43 PM UTC-4, es wrote:
>>>>>>>
>>>>>>> I have unsuccessfully tried to create a toggle (checkbox) for my
>>>>>>> google fusion tables layer which should work with the toggling of my kml
>>>>>>> layers (the kml layers toggle off and on my map successfully).  Here are
>>>>>>> some snippets of code that I am using to code the klm layers and the one
>>>>>>> google fusion layer.  I have not included a bunch of other coding,
>>>>>>> including the pie and scatter plots (also referencing the fusion table
>>>>>>> layer).  Thanks in advance for any help!
>>>>>>>
>>>>>>> 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
>>>>>>>     };
>>>>>>>
>>>>>>>  map = new google.maps.Map(document.**getElementById('map_canvas'),
>>>>>>> myOptions);
>>>>>>>     //the "layer" is the one I am trying to have function with a
>>>>>>> toggle
>>>>>>> var layer = new google.maps.FusionTablesLayer(**);
>>>>>>>     updateLayerQuery(layer);
>>>>>>>     layer.setMap(null);
>>>>>>>
>>>>>>> var kmlLayerWildernessURL = 'http://www.esenvironmental.**
>>>>>>> com/kml/wilderness.kml<http://www.esenvironmental.com/kml/wilderness.kml>
>>>>>>> ';
>>>>>>> var kmlLayerBoundaryURL = 'http://www.esenvironmental.**
>>>>>>> com/kml/study_region.kml<http://www.esenvironmental.com/kml/study_region.kml>
>>>>>>> ';
>>>>>>> var kmlOptions = {
>>>>>>>                 preserveViewport: true
>>>>>>>     };
>>>>>>>
>>>>>>>
>>>>>>> kmlLayerWilderness = new google.maps.KmlLayer(**kmlLayerWildernessURL,
>>>>>>> kmlOptions);
>>>>>>>  kmlLayerWilderness.setMap(**null);
>>>>>>> kmlLayerBoundary = new google.maps.KmlLayer(**kmlLayerBoundaryURL,
>>>>>>> kmlOptions);
>>>>>>>  kmlLayerBoundary.setMap(map);
>>>>>>>
>>>>>>> document.getElementById('show_**hide_KML_Layer_Wilderness').**checked
>>>>>>> = false;
>>>>>>> document.getElementById('show_**hide_KML_Layer_Boundary').**checked
>>>>>>> = true;
>>>>>>> document.getElementById('show_**hide_Layer').checked = false;
>>>>>>>
>>>>>>> function toggleKMLLayerBoundary() {
>>>>>>>         if (!document.getElementById('**
>>>>>>> show_hide_KML_Layer_Boundary')**.checked)
>>>>>>>                 kmlLayerBoundary.setMap(null);
>>>>>>>         else
>>>>>>>                 kmlLayerBoundary.setMap(map);
>>>>>>> }
>>>>>>> function toggleKMLLayerWilderness() {
>>>>>>>         if (!document.getElementById('**show_hide_KML_Layer_**
>>>>>>> Wilderness').checked)
>>>>>>>                 kmlLayerWilderness.setMap(**null);
>>>>>>>         else
>>>>>>>                 kmlLayerWilderness.setMap(map)**;
>>>>>>> }
>>>>>>> function ToggleLayer() {
>>>>>>>     var chkLayer = document.getElementById("**chkLayer");
>>>>>>>     if (chkLayer.checked === true) {
>>>>>>>         //Turn layer on
>>>>>>>         layer.setMap(map);
>>>>>>>     }
>>>>>>>     else {
>>>>>>>         //Turn layer off
>>>>>>>         layer.setMap(null);
>>>>>>>     }
>>>>>>> }
>>>>>>> <!-- Below is the code for the checkboxes: -->
>>>>>>> Show:<input type="checkbox" id="show_hide_KML_Layer_**Boundary"
>>>>>>> onClick="**toggleKMLLayerBoundary();" />Study Area<p>
>>>>>>> Show:<input type="checkbox" id="show_hide_KML_Layer_**Wilderness"
>>>>>>> onClick="**toggleKMLLayerWilderness();" />Wilderness<p>
>>>>>>> Show:<input type="checkbox" id="show_hide_Layer"
>>>>>>> onClick="toggleLayer();" />Sites<p>
>>>>>>> <!-- Above is the code for the checkboxes: -->
>>>>>>>
>>>>>>  --
> 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/-/BcZdEWox9icJ.
>
> 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.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
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.

Reply via email to