加载谷歌电子表格以使用传单进行可视化

Load Google Spreadsheet to visualize with leaflet

本文关键字:单进行 可视化 谷歌 电子表格 加载      更新时间:2023-09-26

我的基于mapbox的地图数据源.js托管在Google云端硬盘上的电子表格中。实际上,我使用Geo for Google Docs将位置导出到GeoJSON和Leaflet.markercluster,以在地图上可视化它们。

我需要直接从Google云端硬盘加载寄存器,因此更改将立即反映而无需导出数据。 地图框.js API 有不同的方法来完成这一点,但没有一个对我有用。所以我的问题是(A(他们中的哪一个是首选的,(B(我如何使这个工作:

  1. markerLayer.loadURL(( 方法加载并显示 GeoJSON 数据,但我无法弄清楚如何在不先导出的情况下直接访问 GeoJSON 格式的 Google 云端硬盘文件。

  2. 我尝试使用 jQuery getJSON 方法,但回调没有调用定义的函数:

    $.getJSON("https://spreadsheets.google.com/feeds/list/KEY/od6/public/basic?alt=json-in-script&callback=loadMarkers");
    
  3. markerLayer.setGeoJSON((:我将电子表格发布为CSV,并使用csv2geojson将其转换为GeoJSON,类似于将CSV加载到标记示例中。使用以下代码,我得到一个类型错误:t 是 mapbox.js 第 5 行的未定义错误。

    $.ajax({
        url: 'https://docs.google.com/spreadsheet/pub?key=KEY&output=csv',
        success: function csvLoad(csv) {
            markerLayer.setGeoJSON(csv2geojson.csv2geojson(csv, function(err, data) {
            }));
        }
    });
    

感谢您的帮助。

看看 recrank.js,一个用于构建数据应用程序的库。 它有一个Google Docs数据源,允许您使用Google Docs JSON API从电子表格中读取,如下所示:

recline.Backend.GDocs.fetch({
  url: 'https://docs.google.com/a/okfn.org/spreadsheet/ccc?key=0Aon3JiuouxLUdDlGV2lCakoydVh1U014cHRqcXpoWVE#gid=0'
})
  .done(function(result) {
  // structure of result is below
  console.log(result);
});

更多细节和示例,请访问 https://github.com/okfn/recline.backend.gdocs

如果将回调定义为"?",则上述问题的选项 2 实际上有效。因此,将jQuery getJSON方法与回调一起使用的一种方法是这样的:

$.getJSON("https://spreadsheets.google.com/feeds/list/KEY/od6/public/basic?alt=json-in-script&callback=?", 
function(json) {
    console.log(json);
});