Moon¶

Mapray JS では月の位置・明るさ・大きさを指定して描けます。月は円盤として描かれるだけでなく、夜の空・地表・建物・点群・水面を月光で照らします。満ち欠けは太陽との位置関係から自動で決まります。
関連クラス¶
| クラス | 取得先 | 内容 |
|---|---|---|
Moon |
viewer.moon |
月の方向・照度・視直径。空・地表・水面・月の円盤がこの値を読みます |
MoonVisualizer |
viewer.moonVisualizer |
月の円盤と円光の表示 |
MoonVisualizer は Viewer の生成時に、月の画像を指定して渡します。NASA の月画像 を Mapray のサイトで配信しています。
const viewer = new mapray.Viewer( "mapray-container", {
// ...
atmosphere: new mapray.Atmosphere(),
moon_visualizer: new mapray.MoonVisualizer( "https://resource.mapray.com/assets/images/moon.jpg" ),
} );
Moon のメソッド¶
| メソッド | 単位 | 動作 |
|---|---|---|
setMoonDirection( v ) |
GOCS の単位ベクトル | 月の方向。正規化はしないので、単位ベクトルを渡します。満ち欠けは太陽との位置関係から決まります |
setIlluminance( v ) |
太陽の照度に対する比 | 夜の月の照度。0 で月光なし。空の月光・地表・建物・点群・水面・月の円盤がすべてこの値を読みます |
setAngularDiameterDegree( v ) |
度 | 月の視直径。照度は変わらないので、大きくすると円盤は大きく暗くなります |
getMoonDirection( dst ) で現在の方向を取得できます。
| 照度 0 | 0.05 | 0.2 |
|---|---|---|
![]() |
![]() |
![]() |
月光は地表も照らします。下の図は夜の富士山を、月の照度だけを変えて撮ったものです。
| 照度 0 | 0.2 |
|---|---|
![]() |
![]() |
暗順応¶
物理的な満月の照度は太陽に比べてはるかに小さく、そのままでは暗すぎて見えません。標準値は、夜の暗さに目が慣れた状態 (暗順応) を表す値で、物理的な満月よりずっと明るく設定してあります。
setIlluminance で置くのは夜の値です。描画に使う照度は、カメラの位置から見た太陽の高さで自動的に変わります。
| 時間帯 | 描画に使う照度 |
|---|---|
| 夜 (太陽が十分に沈んでいる) | 設定した値 |
| 薄明 | 設定した値から昼の値へ滑らかに下がります |
| 昼 (太陽が地平線の上) | 物理的な満月と同じ照度 |
そのため、昼間に setIlluminance を変えても、月の円盤も月光もほとんど変わりません。昼の月は空の明るさの中に淡く見えます。

MoonVisualizer のメソッド¶
| メソッド | 動作 |
|---|---|
setVisibility( flag ) |
月の円盤を描くか。非表示にすると円光も消えます (値は保持されます) |
setGlowIntensity( v ) |
円光 (月のまわりの暈) の強さ。暗順応後の月の照度と大気のもやの量にも比例します |
| 標準の視直径 | 視直径 2° | 円光 2.5 |
|---|---|---|
![]() |
![]() |
![]() |
大気との関係¶
- 大気が有効なときは、月の円盤も大気の透過率で減光し、地平線近くで暗く赤くなります
- 大気が無いときは、地表・建物・点群を月光で照らしません (月光 0 として扱います)。月の円盤は描きます
- 大気の描画品質
minimalでは、地形・建物・点群は固定のライティングになるので、月光で照らされません。空の月光・月の円盤・水面には効きます
非推奨の API¶
| 非推奨のメソッド | 現在の動作 |
|---|---|
MoonVisualizer.setIntensity( v ) |
viewer.moon.setIlluminance() に、標準の月の照度の v 倍を書き込みます。円盤だけでなく空・地表・水面の月光も変わります |
MoonVisualizer.setRadius( v ) |
viewer.moon.setAngularDiameterDegree() に、標準の視直径の v 倍を書き込みます。大気があると、大きくするほど円盤は暗くなります |
Atmosphere.setMoonIlluminance( v ) |
viewer.moon.setIlluminance( v ) に書き込みます |
サンプルコード¶
夜の月を描く例です。太陽を地平線の下に置き、月を東の空に置いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | |
Info
このサンプルコードは、<YOUR_MAPRAY_ACCESS_TOKEN>を、あなたのMapray CloudのアカウントのOrganization Tokenに置き換えるまで、期待通りに動作しません。
その他のメソッドや詳細、各メソッドの範囲と既定値は リファレンスマニュアル (Moon) と リファレンスマニュアル (MoonVisualizer) を参照してください。
月の画像の出典¶
Mapray のサイトで配信している月の画像の出典です。
NASA's Scientific Visualization Studio





