Javascript GoogleAPI,从datatable获取值

Javascript GoogleAPI,从datatable获取值,javascript,datatable,google-api,Javascript,Datatable,Google Api,我使用此代码查看单击了哪个区域。e[“region”]给出该区域的行号,然后我使用getValue查看区域(标记)名称 现在,在控制台日志中显示此错误: 未捕获错误:行索引1无效。应在[0-14]范围内。 行索引1在[0-14]范围内,怎么可能无效 编辑: 好了,更多代码:) 谷歌可视化API示例 load(“可视化”、“1”、{“包”:[“geomap”]}); setOnLoadCallback(drawMap); 函数drawMap(){ var data=new google.visu

我使用此代码查看单击了哪个区域。
e[“region”]
给出该区域的行号,然后我使用getValue查看区域(标记)名称

现在,在控制台日志中显示此错误:

未捕获错误:行索引1无效。应在[0-14]范围内。

行索引1在[0-14]范围内,怎么可能无效

编辑:

好了,更多代码:)


谷歌可视化API示例
load(“可视化”、“1”、{“包”:[“geomap”]});
setOnLoadCallback(drawMap);
函数drawMap(){
var data=new google.visualization.DataTable();
数据。添加行(24);
data.addColumn(“字符串”、“城市”);
data.addColumn(“number”,“Numar anunturi”);data.setValue(0,0,'Ilfov');
数据设置值(0,1,19);
数据设置值(1,0,'Giurgiu');
数据设置值(1,1,7);
data.setValue(2,0,'Brasov');
数据。设定值(2,1,6);
data.setValue(3,0,'Buzau');
数据设置值(3,1,3);
data.setValue(4,0,'Valcea');
数据设置值(4,1,3);
data.setValue(5,0,'Dolj');
数据设置值(5,1,3);
数据设置值(6,0,'Neamt');
数据设置值(6,1,2);
data.setValue(7,0,'Calarasi');
数据设置值(7,1,2);
数据设置值(8,0,'Dambovita');
数据设置值(8,1,2);
设置值(9,0,'Prahova');
数据设置值(9,1,2);
数据集值(10,0,'Braila');
数据设置值(10,1,2);
data.setValue(11,0,'Constanta');
数据设置值(11,1,2);
data.setValue(12,0,'Suceava');
数据设置值(12,1,2);
数据设置值(13,0,'Caras Severin');
数据设置值(13,1,2);
data.setValue(14,0,'Cluj');
数据设置值(14,1,2);
数据。设定值(15,0,'Bihor');
数据设置值(15,1,1);
data.setValue(16,0,'Bacau');
数据设置值(16,1,1);
data.setValue(17,0,'Maramures');
数据设置值(17,1,1);
数据设置值(18,0,'Arges');
数据设置值(18,1,1);
data.setValue(19,0,'Gorj');
数据设置值(19,1,1);
data.setValue(20,0,'Ialomita');
数据设置值(20,1,1);
data.setValue(21,0,'Bucuresti');
数据设置值(21,1,1);
数据集值(22,0,'Mures');
数据设置值(22,1,1);
数据设置值(23,0,'Sibiu');
数据设置值(23,1,1);
var选项={宽度:800,高度:400};
选项[“区域”]=“RO”;
选项[“颜色”]=[0xFF8747、0xFFB581、0xc06000];//橙色
选项[“数据模式”]=“标记”;
var container=document.getElementById(“map\u chart\u div”);
var geomap=newgoogle.visualization.geomap(容器);
google.visualization.events.addListener(
地理地图,“区域点击”,功能(e){
console.log(e[“region”]);
console.log(data.getValue(e[“region”],1));
}); 
绘制地理地图(数据、选项);
}
​

我无法用您发布的代码重现您的问题-我似乎根本无法启动regionClick函数-但是您看到的错误消息让我怀疑您的问题是
e[“region”]
返回的是字符串,而不是数字

尝试将其添加到函数中:

     <!--
