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 url を直接参照すると、適切な応答セットが生成されることを確認しました。ただし、4行目で次のエラーが発生しています。「キャッチされていない TypeError: 未定義のプロパティ 'Query' を読み取ることができません。」

これは、私が受け取っているエラーを示す完全な html ファイルです。

<!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>

これが機能しない理由を理解するのに(ドキュメントと例を数日読んだ後)途方に暮れています。どんな助けでも大歓迎です!

4

1 に答える 1

4

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 が定義されていないというエラーが表示されます (定義されていないため)。

于 2013-05-14T17:53:50.047 に答える