Получение JSON от Google для Highmaps

Я довольно ржавый с JavaScript, поэтому я надеюсь, что кто-то может мне помочь. Я работаю с Highmaps и хотел бы связать карту с данными в электронной таблице Google. (Это карта округов США, которая будет регулярно обновляться, поэтому наличие всего этого в самом сценарии немного громоздко.)

Вот как сейчас выглядит мой код:

  <script type="text/javascript">
  var example = 'us-counties',
  theme = 'default';

  (function($) { // encapsulate jQuery
  $(function() {
          var data = [{
              "code": "us-al-001",
              "name": "Autauga County, AL",
              "value": 0
          },

          {
              "code": "us-pr-153",
              "name": "Yauco Municipio, PR",
              "value": 0
          }],
          countiesMap = Highcharts.geojson(Highcharts.maps['countries/us/us-all-all']),
          lines = Highcharts.geojson(Highcharts.maps['countries/us/us-all-all'], 'mapline'),
          options;

      // Add state acronym for tooltip
      Highcharts.each(countiesMap, function(mapPoint) {
          mapPoint.name = mapPoint.name + ' County, ' + mapPoint.properties['hc-key'].substr(3, 2);
      });

          series: [{
              name: 'County',
              mapData: countiesMap,
              data: data,
              joinBy: ['hc-key', 'code'],
              tooltip: {
                  enabled: true,
                  positioner: function () {
                    return { x: 0, y: 250 };
                    },
                  pointFormat: '{point.name}',
                  borders: 0.5
                },
              borderWidth: 0.5
          }, {
              type: 'mapline',
              name: 'State borders',
              data: [lines[0]],
              color: 'white'
          }, {
              type: 'mapline',
              name: 'Separator',
              data: [lines[1]],
              color: 'gray'
          }]
      };

      // Instanciate the map
      $('#container').highcharts('Map', options);
  });
  $(document).ready(function() {
      $("#view-menu").click(function(e) {
          $("#wrap").toggleClass("toggled");
      });
      $("#sidebar-close").click(function(e) {
          $("#wrap").removeClass("toggled");
      });
  });
 })(jQuery);
</script>

Конечно, поскольку существует более 3200 округов, я бы предпочел хранить эти данные в другом месте и вставлять их в строку var data = [], но я не знаю, как это сделать.

Любая помощь будет оценена по достоинству.


person Sergio Hernandez    schedule 28.06.2015    source источник


Ответы (1)


Хотя это не то, что я делал, похоже, что это должно быть относительно просто сделать (хотя, конечно, все не так просто, как кажется).

Существует API для Google Таблиц (https://developers.google.com/google-apps/spreadsheets/), и вы можете погуглить примеры того, как извлекать данные — этот выглядит ясно (https://developers.google.com/gdata/docs/json), хотя и указывает, что существуют более новые версии некоторых соответствующих API.

Если вы извлекаете данные JSON из таблицы Google, вам просто нужно поместить значения в элемент «значение» вашей переменной данных. Вы можете сделать все это в своей основной функции или сделать это отдельно и передать своей функции в качестве параметра.

person George    schedule 16.07.2015