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沒有定義的錯誤(因爲它不是)