[GAS] Maps.ElevationSampler에서 자타칭 일본 제일 낮은 산의 고도를 조사해 보았다
소개
이전에 Maps 관련 클래스를 이용한 작은 재료를 2개 소개했습니다만,
ElevationSampler
라고 하는 클래스가 남아 있었습니다. 물론 작은 재료입니다.목적
우선, 무엇을 가지고 산일까, 일본 제일 낮은 근거는, 등 츳코미커녕은 있습니다만, 1 이나 Wikipedia 를 참고로 5 산을 리스트 업 했습니다.
히와야마 미야기현 센다이시 (3m)
텐포잔 오사카부 오사카시(4.5m) ※이등삼각점이 있는 산으로서는 일본 제일 낮다.
소 철산 오사카 부 사카이시 (7m) ※ 일등 삼각점이있는 산으로는 일본에서 가장 낮다.
오가타 후지 아키타 현 미나미 아키타 군 오가타 마을 (0m) ※ 주위가 마이너스 해발
벤텐산 도쿠시마현 도쿠시마시(6.1m) ※자연의 산으로서는 일본 제일 낮다.
ElevationSampler
로직
고도를 얻으려면 먼저 지명과 시설 이름에서 위도와 경도를 얻어야합니다. 직접 고도를 얻을 수 없기 때문에 일단
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()
에서 응답 이 기사을 받아 고도를 얻습니다.// 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
를 스프레드시트로 덮어쓰면 종료됩니다.마지막으로
이하, 동작 데모가 됩니다.
2
샘플 때문에,
status="OK"
가 전제이므로 에러 처리는 하고 있지 않습니다. 마찬가지로 지명도 특정할 수 있는 것 전제이므로, 복수 후보가 있는 경우의 처리는 구현하고 있지 않습니다.또한 취득 결과는 히와야마 3m → 2.2m, 텐포잔 4.5m → 3.8m, 소 철산 7m → 7m, 오가타 후지 0m → -4.2m, 벤텐산 6.1m → 1.8m, 사전 조사한 공개 데이터 다르다. 다소의 오차는 있다고 해도, 이 근처는 무엇을 기준으로 한 공개 데이터, 계측 데이터인지 잘 모르겠네요. 아마 순수한 고도 데이터와 오가타 후지와 같은 비고라는 것일까요. 이 자리에서 깊은 해자리도 아니기 때문에 자세한 쪽이 계시면 코멘트 받을 수 있으면 다행입니다.
[참고]
글쓰기 시점에서 Maps의 주요 4 클래스
Geocoder
, DirectionFinder
, StaticMap
, ElevationSampler
자세한 내용은 고도와 해발은 무엇을 나타냅니다? 아는 것이 방재에 - 날씨 뉴스을 참조하십시오. ↩
Reference
이 문제에 관하여([GAS] Maps.ElevationSampler에서 자타칭 일본 제일 낮은 산의 고도를 조사해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/STSHISHO/items/6d8f2e3345e5bf56f770텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)