我基于mapbox.js的地图数据源托管在 Google Drive 上的电子表格中。实际上,我使用Geo for Google Docs将位置导出到 GeoJSON 和Leaflet.markercluster以在地图上可视化它们。
我需要直接从 Google Drive 加载寄存器,这样更改将立即反映而无需导出数据。mapbox.js API 有不同的方法来完成这一点,但它们都不适合我。所以我的问题是(A)其中哪一个是首选,以及(B)我如何才能使这个工作:
markerLayer.loadURL()方法加载并显示 GeoJSON 数据,但我不知道如何直接访问 GeoJSON 格式的 Google Drive 文件而不先导出它。
我尝试使用jQuery getJSON方法,但回调不调用定义的函数:
$.getJSON("https://spreadsheets.google.com/feeds/list/KEY/od6/public/basic?alt=json-in-script&callback=loadMarkers");
markerLayer.setGeoJSON():我将电子表格发布为 CSV 并使用csv2geojson将其转换为 GeoJSON,类似于将CSV 加载到标记示例中。使用以下代码,我在 mapbox.js 的第 5 行得到一个TypeError: t is undefined 错误。
$.ajax({ url: 'https://docs.google.com/spreadsheet/pub?key=KEY&output=csv', success: function csvLoad(csv) { markerLayer.setGeoJSON(csv2geojson.csv2geojson(csv, function(err, data) { })); } });
谢谢您的帮助。