通过Ajax从Google Fusion Table获得部分错误的结果,但通过图表工具是否正确?

时间:2012-07-18 02:12:02

标签: google-fusion-tables

学习Google FusionTables,因此可能会犯一个初学者的错误。通过ChartTools API查询Google Fusion Tables但未通过Ajax API查询时,我得到了正确的结果。奇怪的是,它为部分查询提供了正确的结果,而不是全部。我犯了错误吗?

图表工具API有效: 通过Chart Tools API查询Google FusionTable似乎工作正常,尽管有500行限制。例如,此查询:SELECT ETHUN, COUNT() FROM 1Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI GROUP BY ETHUN

使用Google Chart Tools API,网址为http://www.google.com/fusiontables/gvizdata?tq=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&tqx=reqId%3A0,返回JSON函数:

google.visualization.Query.setResponse({
    version:'0.5',
    reqId:'0',status:'ok',
    table:{
        p:{totalrows:3},
        cols:[
            {id:'col6',label:'ETHUN',type:'number'},           
            {id:'#agg#COUNT',label:'count()',type:'number'}
        ],
        rows:[
            {c:[{v:1.0},{v:3308.0}]}
            {c:[{v:2.0},{v:18702.0}]},
            {c:[{v:-9.0},{v:10768.0}]},
        ]
     }
 })

请特别注意值{1,2,-9}作为ETHUN的值。

新的FusionTables API不起作用 另一方面,通过Ajax API进行相同的查询返回正确的频率,但是NaN表示频率描述的值本身: https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&key=AIzaSyBT_ZCriV-Tm78KsJiQp6KKhjDwMhP0tYM

返回此JSON:

{
 "kind": "fusiontables#sqlresponse",
 "columns": [ "ETHUN",  "count()"  ],
 "rows": [
  [  NaN,  "3308" ]
  [  NaN, "18702" ],
  [  NaN, "10768" ],
 ]
}

为什么它会给我NaN而不是{1,2,-9}?

更新 我现在相信这个问题对于新的Fusion Tables SQL来说是独一无二的,这个问题稍有编辑。

(这是指向example Fusion Table)的链接

Fusion Tables SQL API(现已弃用)也可以使用

奇怪的是,这个链接也可以正常工作https://www.google.com/fusiontables/api/query?sql=SELECT%20ETHUN,%20COUNT%28%29%20FROM%204579147%20GROUP%20BY%20ETHUN&alt=json-in-script&jsonCallback=onResponse并以另一种格式返回以下JSONP响应:

onResponse({"table":{"cols":["ETHUN","count()"],"rows":[["2",18702],["-9",10768],["1",3308]]}})

1 个答案:

答案 0 :(得分:0)

这似乎是Google Fusion Tables API v1.0的错误。此错误特定于数字字段。 Ajax能够正确查询String字段。只是这个数据集主要有数字字段。