我试图弄清楚如何使用新的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吗?
答案 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 打开控制台/开发人员工具),您会看到您获得了一个对象使用columns
和rows
属性,您可以按照自己喜欢的方式使用数据。我上面的示例只是打印检索数据的HTML表。
如果您的查询有错误或无法访问,error
属性设置为相应的错误消息。