1

财产“查询”在此代码段 `无法读取的不确定

1) function gvizSelect(tableid) { 
2) var uri = "SELECT geometry FROM " + tableid + " WHERE name = 10095"; 
3) var queryText = "http://www.google.com/fusiontables/gvizdata?tq=" + encodeURIComponent(uri); 
4) var query = new google.visualization.Query(queryText); 
5) query.send(getData); 
6) } 

`

我已经证实,当直接浏览的网址QUERYTEXT会产生适当的响应集;但是第4行正在生成以下错误; “Uncaught TypeError:无法读取未定义的属性'Query'。”

下面是展示我收到

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Indianatrails.com</title> 
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    <script type=text/javascript> 
    google.load('visualization', '1', 
      { 
       'packages':['corechart', 'table', 'geomap'] 
      } 
    ); 
    var tableid = '1ZxSfeVZWVm_PuTe8Q5THFwmyR0NcGQzbSdCvQds'; 
    var uri = "SELECT geometry FROM " + tableid + " WHERE name = 10095"; 
    var queryText = "http://www.google.com/fusiontables/gvizdata?tq=" + encodeURIComponent(uri); 
    var query = new google.visualization.Query(queryText); 
    query.send(getData); 
    </script> 
    <body> 
    <h1>Test</h1> 
    </body> 
</html> 

我很茫然(几天后阅读文档和示例),以弄清楚这是为什么不工作的错误一个完整的HTML文件。任何帮助,将不胜感激!

+0

你包括[可视化API(https://developers.google.com/chart/交互式/文档/ basic_load_libs)? – geocodezip 2013-05-14 14:01:42

+0

是的。这是作为一个脚本块包含在HTML文件中调用它的。 – 2013-05-14 17:29:48

+0

但不是在你最初的问题... – geocodezip 2013-05-14 17:54:21

回答

3

如果您使用的是google.load(),则需要等到脚本加载后再使用它。您可以设置回调函数(google.setOnLoadCallback)。

<script type=text/javascript> 
    // Set a callback to run when the Google Visualization API is loaded. 
    google.setOnLoadCallback(runQuery); 
    google.load('visualization', '1', 
      { 
       'packages':['corechart', 'table', 'geomap'] 
      } 
    ); 
function runQuery() { 
    var tableid = '1ZxSfeVZWVm_PuTe8Q5THFwmyR0NcGQzbSdCvQds'; 
    var uri = "SELECT geometry FROM " + tableid + " WHERE name = 10095"; 
    var queryText = "http://www.google.com/fusiontables/gvizdata?tq=" + encodeURIComponent(uri); 
    var query = new google.visualization.Query(queryText); 
    query.send(getData); 
} 
    </script> 

当然然后我得到的getData没有定义的错误(因为它不是)