1

mapbox.jsに基づく地図のデータ ソースは、Google ドライブのスプレッドシートでホストされています。実際には、Geo for Google Docsを使用して場所を GeoJSON にエクスポートし、Leaflet.markerclusterを使用して地図上で視覚化しています。

データをエクスポートせずに変更がすぐに反映されるように、レジスタを Google ドライブから直接読み込む必要があります。mapbox.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を使用して、 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) {
            }));
        }
    });
    

助けてくれてありがとう。

4

2 に答える 2

0

上記の質問のオプション 2 は、コールバックを "?" として定義すると実際に機能します。したがって、コールバックで jQuery getJSON メソッドを使用する 1 つの方法は次のようになります。

$.getJSON("https://spreadsheets.google.com/feeds/list/KEY/od6/public/basic?alt=json-in-script&callback=?", 
function(json) {
    console.log(json);
});
于 2013-10-24T15:05:10.163 に答える