Озабоченность по поводу Google API Gauge

Прежде чем перейти к тому, что я планирую сделать, я хотел бы сначала узнать, возможно ли изменение изображений датчиков Google Gauges в соответствии с тем, что я хочу... Я имею в виду отображение / изображение датчика в API. манипулировать / установить моим кодом. Это возможно? Я все еще гуглю по этому поводу и пока не нашел ничего, поэтому я решил спросить здесь.

Я ценю любую помощь. Спасибо.

ниже приведен пример кода, который я получил с веб-сайта Google API

<html>
  <head>
    <script type='text/javascript' src='https://www.google.com/jsapi'></script>
    <script type='text/javascript'>
      google.load('visualization', '1', {packages:['gauge']});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Label', 'Value'],
          ['Memory', 80],
          ['CPU', 55],
          ['Network', 68]
        ]);

        var options = {
          width: 400, height: 120,
          redFrom: 90, redTo: 100,
          yellowFrom:75, yellowTo: 90,
          minorTicks: 5
        };

        var chart = new google.visualization.Gauge(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id='chart_div'></div>
  </body>
</html>

1 ответ

Звучит так, будто вы пытаетесь динамически изменять значения датчиков (то есть, куда указывают иглы), и это именно то, что датчик может сделать.

Во-первых, вам нужно решить, сколько датчиков вы хотите. Вы определяете их, когда составляете таблицу данных, которую вы подаете на датчик:

var data = google.visualization.arrayToDataTable([
   ['Label', 'Value'],
   ['Gauge1', 80],
   ['#2', 55],
   ['Third One', 68]
]);

Важно понимать, что это создает объект "DataTable", который немного похож на электронную таблицу. Это три строки и два столбца (первый массив "['Label', 'Value']" определяет имена столбцов). Каждая строка содержит метку и значение для первого измерителя (он будет помечен как "Gauge1" и будет начинаться со значения 80), а следующий ряд - это метка и значение для второго измерителя и т. Д.

Если вы когда-нибудь захотите изменить значение датчика, вам нужно изменить числа в объекте "data" (с помощью.setValue(строка, столбец, значение), а затем указать датчику перерисовать. Например,

data.setValue(0, 1, 30);

Это будет устанавливать строку-0, столбец-1 равным 30. Строка-0 соответствует первому датчику. Столбец 1 соответствует его значению (мы не хотим обновлять его метку... это будет столбец 0). Итак, чтобы обновить значения всех трех датчиков, мы бы использовали что-то вроде:

data.setValue(0, 1, 30); // Set "Gauge1" to 30
data.setValue(1, 1, 45); // Set "#2" to 45
data.setValue(2, 1, 12); // Set "Third One" to 12
chart.draw(data, options);

Я всегда просто делаю объект данных глобальным, а затем я могу просто изменить значения, хотя я предполагаю, что вы можете заново сгенерировать объект данных полностью, каждый раз с помощью arrayToDataTable().

Другие вопросы по тегам