サンプルデータの準備
-
データはおでかけマップさんのデータをお借りしました
-
A列を駅名,B列を緯度、C列を経度とします
Google Action Script
- スプレッドシートのツール -> スクリプトエディタを選択します
以下のコードをコピペ
function getData(sheetName) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
var rows = sheet.getDataRange().getValues();
return rows.map(function(row) {
var obj = {};
obj.type = "Feature"
obj.properties = {};
obj.properties.name = row[0]; //A列
obj.geometry = {};
obj.geometry.type = "Point";
obj.geometry.coordinates = [];
obj.geometry.coordinates.push(row[2],row[1]);//C列,B列
return obj;
});
}
function doGet(e) {
var data = getData('Sheet1');
var geojson = {};
geojson.type = "FeatureCollection";
geojson.features = data;
var callback = e.parameter.callback;
if (callback) {
return ContentService
.createTextOutput(callback+'('+JSON.stringify(geojson, null, 2)+')')
.setMimeType(ContentService.MimeType.JAVASCRIPT);
} else {
return ContentService
.createTextOutput(JSON.stringify(geojson, null, 2))
.setMimeType(ContentService.MimeType.JSON);
}
}
APIとして公開する
- 公開 -> ウェブアプリケーションとして導入
- アプリケーションにアクセスできるユーザを「全員(匿名ユーザを含む)」
- 以下のようなURLが発行されます
https://script.google.com/macros/s/XXXXX/exec
APIを叩いてみる
- curl
% curl -sL https://script.google.com/macros/s/XXXXX/exec|head -n 30
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "大崎"
},
"geometry": {
"type": "Point",
"coordinates": [
139.728553,
35.6197
]
}
},
{
"type": "Feature",
"properties": {
"name": "五反田"
},
"geometry": {
"type": "Point",
"coordinates": [
139.723444,
35.626446
]
}
},
{
- web browser
- 以上で公開完了です