2013-10-06 5 views
1

Мой источник данных для карты на основе mapbox.js размещен в электронной таблице на Google Диске. Фактически я использую Geo for Google Docs для экспорта мест в GeoJSON и Leaflet.markercluster для визуализации их на карте.Загрузить таблицу Google для визуализации с помощью листовки

Мне нужно загрузить регистры непосредственно с Google Диска, поэтому изменения будут немедленно отображены без экспорта данных. API-интерфейс mapbox.js имеет разные методы для полного заполнения, но ни один из них не работает для меня. Так что мой вопрос (А), который из них является предпочтительным и (В), как я могу сделать эту одну работу:

  1. markerLayer.loadURL() METHODE нагрузки и показывает данные GeoJSON, но я не могу понять, как непосредственно доступ к файлу Google Диска в формате GeoJSON без его экспорта в первую очередь.

  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 к Loading CSV into Markers точно также, например. Используя следующий код, я получаю TypeError: t - неопределенная ошибка в строке 5 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) { 
         })); 
        } 
    }); 
    

Спасибо за помощь.

ответ

2

Посмотрите на recline.js, библиотеку для создания приложений данных. Он имеет источник данных Google Docs, который позволяет считывать данные из таблицы с помощью API Google Docs JSON как это:

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

+0

это супер полезный инструмент. Спасибо, что указал мне в этом направлении. – geraldo

0

Вариант 2 вышеперечисленное вопрос на самом деле работает, если вы определяете обратный вызов как «?». Таким образом, один из способов использования метода jQuery getJSON с обратным вызовом выглядит так:

$.getJSON("https://spreadsheets.google.com/feeds/list/KEY/od6/public/basic?alt=json-in-script&callback=?", 
function(json) { 
    console.log(json); 
}); 
Смежные вопросы