Google Apps ScriptのElevationSamplerを使ってみました。
本当は、書籍に載らないから書く予定だったのですが、
少しだけ載っています。
書籍の補足として、ElevationSamplerをお楽しみ下さい。
本日のコード.gs
function myFunction() {
var sampler = Maps.newElevationSampler();
var result;
var url;
// 高度データをリクエスト
var singlepolyline = Maps.encodePolyline([34.666579,133.91865]); // 岡山駅の位置
// var singlepolyline = Maps.encodePolyline([35.682189,139.766129]); // 東京駅の位置
result = sampler.sampleLocations(singlepolyline);
if(result.status == "OK") {
Logger.log("location[%s, %s] = %s"
, result.results[0].location.lat
, result.results[0].location.lng
, result.results[0].elevation);
url = Maps.newStaticMap()
.addMarker(result.results[0].location.lat, result.results[0].location.lng)
.getMapUrl();
Logger.log(url);
}
Logger.log("----------------");
// 岡山駅と東京駅の高度データをリクエスト
var polyline = Maps.encodePolyline([34.666579,133.91865,35.682189,139.766129]);
result = sampler.sampleLocations(polyline);
if(result.status == "OK") {
var staticmap = Maps.newStaticMap();
for(var i = 0; i < result.results.length; i++) {
var data = result.results[i];
Logger.log("location[%s, %s] = %s"
, data.location.lat
, data.location.lng
, data.elevation);
staticmap.addMarker(data.location.lat, data.location.lng);
}
url = staticmap.addPath(polyline).getMapUrl();
Logger.log(url);
}
Logger.log("----------------");
// 岡山駅と東京駅の間で3つの中継地点を設定
result = sampler.samplePath(polyline, 5);
if(result.status == "OK") {
var staticmap = Maps.newStaticMap();
for(var i = 0; i < result.results.length; i++) {
var data = result.results[i];
Logger.log("location[%s, %s] = %s"
, data.location.lat
, data.location.lng
, data.elevation);
staticmap.addMarker(data.location.lat, data.location.lng);
}
url = staticmap.addPath(polyline).getMapUrl();
Logger.log(url);
}
}
ちょっと説明
今回は岡山駅から東京駅までの高度データとStaticMapへのURLをログに出力させています。
特定の1地点の高度を取得する事もできますし、複数の地点の高度を取得する事もできます。
ただし、2点間の直線上の点しか高度が取得できないようなので、「どこかを経由して」というのを表現しようと思うと、Pathを2本にするなど工夫しなければいけなさそうです。
高度データを取得する時は、https://developers.google.com/maps/documentation/elevation/?hl=ja#OutputFormatsを参考にします。ちなみに現時点では補完機能は全く効きませんので、
ドキュメントを見ながらコードを作成して下さい。
Mapsは今のところ、地図はStaticMapしか出力させることができませんが、
使い所はあると思いますのでお試し下さい。
出力結果
location[34.66658, 133.91865] = 9.969635009765625
location[34.66658, 133.91865] = 9.969635009765625
location[35.68219000000001, 139.76613] = 3.42744779586792
location[34.66658, 133.91865] = 9.969635009765625
location[34.94670410616423, 135.3665710890838] = 195.5164031982422
location[35.20953298302271, 136.8241115815162] = 1.024440765380859
location[35.45478431194117, 138.2908005646604] = 1917.920776367188
location[35.68219000000001, 139.76613] = 3.42744779586792
結論
地図のおかげで記事の見た目が華やかになっていい感じです。