2012-02-03 6 views
0

흠, 어쩌면 누군가가 나를 여기에서 도울 수 있거나 올바른 방향으로 나를 가리킬 수 있습니다. 지금은 며칠 동안 벽에 머리를 대고 있어도 보이지 않습니다. 어디서나 유용합니다. (그리고 솔직히 나는 json, objects, google visulization 등등에 관해서는 꽤 새로운 편임) 본질적으로, 나는 3 개의 다른 융합 테이블에 대해 같은 페이지에서 3 개의 다른 쿼리를 실행하고있다. 마커의 다른 xets. 모두 괜찮습니다, 내가 쿼리를 개별적으로 실행하고 마커의 배열을 만들 때. 그러나 동일한 페이지에서 3 개의 쿼리를 실행하면 응답 함수에서 쿼리를 식별하는 방법을 찾지 못하는 것 같습니다.Google 시각화 api, 응답 함수에서 tableid 식별

많은 힌트를 주시면 감사하겠습니다. 필요한 경우 더 많은 정보를 제공해 드리겠습니다. (불필요한 것들을 없애려고 노력했습니다.)

이것은 내가 가지고있는 것입니다. 덕분에

) a) 관련된 모든 변수들과 함께 "setFusionData()"함수를 호출. setFusionData (" 'LatLng', 'name'", 2729461)와 같은 것; *

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를 얻을 수 있지만 테이블 * 자료 : 는

  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***/  
        } 



      } 

내가이 같은 시도 (이 호출되어 서로 다른 변수로 3 회입니다). 그래서 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 
,210

그러나, 스크립트에서 같은를 호출하면 ...... 사람이 어떤 (중 하나 REQID처럼 보이는 일없이)

   { 
       "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'하지만 일부 비밀 키를 반환 그게 왜/가능하겠습니까?

때때로

답변

0

당신은 당신의 샘플 요청을 반환, 단지 JSON 응답을보고 그것을 알아낼 수 있습니다

google.visualization.Query.setResponse({ 
    version:'0.5', 
    reqId:'1234', 
    status:'ok', 
    table: { 
     ... 
    } 
}) 

이미이 응답 인 요청을 식별 할 수 response.reqId있어, 지금 당신이 response.table을 사용할 수 있습니다 새로운 DataTable 인스턴스를 만들 :

var dt = new google.visualization.DataTable(response.table); 

을 또는 여러 개의 테이블을 가지고 있기 때문에, reqId

로 인덱스 배열에 다음 넣어
tables[response.reqId] = new google.visualization.DataTable(response.table); 

처음으로 setFusionData()을 호출하기 전에 var tables = new Array()을 수행 할 것입니다.

+0

흠, 아마도 조금 밀도가 높습니다 (가능성이 높음). 나는 다음을 시도했다 : [code] function getFusionData (response) { var dt = new google.visualization.DataTable (response.reqId); 경고 (JSON.stringify (DT)) } [코드] 하지만 난 단지 COLS/행/P를 얻을 수 (즉 무엇이든)하지만 REQID – olly

+0

내가 좀 더 주위에 엉망이 없지만, 결국, 그것은 종기 '응답'은 실제로 다음과 같은 결과를 반환하기 때문에 response.table은 'undefined'를 반환합니다. { "rj": "0.5", "ef": "ok", "pb": [], " qb ": [], "h ":" \t {\ "cols \": \t \t [{\ "id \": \ "col2 \", \ "label \": \ "LatLng \", \ "문자열 \": \ "문자열 \": \ "문자열 \": \ "이름 \", ], \t \ "rows \": \t \t [{\ "c \": [{\ "v \": \ "47.20572,12.70414 \"}, \t {\ "v \": \ "Hohe Tauern \"}]} "\"v \ ": \"47.5530395,12.925611 \ "}, {\"v \ ": \"Berchtesgaden \ "}}}, {\"c \ ": ": \"47.5585405,14.61887 \ "}, {\"v \ ": \"Ges \\ u00e4use \ "}]}] \ \t \t"p \ ": {\"totalrows \ ": 3} \t} " } – olly

+0

google.visualization.DataTable (response.reqId)을 google.visualization.DataTable (response.table)로 바꾸면 제대로 작동합니다. – miguev