mapbox.jsに基づく地図のデータ ソースは、Google ドライブのスプレッドシートでホストされています。実際には、Geo for Google Docsを使用して場所を GeoJSON にエクスポートし、Leaflet.markerclusterを使用して地図上で視覚化しています。
データをエクスポートせずに変更がすぐに反映されるように、レジスタを Google ドライブから直接読み込む必要があります。mapbox.js API にはこれを満たすためのさまざまな方法がありますが、どれも私にとってはうまくいきません。だから私の質問は、(A)どちらが好ましいか、(B)これをどのように機能させることができるかです:
markerLayer.loadURL()メソッドは GeoJSON データをロードして表示しますが、最初にエクスポートせずに GeoJSON 形式の Google ドライブ ファイルに直接アクセスする方法がわかりません。
jQuery getJSONメソッドを使用しようとしましたが、コールバックは定義された関数を呼び出しません:
$.getJSON("https://spreadsheets.google.com/feeds/list/KEY/od6/public/basic?alt=json-in-script&callback=loadMarkers");
markerLayer.setGeoJSON() : スプレッドシートを CSV として公開し、csv2geojsonを使用して、 CSV をマーカーに読み込む例と同様に GeoJSON に変換しました。次のコードを使用すると、TypeError: t is undefined error at line 5 of mapbox.js が発生します。
$.ajax({ url: 'https://docs.google.com/spreadsheet/pub?key=KEY&output=csv', success: function csvLoad(csv) { markerLayer.setGeoJSON(csv2geojson.csv2geojson(csv, function(err, data) { })); } });
助けてくれてありがとう。