2017-09-05 64 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>

相关问题