【问题标题】:Partially incorrect results from Google Fusion Table via Ajax, but correct via Chart Tools?通过 Ajax 从 Google Fusion Table 获得的结果部分不正确,但通过图表工具正确?
【发布时间】:2012-07-18 02:12:02
【问题描述】:

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

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

使用谷歌图表工具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 所独有的,问题略有编辑。

(这是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]]}})

【问题讨论】:

    标签: google-fusion-tables


    【解决方案1】:

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

    【讨论】:

    • Google Fusion Table API v1.0 现在似乎可以正常工作了。干得好 Google 团队解决了这么多晦涩难懂的问题!
    猜你喜欢
    • 2016-10-24
    • 2021-09-15
    • 2015-09-20
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多