2017-09-05 30 views
1

,所以這是我在我的index.html上設置的。 api密鑰已在console.developers.google.com生成,我不認爲這是導致錯誤。 問題是arrayToDataTable是未定義的,我把它放在我的index.html上,只是爲了測試這是否會工作,但在我的真實應用程序中它被分離到一個組件。無法讀取谷歌地理圖表中未定義的屬性'arrayToDataTable'

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

<script> 
     google.charts.load('current', { 
      'packages': ['geochart'], 
      'mapsApiKey': 'AIzaSyC1PKyylEm8Xe0l0fnv81tuuUS-eOlrRCQ' 
     }); 

     google.charts.setOnLoadCallback(drawStuff()); 

     function drawStuff() { 
      var MapData = google.visualization.arrayToDataTable([ 
      ["Code", "Name", "Value"], 
      ["PH-14", "Autonomous Region in Muslim Mindanao (ARMM)", 1], 
      ["PH-05", "Bicol (Region V)", 2], 
      ["PH-02", "Cagayan Valley (Region II)", 3], 
      ["PH-40", "Calabarzon (Region IV-A)",4 ], 
      ["PH-13", "Caraga (Region XIII)", 5], 
      ["PH-03", "Central Luzon (Region III)", 6], 
      ["PH-07", "Central Visayas (Region VII)", 7], 
      ["PH-15", "Cordillera Administrative Region (CAR)", 8], 
      ["PH-11", "Davao (Region XI)", 9], 
      ["PH-08", "Eastern Visayas (Region VIII)", 10], 
      ["PH-01", "Ilocos (Region I)", 11], 
      ["PH-41", "Mimaropa (Region IV-B)", 12], 
      ["PH-00", "National Capital Region Pambansang Punong", 13], 
      ["PH-10", "Northern Mindanao (Region X)", 14], 
      ["PH-12", "Soccsksargen (Region XII)", 15], 
      ["PH-06", "Western Visayas (Region VI)", 16], 
      ["PH-09", "Zamboanga Peninsula (Region IX)", 17] 
      ]); 


      console.log(MapData); 

      // Set chart options 
      var MapOptions = { 
      'region': 'PH', 
      'resolution': 'provinces', 
      'title': 'How Much Pizza I Ate Last Night', 
      'width': 400, 
      'height': 300 
      }; 

      // Instantiate and draw our chart, passing in some options. 
      var chart = new google.visualization.GeoChart(document.getElementById('chartdiv')); 
      chart.draw(MapData, MapOptions); 
     }; 
    </script> 

我真的不知道設置中缺少什麼。

+0

嘗試console.log(google.visualization.arrayToDataTable);是功能? – InferOn

+0

@InferOn它是未定義的。但是當我嘗試console.log(谷歌)一切都存在。奇怪的。但是當我嘗試console.log(google.visualization)。它是未定義的。 –

+0

我修改了一個官方的jsfiddle,似乎工作https://jsfiddle.net/6fru9eo6/1/ – InferOn

回答

2

首先,刪除括號中......

google.charts.setOnLoadCallback(drawStuff) // not drawStuff() 

當你有括號,你傳遞的是調用該函數的結果,但是API想要給予一個處理函數(不是它的結果)。

此外,除了...

["Code", "Name", "Value"], 

...嘗試使用標籤語法,就像這樣......

[{label: 'Code', type: 'string'}, 
{label: 'Name', type: 'string'}, 
{label: 'Value', type: 'number'}], 

的API應該能夠弄清楚這不改變,但這是一種「即時需要」的改變,也使得代碼更加自我記錄。

+0

這個人很緊。謝謝G. –

0

嗨與此控制檯嘗試在線網站的HTML CSS JS:

google.load("visualization", "1", {packages:["corechart"]}); 
 
     google.setOnLoadCallback(drawStuff); 
 
     function drawStuff() { 
 
     var data = google.visualization.arrayToDataTable([ 
 
      ["Code", "Name", "Value"], 
 
      ["PH-14", "Autonomous Region in Muslim Mindanao (ARMM)", 1], 
 
      ["PH-05", "Bicol (Region V)", 2], 
 
      ["PH-02", "Cagayan Valley (Region II)", 3], 
 
      ["PH-40", "Calabarzon (Region IV-A)",4 ], 
 
      ["PH-13", "Caraga (Region XIII)", 5], 
 
      ["PH-03", "Central Luzon (Region III)", 6], 
 
      ["PH-07", "Central Visayas (Region VII)", 7], 
 
      ["PH-15", "Cordillera Administrative Region (CAR)", 8], 
 
      ["PH-11", "Davao (Region XI)", 9], 
 
      ["PH-08", "Eastern Visayas (Region VIII)", 10], 
 
      ["PH-01", "Ilocos (Region I)", 11], 
 
      ["PH-41", "Mimaropa (Region IV-B)", 12], 
 
      ["PH-00", "National Capital Region Pambansang Punong", 13], 
 
      ["PH-10", "Northern Mindanao (Region X)", 14], 
 
      ["PH-12", "Soccsksargen (Region XII)", 15], 
 
      ["PH-06", "Western Visayas (Region VI)", 16], 
 
      ["PH-09", "Zamboanga Peninsula (Region IX)", 17] 
 
      ]); 
 

 
      // Set chart options 
 
      var options = { 
 
      'region': 'PH', 
 
      'resolution': 'provinces', 
 
      'title': 'How Much Pizza I Ate Last Night', 
 
      'width': 400, 
 
      'height': 300 
 
      }; 
 

 
     var chart = new google.visualization.GeoChart(document.getElementById('chart_div')); 
 
     chart.draw(data, options); 
 
     }
<script src="http://www.google.com/jsapi?fake=.js"></script> 
 
<div id="chart_div" style="width: 900px; height: 500px;"></div>

相關問題