从API v1.中的JavaScript函数查询融合表

Query Fusion Table from JavaScript function in API v1

本文关键字:查询 融合 函数 JavaScript API v1 中的      更新时间:2023-09-26

我正在试图了解如何使用新的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?

您提供的代码还可以,它按预期工作(对我来说)。我创建了一个jsFiddle来向您展示它的示例用法

您所需要做的就是指定一个名为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属性。