Хммм, может быть, кто-то может помочь мне здесь или указать мне правильное направление, так как я уже несколько дней бьюсь головой о стену и, похоже, никуда не полезу.(и по общему признанию, я довольно новичок в отношении json, объектов, визуализации в Google и т. д.) по сути, я выполняю 3 разных запроса на одной странице к 3 разным таблицам слияния, которые, в свою очередь, должны возвращать массив из 3 разных xetsмаркеров.все хорошо, когда я запускаю запросы по отдельности и делаю массив маркеров.Тем не менее, выполняя 3 запроса на одной странице, я не могу найти способ идентифицировать запрос в функции ответа.
Любые подсказки приветствуются.и я буду рад предоставить больше информации, если это необходимо (попытался избавиться от ненужных вещей)
это то, что у меня есть.спасибо
а) вызов функции "setFusionData ()" со всеми соответствующими переменными.что-то вроде setFusionData ("'LatLng', 'name'", 2729461);(это вызывается 3 раза с разными переменными)
function setFusionData(selColumns,tableId) {
/****
an actual query example is this:
http://www.google.com/fusiontables/gvizdata?tqx=reqId:1234&tq="select+'LatLng','name'+from+2729461"
****/
var query = new google.visualization.Query(
'http://www.google.com/fusiontables/gvizdata?tqx=reqId:1234&tq='+ encodeURIComponent("SELECT "+selColumns+" FROM "+tableId+"")
);
query.send(getFusionData); //do something with the response
}
function getFusionData(response) {
/**
here, is the problem as i need to get the table id or reqId or anything that is uniquely passed on from "setFusionData" above
also something like
alert(JSON.stringify(response)) does not return any reqId or table id either
***/
/*return rows/columns and add values to an array of markers***/
var numRows = response.getDataTable().getNumberOfRows();
var numCols = response.getDataTable().getNumberOfColumns();
for (i = 0; i < numRows; i++) {
/* add markers to array etc this works fine***/
}
}
я также попробовал что-то вроде этого:
function setFusionData(selColumns,tableId) {
......
query.send(getFusionData({reqId:tableId}));
}
function getFusionData(response) {
alert(response['reqId']);//returns tableId. but how do i get the tableData ?
}
, с помощью которого я могу получить reqId, но не таблицу * Data *,Так что я могу получить только идентификатор или данные: (
---- edit ----------------
после вознинемного больше (см. ниже) кажется, что пары ключ / значение, которые возвращаются при вводе запроса в браузер напрямую, отличаются от тех, которые возвращаются при вызове из сценария ... то есть следующие
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, а только какой-то загадочныйключи (без ключа, похожего на требование) ...... Кто-нибудь знает, почему это может / могло бы быть?