You are free to copy and use this sample in accordance with the terms of the
Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>Google Visualization API Sample</title>
  <script type="text/javascript" src="http://www.google.com/jsapi"></script>
 <script type="text/javascript">

   google.load("visualization", "1", {"packages": ["geomap"]});

   google.setOnLoadCallback(drawMap);



    function drawMap() {

      var data = new google.visualization.DataTable();

      data.addRows(24);

      data.addColumn("string", "City");

      data.addColumn("number", "Numar anunturi");data.setValue(0, 0, 'Ilfov');

    data.setValue(0, 1, 19);



     data.setValue(1, 0, 'Giurgiu');

    data.setValue(1, 1, 7);



     data.setValue(2, 0, 'Brasov');

    data.setValue(2, 1, 6);



     data.setValue(3, 0, 'Buzau');

    data.setValue(3, 1, 3);



     data.setValue(4, 0, 'Valcea');

    data.setValue(4, 1, 3);



     data.setValue(5, 0, 'Dolj');

    data.setValue(5, 1, 3);



     data.setValue(6, 0, 'Neamt');

    data.setValue(6, 1, 2);



     data.setValue(7, 0, 'Calarasi');

    data.setValue(7, 1, 2);



     data.setValue(8, 0, 'Dambovita');

    data.setValue(8, 1, 2);



     data.setValue(9, 0, 'Prahova');

    data.setValue(9, 1, 2);



     data.setValue(10, 0, 'Braila');

    data.setValue(10, 1, 2);



     data.setValue(11, 0, 'Constanta');

    data.setValue(11, 1, 2);



     data.setValue(12, 0, 'Suceava');

    data.setValue(12, 1, 2);



     data.setValue(13, 0, 'Caras-Severin');

    data.setValue(13, 1, 2);



     data.setValue(14, 0, 'Cluj');

    data.setValue(14, 1, 2);



     data.setValue(15, 0, 'Bihor');

    data.setValue(15, 1, 1);



     data.setValue(16, 0, 'Bacau');

    data.setValue(16, 1, 1);



     data.setValue(17, 0, 'Maramures');

    data.setValue(17, 1, 1);



     data.setValue(18, 0, 'Arges');

    data.setValue(18, 1, 1);



     data.setValue(19, 0, 'Gorj');

    data.setValue(19, 1, 1);



     data.setValue(20, 0, 'Ialomita');

    data.setValue(20, 1, 1);



     data.setValue(21, 0, 'Bucuresti');

    data.setValue(21, 1, 1);



     data.setValue(22, 0, 'Mures');

    data.setValue(22, 1, 1);



     data.setValue(23, 0, 'Sibiu');

    data.setValue(23, 1, 1);





      var options = {width: 800,height:400};

      options["region"] = "RO";

      options["colors"] = [0xFF8747, 0xFFB581, 0xc06000]; //orange colors

      options["dataMode"] = "markers";



      var container = document.getElementById("map_chart_div");

      var geomap = new google.visualization.GeoMap(container);

        google.visualization.events.addListener( 
          geomap, "regionClick", function(e) {
          console.log(e["region"]);
          console.log(data.getValue(e["region"],1));
          }); 

      geomap.draw(data, options);

    }

  </script> 
</head>
<body style="font-family: Arial;border: 0 none;">
<div id="map_chart_div" style="width: 800px; height: 400px;"></div>
</body>
</html>
​
然后,如果您得到的是字符串,您可以尝试:

google.visualization.events.addListener( 
          geomap, "regionClick", function(e) {
          console.log(e["region"]);
          console.log("Type of value is: " + typeof(e["region"]));
          console.log(data.getValue(e["region"],1));
          }); 

是JavaScript吗?如果是,请重新标记。你能准备一个完整的例子吗?这样,每个感兴趣的人都可以自己运行它,并检查它的工作原理/调试/等等,您可能会得到更好的答案。了解
数据
变量中的内容会很有帮助。还请记住,通过查看文档中的
getValue()
,参数似乎是rowIndex,colIndex-因此它可能不喜欢您的第一个参数
e[“region”]
。它的价值是什么?真的是1吗?更新了。。。我不知道这是否是准确的代码,因为我已经删除了它,但我认为这就是它。我只是想在标记上添加一个点击事件…谢谢,我从来没有想过。Google应该显示“”之间的值,以便我们可以看到它被解释为字符串。这解决了问题:console.log(data.getValue(Math.floor(e[“region”]),0);(还必须将“1”替换为“0”,我的坏消息)。
google.visualization.events.addListener( 
          geomap, "regionClick", function(e) {
          console.log(e["region"]);
          console.log("Type of value is: " + typeof(e["region"]));
          console.log(data.getValue(e["region"],1));
          }); 
google.visualization.events.addListener( 
          geomap, "regionClick", function(e) {
          console.log(e["region"]);
          console.log("Type of value is: " + typeof(e["region"]));
          console.log(data.getValue(Math.floor(e["region"]),1));
          });