0

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

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

使用 Google Chart Tools API,URL 是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 独有的,问题略有编辑。

(这里是示例 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]]}})
4

1 回答 1

0

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

于 2012-07-18T13:45:38.917 回答