Json google可视化api,在响应函数中标识tableid

Json google可视化api,在响应函数中标识tableid,json,google-maps-api-3,google-fusion-tables,Json,Google Maps Api 3,Google Fusion Tables,嗯,也许有人可以帮我,或者给我指出正确的方向,因为我已经用头撞墙好几天了,似乎没有什么用处。 (无可否认,我对json、对象、谷歌可视化等方面还很陌生) 本质上,我在同一页上针对3个不同的融合表运行3个不同的查询,而这些融合表反过来应该返回3个不同的标记xet的数组。 当我单独运行查询并创建一个标记数组时,一切都很好。 但是,在同一页面上运行这3个查询时,我似乎找不到在响应函数中标识查询的方法 非常感谢您的任何提示。如果需要的话,我会很乐意提供更多的信息(试图摆脱一些不必要的东西) 这就是我所拥

嗯,也许有人可以帮我,或者给我指出正确的方向,因为我已经用头撞墙好几天了,似乎没有什么用处。 (无可否认,我对json、对象、谷歌可视化等方面还很陌生) 本质上,我在同一页上针对3个不同的融合表运行3个不同的查询,而这些融合表反过来应该返回3个不同的标记xet的数组。 当我单独运行查询并创建一个标记数组时,一切都很好。 但是,在同一页面上运行这3个查询时,我似乎找不到在响应函数中标识查询的方法

非常感谢您的任何提示。如果需要的话,我会很乐意提供更多的信息(试图摆脱一些不必要的东西)

这就是我所拥有的。谢谢

a) 使用所有相关变量调用函数“setFusionData()”。类似于setFusionData(“LatLng”,“name”,2729461); (使用不同的变量调用3次)

使用wich,我可以得到reqId,但不能得到表*数据*。因此,我只能获取id或数据:(

----编辑----------------

在进行了更多的讨论之后(见下文),直接在浏览器中键入查询时返回的键/值对似乎与从脚本调用返回的键/值对不同…即

            http ://www.google.com/fusiontables/gvizdata?tqx=reqId:1234&tq="select+'LatLng','name'+from+2729461"
直接在浏览器栏中键入的内容将返回

            version:'0.5',reqId:'1234',status:'ok',table etc
但是,从脚本中调用相同的函数会返回如下结果

                {
                "rj":"0.5","ef":"ok","pb":[],"qb":[],"h":"{"cols":
                        [{"id":"col2","label":"LatLng","type":"string"},{"id":"col1","label":"name","type":"string"}],
                    "rows":
                        [{"c":[{"v":"47.20572,12.70414"},
                    {"v":"Hohe Tauern"}]},{"c":[{"v":"47.5530395,12.925611"},{"v":"Berchtesgaden"}]},{"c":[{"v":"47.5585405,14.61887"},{"v":"Gesu00e4use"}]}],
                        "p":{"totalrows":3}
                    }"
                }

,因此没有“reqId”,只有一些神秘的密钥(也没有一个看起来像reqId的密钥)……有人知道为什么会这样吗?

有时候,您可以通过查看JSON响应来找出答案,您的示例请求返回:

google.visualization.Query.setResponse({
    version:'0.5',
    reqId:'1234',
    status:'ok',
    table: {
      ...
    }
})
您已经获得了
response.reqId
来确定响应是针对哪个请求的,现在您可以使用
response.table
来创建一个新实例:

var dt = new google.visualization.DataTable(response.table);
或者,因为您有多个表,所以将它们放入一个用
reqId

tables[response.reqId] = new google.visualization.DataTable(response.table);

在第一次调用setFusionData()之前,您应该先执行
var tables=new Array()

hmm,我可能有点笨(很可能)。我尝试了以下:[code]函数getFusionData(response){var dt=new google.visualization.DataTable(response.reqId);alert(JSON.stringify(dt))}[code]但是我只得到了cols/rows/p(不管是什么),但没有任何requidi被弄乱了一点,但最终,它归结为,这个响应。table返回“未定义”,因为“response”实际上返回类似以下内容:
{“rj”:“0.5”,“ef”:“ok”,“pb”:[],“qb”:[],“h”:“{“cols\”:[{“id\”:“col2\”,“label\:“LatLng\”,“type\:“string\”,{“col1\”,“标签”是一个“标签”的。“标签”是一个“名称”的,“类型”是一个“字符串”的,”,”。“行”中的一些“行”是:“[“c\””:::“1.1.1\”,“1.1\”,“1.1\”,“1.1.1\”,“标签标签”是一个,”,”,”,”标签标签标签“标签标签”是“标签”的,”,”除了除了除了除了除了“1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1万万万,”,”,”,”除除除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了\\u00e4use\“}]}],\“p\:{\“totalrows\”:3}}
用google.visualization.DataTable(response.reqId)替换google.visualization.DataTable(response.table),它应该可以工作。嗯,我也尝试过(和其他排列),但在使用
query.send(getFusionData({reqId:tableId})时;
我得到
函数getFusionData(response){var ri=response.reqId);//返回reqId var dt=new google.visualization.DataTable(response.table);//使用
query.send(getFusionData)时返回表obj,但结果为零}
i get
function getFusionData(response){response.getDataTable();//返回所有正确的表行/cols etc response.reqId;//响应中不存在未定义为'reqId'的内容(请参见上文)}
i必须缺少某些内容,但找不到它。谢谢你的帮助
var dt = new google.visualization.DataTable(response.table);
tables[response.reqId] = new google.visualization.DataTable(response.table);