从API v1中的JavaScript函数查询Fusion表

时间:2013-08-04 11:04:18

标签: javascript google-fusion-tables

我试图弄清楚如何使用新的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吗?

1 个答案:

答案 0 :(得分:1)

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

所有你需要做的就是指定一个名为dataHandler的函数,因为这是你告诉jQuery用作回调的内容。即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属性设置为相应的错误消息。