1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[GAS] Maps.ElevationSamplerで自他称日本一低い山の標高を調べてみた

Last updated at Posted at 2021-03-14

はじめに

以前にMaps関連のクラスを利用した小ネタを2つ紹介しましたが、ElevationSamplerというクラスが残っていました1 ので、自他称日本一低い山の標高を調べてみました。もちろん小ネタです。

目的

まず、何をもって山なのか、日本一低いの根拠は、などツッコミどころはありますが、Wikipediaこちらの記事を参考に5山をリストアップしました。

  1. 日和山 宮城県仙台市(3m)
  2. 天保山 大阪府大阪市(4.5m)※二等三角点のある山としては日本一低い
  3. 蘇鉄山 大阪府堺市(7m)※一等三角点のある山としては日本一低い
  4. 大潟富士 秋田県南秋田郡大潟村(0m)※周囲がマイナス標高
  5. 弁天山 徳島県徳島市(6.1m)※自然の山としては日本一低い

ElevationSamplerを使って上記5山の標高を取得します。

ロジック

標高を取得するためには、まず、地名や施設名から緯度と経度を取得する必要があります。直接標高を取得することができないため、一度Maps.Gecoderを経由して緯度経度リストを生成します。(念の為住所も取得しています)

const Sh     = SpreadsheetApp.getActiveSheet()
const Rng    = Sh.getRange('B2:D6') //サンプルのため既定値として設定
const Mts    = Rng.getValues()
const latlng = [] //緯度経度格納用配列

Mts.forEach((Mt, i) => {
  let res = Maps.newGeocoder().setLanguage('ja').geocode(Mt[0])
  latlng.push([res.results[0].geometry.location.lat, res.results[0].geometry.location.lng])
  Mts[i][2] = res.results[0].formatted_address
})

次に順次sampleLocation()にてレスポンス2 を受け取り、標高を取得します。

// JSONサンプル
{
  "results" : [
    {
      "elevation" : 1608.637939453125,
        "location" : {
          "lat" : 39.73915360,
          "lng" : -104.98470340
        },
      "resolution" : 4.771975994110107
    }
  ],
  "status" : "OK"
}
latlng.forEach((p, i) => {
  let res = Maps.newElevationSampler().sampleLocation(p[0], p[1])
  Mts[i][1] = res.results[0].elevation
})

Rng.setValues(Mts)

Mtsをスプレッドシートに上書きして終了です。

最後に

以下、動作デモになります。

demo.gif

サンプルのため、status="OK"が前提ですのでエラー処理はしていません。同様に地名も特定できるもの前提ですので、複数候補がある場合の処理は実装していません。

なお、取得結果は日和山 3m→2.2m、天保山 4.5m→3.8m、蘇鉄山 7m→7m、大潟富士 0m→-4.2m、弁天山 6.1m→1.8mとなり、事前に調査した公開データと異なります。多少の誤差はあるとしても、この辺りは何を基準にした公開データ、計測データなのかよくわかりませんね。おそらく純粋な標高データと大潟富士のような比高ということでしょうかね。この場で深堀りすることでもないので詳しい方がいらっしゃいましたらコメント頂けますと幸いです。

[参考]

  1. 執筆時点のMapsの主要4クラスGeocoderDirectionFinderStaticMapElevationSampler

  2. 詳細は公式ドキュメントを参照してください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?