2014-06-24 3 views
0

초보자 인 저는 JSON 파일 입력으로 차트를 만들 때 Google Visualization에 어려움을 겪고 있습니다. 비슷한 질문을 검색했지만 도움이되는지 확신 할 수 없었습니다.json 입력으로 Google 시각화

데이터 집합이 JSON 형식입니다. 현재 정적 데이터이며 로컬에 저장됩니다. Google 시각화를 사용하여 데이터를로드하고 시각화하고 싶습니다. 내 데이터는 다음과 같이이다 :

 "rows":[{"Time":10:00:00,"Lat":53.02900044,"Long":7.44578671,"Altitude":57,"Speed":0,...}, {"Time": 11:00:00,"Lat":52.06000044,"Long":7.54578671,"Altitude":53,"Speed":12,...]} 

나는 이런 식으로 사용하려고 :

function init() { 

var json3 = (function() { 
    var json3 = []; 
    $.ajax({ 
     'async': false, 
     'global': false, 
     'url': "Person3.json", 
     'dataType': "json", 
     'success': function (data3) { 
      json3 = data3.rows; 
     } 
    }); 
    console.log("Number of message rows: " + json3.length); 
    return json3; 
})(); 
var readings3 = []; 
if (json3.length > 0) 
    var readings3 = json3; 
    else 
    readings3=[ 
     {"Time":"10:00:00 ","Lat":66.02794563,"Long":7.45527353,.....}, 
     {"Time":"13:40:52 ","Lat":66.16435456,"Long":7.98108809,......} 
     ] 
var data3 = new google.visualization.DataTable(readings3); 

var graphview = new google.visualization.ChartWrapper({ 
    chartType: 'LineChart', 
    containerId: 'visualization1', 

    dataTable: data3, 
options: { 
     // chart options 
    } 
}); 

graphview.draw();  
} 
google.load('visualization', '1', {packages: ['corechart'], callback: init}); 

사람이 여기없는 것 좀 도와 줄래을, 또는 당신이 볼 경우 유사한 문제가 해결된다. 미리 감사드립니다 ...

답변

0

DataTable 생성자는 해당 구조의 개체를 허용하지 않습니다. 수동으로 DataTable을로 해당 개체를 구문 분석해야합니다 :

var data3 = new google.visualization.DataTable(); 
data3.addColumn('timeofday', 'Time'); 
data3.addColumn('number', 'Lat'); 
data3.addColumn('number', 'Long'); 
//... 
for (var i = 0; i < readings3.length; i++) { 
    var match = readings3[i].Time.match(/(\d{2}):(\d{2}):(\d{2})/); 
    var hours = parseInt(match[1], 10); 
    var minutes = parseInt(match[2], 10); 
    var seconds = parseInt(match[3], 10); 
    data.addRow([[hours, minutes, seconds, 0], readings3[i].Lat, readings3[i].Long, /* ... */]); 
} 

또한, 경우에 그것은 "Time":10:00:00이 유효하지 않습니다로 JSON 문자열에 시간이 인용 될 필요가 복사/붙여 넣기 오류가 아닙니다 .

+0

안녕하세요, 완벽하게 작동합니다. 감사. 동적 인 실시간 JSON 데이터에도 동일한 접근법이 적용되는지 알고 계십니까? – user3772904

+0

예, 동일한 접근 방식을 취할 수 있습니다. 키가 데이터 집합에서 데이터 집합으로 변경되는 경우 열 구성을 위해 일부 메타 데이터를 포함시켜 동적으로 만들 수 있도록해야합니다. – asgallant