2015-09-08 28 views
8

Benim web sayfasında bir google harita yanı sıra üç grafikler var. Sayfa yüklendiğinde harita iyi, ancak grafikler ya yüklemiyor ya da sadece bir ya da iki yapıyor. TypeError hatası alıyorum: google.visualization.DataTable bir kurucu değil.TypeError: google.visualization.DataTable bir kurucu değil

function load() { 
    //map object 
     var MY_MAP = new google.maps.Map(document.getElementById("map"), { 
     center: {lat: 54.870902, lng: -6.300565}, 
     zoom: 14 
     });  
     //call to get and process data 
     downloadUrl("Map.php", processXML); 
    } 

// Load the Visualization API and the piechart package. 
     google.load('visualization', '1.0', {'packages':['corechart']}); 
     // Set a callback to run when the Google Visualization API is loaded. 
google.setOnLoadCallback(drawAltitudeChart()); 
google.setOnLoadCallback(drawDisplacementChart()); 
google.setOnLoadCallback(drawDistanceChart()); 



function drawAltitudeChart(){ 

     //console.log('hello'); 
     var graph = []; 
      downloadUrl("Map.php", function (data){ 
       var xml = data.responseXML; 
       var markers = xml.documentElement.getElementsByTagName("marker"); 
       var dataTable = new google.visualization.DataTable(); 
       var options = {title:'Altitude (m above sea level)', 
        curveType:'function', 
        legend:{position:'bottom'}, 
        is3d:true  
       }; 
       var chart; 

       for(var i = 0; i<markers.length; i++){ 
        graph[i] = ['', parseInt(markers[i].getAttribute("alt"))]; 
       } 

       dataTable.addColumn('string', 'id'); 
       dataTable.addColumn('number', 'Altitude'); 
       dataTable.addRows(graph); 


       chart = new google.visualization.LineChart(document.getElementById('curve_chart')); 
       chart.draw(dataTable, options); 

      }); 
     } 

cevap

12

Bunun gibi birden fazla geri bildirim ekleyebileceğinizi düşünmüyorum.

Ayrıca, ... aynen böyle load yönteminde geri arama tanımlayabilirsiniz

google.load('visualization', '1.0', {'packages':['corechart'], 'callback': drawCharts}); 

function drawCharts() { 
    drawAltitudeChart(); 
    drawDisplacementChart(); 
    drawDistanceChart(); 
} 


yukarıdaki load açıklamada eski kütüphanede içindir DÜZENLEME. ..

göre 0

... yeni kitaplığı kullanarak

The version of Google Charts that remains available via the jsapi loader is no longer being updated consistently. Please use the new gstatic loader from now on.

...

<script src="https://www.gstatic.com/charts/loader.js"></script>

load deyimi dönüşür ...

google.charts.load('current', {'packages': ['corechart'], 'callback': drawCharts}); 

ayrıca bir load açıklamada, ör size gerekli olan tüm paketleri yükleyebilirsiniz 2

DÜZENLEME
Ben aynı mesajı aldım

google.charts.load('current', { 'packages': ['table'] }); 
google.charts.load('current', { 'packages': ['bar'] }); 
google.charts.load('current', { 'packages': ['pie'] }); // <-- 'pie' package does not exist 
google.charts.load('current', { 'packages': ['corechart'] }); 
google.charts.setOnLoadCallback(drawCharts); 

olması gerektiği ...

google.charts.load('current', { 
    callback: drawCharts, 
    packages: ['bar', 'corechart', 'table'] 
}); 
+0

yüklemek için unuttum çünkü bu bana çalışmadı –

+1

bir soru sorun, ben yardım etmeye çalışacağım ... – WhiteHat

+0

Teşekkür ederim efendim, bir göz atın: https://ideone.com/53kDM8 Ben aynı alıyorum hata, önerinizi denedim ama çalışmadı –

0

yerine ... ama sadece ben paketi

// was -> google.charts.load('current', {'packages':['bar', 'corechart']}); 
    google.charts.load('current', {'packages':['bar', 'corechart', 'table']}); 
İlgili konular