Google Apps ScriptのElevationSamplerを使う

Google Apps ScriptのElevationSamplerを使ってみました。

本当は、書籍に載らないから書く予定だったのですが、
少しだけ載っています。

書籍の補足として、ElevationSamplerをお楽しみ下さい。

## 本日のコード.gs

```コード.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](https://developers.google.com/maps/documentation/elevation/?hl=ja#OutputFormats)を参考にします。ちなみに現時点では補完機能は全く効きませんので、
ドキュメントを見ながらコードを作成して下さい。

Mapsは今のところ、地図はStaticMapしか出力させることができませんが、
使い所はあると思いますのでお試し下さい。

## 出力結果

location[34.66658, 133.91865] = 9.969635009765625
![http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&markers=34.66658,133.91865](http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&markers=34.66658,133.91865 "本当はURLが出るだけです")
----------------
location[34.66658, 133.91865] = 9.969635009765625
location[35.68219000000001, 139.76613] = 3.42744779586792
![http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&path=enc:cyqrEq~jpXqjeEwaub@&markers=34.66658,133.91865%7C35.68219000000001,139.76613](http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&path=enc:cyqrEq~jpXqjeEwaub@&markers=34.66658,133.91865%7C35.68219000000001,139.76613 "本当はURLがでるだけです")
----------------
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
![http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&path=enc:cyqrEq~jpXqjeEwaub@&markers=34.66658,133.91865%7C34.94670410616423,135.3665710890838%7C35.20953298302271,136.8241115815162%7C35.45478431194117,138.2908005646604%7C35.68219000000001,139.76613](http://maps.google.com/maps/api/staticmap?sensor=false&size=512x512&path=enc:cyqrEq~jpXqjeEwaub@&markers=34.66658,133.91865%7C34.94670410616423,135.3665710890838%7C35.20953298302271,136.8241115815162%7C35.45478431194117,138.2908005646604%7C35.68219000000001,139.76613 "本当はURLがでるだけです")

## 結論
地図のおかげで記事の見た目が華やかになっていい感じです。