【问题标题】:Query Fusion Table from JavaScript function in API v1从 API v1 中的 JavaScript 函数查询融合表
【发布时间】:2013-08-04 11:04:17
【问题描述】:

我试图弄清楚如何使用新的 Fusion Table API v1 从 Javascript 函数中查询表。我希望能够逐行遍历结果,并在执行过程中执行其他操作(在本例中为地理编码地址)。

我的查询语法正常。当我将 http 粘贴到浏览器中时,它会返回正确的结果。

我想不通的是如何首先提出请求,并在我可以使用的地方得到结果。

这篇文章与我想做的很接近,但它使用了旧的 API:http://www.reddmetrics.com/2011/08/10/fusion-tables-javascript-query-maps.html

function getData() {
    // Builds a Fusion Tables SQL query and hands the result to  dataHandler

    var queryUrlHead = 'https://www.googleapis.com/fusiontables/v1/query?sql=';
    var queryUrlTail = '&key={my key}';
    Table = {my table id};

    // write your SQL as normal, then encode it
    var query = "SELECT Address, Name FROM " + Table + " LIMIT 5";
    var queryurl = encodeURI(queryUrlHead + query + queryUrlTail);

    var jqxhr = $.get(queryurl, dataHandler, "jsonp");
}

也许新的 api 不需要 jquery?

【问题讨论】:

  • 所以我不知道我需要在我的页面上使用这样的东西启用 jquery: 通过 google 访问它!
  • 其中一个 Google 示例似乎在查询本身中调用了一个回调函数,使用以下代码:“&callback=handler”。有没有人有这方面的经验?它与jquery有什么不同?有什么优势?
  • 回调=处理程序用于JSONP。你可以自己做,也可以让 jQuery 来处理(jQuery 也使用 JSONP)。

标签: javascript google-fusion-tables


【解决方案1】:

您提供的代码没问题,它按预期工作(对我来说)。我创建了一个jsFiddle to show you an example usage

您需要做的就是指定一个名为dataHandler 的函数,因为这是您告诉jQuery 用作回调的函数。 IE。 jQuery 调用的结果是,它调用了你指定的函数。

首先,我建议您公开 Fusion Table。这样您就可以探索 API 的使用,而不必担心身份验证等问题。

function dataHandler(response) {
    console.log(response);
    //do something with the data using response.rows
}

function getData() {
    // Builds a Fusion Tables SQL query and hands the result to  dataHandler

    var queryUrlHead = 'https://www.googleapis.com/fusiontables/v1/query?sql=';
    var queryUrlTail = '&key={my key}';
    Table = {my table id};

    // write your SQL as normal, then encode it
    var query = "SELECT Address, Name FROM " + Table + " LIMIT 5";
    var queryurl = encodeURI(queryUrlHead + query + queryUrlTail);

    var jqxhr = $.get(queryurl, dataHandler, "jsonp");
}

如果您只是使用console.log 来分析您从 Fusion Tables 获得的响应(在浏览器中按 F12 以打开控制台/开发人员工具),您会看到一个对象带有columnsrows 属性,您可以按照自己喜欢的方式使用数据。我上面的示例只是打印了检索数据的 HTML 表格。

如果您的查询有错误或无法访问,error 属性会设置相应的错误消息。

【讨论】:

  • 感谢 Odi,您的示例和 jsFiddle 本身真的很有帮助。一旦我在那里工作,我意识到问题出在我的页面上,这导致我(终于!)弄清楚我需要启用 jquery(请参阅上面的评论)。
猜你喜欢
  • 2012-04-29
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多