Google AnnotatedTimeLine DateTime JSON Ошибка - PullRequest
2 голосов
/ 22 февраля 2012

У меня возникла проблема при попытке построить график аннотированных временных шкал с использованием API Google Charts.

В JSON для первого столбца «дата», если я использую:

"v": new Date(2010, 01, 01)

Затем на моей странице появляется ошибка JavaScript, говорящая, что у меня неверный JSON.

Если вместо этого я использую:

"v": "new Date(2010, 01, 01)", тогда я получаю ошибкуTypeError: 'undefined' is not a function (evaluating 'M[y]()').

Мой код JavaScript является просто модификацией примера кода для круговой диаграммы, который находится по адресу: http://code.google.com/apis/chart/interactive/docs/php_example.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript" src="scripts/jquery-1.6.2.js"></script>
    <script type="text/javascript">

    // Load the Visualization API and the piechart package.
    google.load('visualization', '1', {'packages':['annotatedtimeline']});

    // Set a callback to run when the Google Visualization API is loaded.
    google.setOnLoadCallback(drawChart);

    function drawChart() {
      var jsonData = $.ajax({
          url: "getData.php",
          dataType:"json",
          async: false
          }).responseText;

      // Create our data table out of JSON data loaded from server.
      var data = new google.visualization.DataTable(jsonData);

      // Instantiate and draw our chart, passing in some options.
      var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
      chart.draw(data, {width: 400, height: 240});
    }

    </script>
  </head>

  <body>
    <!--Div that will hold the pie chart-->
    <div id="chart_div" style="height: 200px; width:200px;"></div>
  </body>
</html>

Я знаю, что у людей были похожие проблемы:

http://groups.google.com/group/google-visualization-api/browse_thread/thread/4cfe7f07e5ef4bcc

http://www.mail-archive.com/google-visualization-api@googlegroups.com/msg02940.html

Однако вэти темы / страницы, ответ, кажется, должен использовать "v": new Date(2010, 01, 01), однако это не работает для меня.

Я не уверен, что мне здесь не хватает.

Спасибо

Ответы [ 2 ]

5 голосов
/ 07 марта 2012

Итак, я, наконец, понял это с помощью небольшой группы пользователей API визуализации Google.

Это проверяется как JSON и корректно отображается при использовании "v": "Date(2010, 01, 01)" - обратите внимание на отсутствие ключевого слова "new".

Надеюсь, это поможет кому-то еще в будущем.

2 голосов
/ 05 ноября 2012

хорошо, это RAW и MESSY, но это работает !!

протестировано на jquery 1.4.2

google.load('visualization', '1', {packages: ['annotatedtimeline']});
google.load('jquery','1.4');
window.row = Array();

$.getJSON( "https://spreadsheets.google.com/feeds/list/YOURDOCSKEYID/od6/public/values?alt=json-in-script&callback=?",
  function (data) {   
  $.each(data.feed.entry, function(i,entry) {  
    row.push([new Date(entry.gsx$date.$t),+entry.gsx$column1.$t,+entry.gsx$column2.$t]); 
  });
});

function drawVisualization() {
  var data = new google.visualization.DataTable();
  data.addColumn('date', 'Date');
  data.addColumn('number', 'Column 1');
  data.addColumn('number', 'Column 2');
  data.addRows(row);

  var annotatedtimeline = new google.visualization.AnnotatedTimeLine(
      document.getElementById('visualization'));
  annotatedtimeline.draw(data, {'displayAnnotations': true});
}

google.setOnLoadCallback(drawVisualization);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...