reearth.viewer 名前空間は、ビューアと対話するための関数群を提供します。
property
Section titled “property”property は、グローブ・地形・シーン・タイル・空など、ビューアに関する各種プロパティを提供します。
reearth.viewer.property: ViewerProperty;型 ViewerProperty
現在、property は明示的に設定されたプロパティのみを返します。デフォルト値は含まれません。
viewport
Section titled “viewport”viewport は、マップ領域に関連するプロパティと、現在のビューポート(ページ)の URL クエリパラメータを提供するために設計されています。
reearth.viewer.viewport: Viewport;型
type Viewport = { width: number; height: number; isMobile: boolean; query: Record<string, string>;};- width: ビューポートの幅です。
- height: ビューポートの高さです。
- isMobile: ビューポートがモバイルデバイスかどうかを示す真偽値です。bowser のユーザーエージェント検出に基づき判定されます。
- query: 現在のページの URL クエリパラメータです。
env は、現在実行中の Re:Earth Visualizer の環境情報を提供します。
reearth.viewer.env: Env;型
type Env = { inEditor: boolean; isBuilt: boolean;};inEditor と isBuilt は、実行されているページやタブによって異なる値を持ちます。プラグインはこれらの値に基づいて動作を切り替えることができます。
| プロパティ | エディタ - マップ/ストーリー/ウィジェットタブ | エディタ - 公開タブ | 公開済みページ |
|---|---|---|---|
| inEditor | true | false | false |
| isBuilt | false | false | true |
interactionMode
Section titled “interactionMode”interactionMode は、Re:Earth Visualizer におけるビューアのインタラクションモードを管理するプロパティとメソッドの集合を提供します。
interactionMode.mode
Section titled “interactionMode.mode”ビューアの現在のインタラクションモードです。
reearth.viewer.interactionMode.mode: InteractionModeType型 InteractionModeType = "default" | "move" | "selection" | "sketch" | "spatialId"
default: デフォルトのインタラクションモードです。move: 移動インタラクションモードです。このモードでは選択が無効になります。selection: 選択インタラクションモードです。このモードでは移動が無効になります。sketch: スケッチインタラクションモードです。スケッチはこのモードでのみ有効にできます。spatialId: Spatial ID を扱うためのインタラクションモードです。Spatial ID の選択時に使用します。
interactionMode.override
Section titled “interactionMode.override”ビューアのインタラクションモードを上書きします。
reearth.viewer.interactionMode.override: ( mode: InteractionModeType) => void;型: InteractionModeType
設定するインタラクションモードです。
なし(void)。このメソッドは値を返しません。
overrideProperty
Section titled “overrideProperty”overrideProperty は、ビューアのプロパティを上書きするために使用します。
reearth.viewer.overrideProperty: (property: ViewerProperty) => void;property
Section titled “property”型 ViewerProperty
型 void
このメソッドは戻り値を持ちません。
// 地形を有効にするreearth.viewer.overrideProperty({ terrain: { enabled: true, },});capture
Section titled “capture”capture 関数は、現在のビューアの画像を生成します。
reearth.viewer.capture: ( type?: string, encoderOptions?: number) => string | undefined;型 string(省略可能)
画像フォーマットを示す文字列です。デフォルトのフォーマットは image/png であり、指定したフォーマットがサポートされていない場合もこのフォーマットが使用されます。
encoderOptions
Section titled “encoderOptions”型 number(省略可能)
image/jpeg や image/webp など非可逆圧縮をサポートするファイルフォーマットで画像を作成する際の画質を表す、0 から 1 の数値です。このオプションを指定しない場合、または値が許容範囲外の場合は、ユーザーエージェントのデフォルト品質値が使用されます。
型 string | undefined
リクエストされたデータ URL を含む文字列です。
// 現在のマップのキャプチャを取得します。// 返された画像文字列をウィジェット UI に送信してダウンロードをトリガーできます。console.log(reearth.viewer.capture("image/png"));open メソッドは、URL を新しいタブで開くために使用します。
reearth.viewer.open: (url: string) => void;型 string
新しいタブで開く URL です。
型 void
reload
Section titled “reload”reload メソッドは、現在の Visualizer ページを再読み込みします。
reearth.viewer.reload: () => void;型 void
tools モジュールは、グローブおよびシーン周辺のさまざまな計算を行うためのヘルパー関数のコレクションを提供します。
> getLocationFromScreenCoordinate
Section titled “> getLocationFromScreenCoordinate”スクリーン座標から地球上の位置を返します。
reearth.viewer.tools.getLocationFromScreenCoordinate: ( x: number, y: number, withTerrain?: boolean) => { lat: number; lng: number; height: number } | undefined;型 number
ビューア上の x ピクセル座標です。
型 number
ビューア上の y ピクセル座標です。
withTerrain
Section titled “withTerrain”型 boolean(省略可能)
地形の高さを考慮するかどうかを示す真偽値です。デフォルト値は false です。
型 { lat: number; lng: number; height: number } | undefined
地球上の位置です。
> getScreenCoordinateFromPosition
Section titled “> getScreenCoordinateFromPosition”地球上の位置からスクリーン座標を返します。
reearth.viewer.tools.getScreenCoordinateFromPosition: ( position: [x: number, y: number, z: number]) => [x: number, y: number] | undefined;position
Section titled “position”型 [x: number, y: number, z: number]
地球上の位置(デカルト座標)です。
型 [x: number, y: number] | undefined
ビューア上のピクセル座標です。
> getTerrainHeightAsync
Section titled “> getTerrainHeightAsync”指定した位置の地形の高さを返します。これは非同期関数です。
reearth.viewer.tools.getTerrainHeightAsync: ( lng: number, lat: number) => Promise<number | undefined>;型 number
位置の経度です。
型 number
位置の緯度です。
型 Promise<number | undefined>
指定した位置の地形の高さです。
> getGlobeHeight
Section titled “> getGlobeHeight”指定した位置の地表の高さを返します。
reearth.viewer.tools.getGlobeHeight: ( lng: number, lat: number) => number | undefined;型 number
位置の経度です。
型 number
位置の緯度です。
型 number | undefined
指定した位置の地表の高さです。
> getCurrentLocationAsync
Section titled “> getCurrentLocationAsync”ユーザーの現在位置を返します。これはブラウザの Geolocation API を使用する非同期関数です。
reearth.viewer.tools.getCurrentLocationAsync: ( options?: Options) => Promise<Location | undefined>;options
Section titled “options”型 Options(省略可能)
以下のパラメータを含むオプションオブジェクトです。
- maximumAge: キャッシュされた位置情報の最大有効期間(ミリ秒)です。デフォルト値は
0です。 - timeout: 位置情報の取得を待機する最大時間(ミリ秒)です。デフォルト値は
10,000msです。 - enableHighAccuracy: 高精度の位置情報をリクエストするかどうかです。デフォルト値は
falseです。
型 Promise<Location | undefined>
type Location = { lat: number; lng: number; height: number;};ユーザーの現在位置です。
> cartographicToCartesian
Section titled “> cartographicToCartesian”地理座標をデカルト座標に変換します。
reearth.viewer.tools.cartographicToCartesian: ( lng: number, lat: number, height: number, options?: { useGlobeEllipsoid?: boolean }) => [x: number, y: number, z: number] | undefined;型 number
位置の経度です。
型 number
位置の緯度です。
height
Section titled “height”型 number
位置の高さです。
options
Section titled “options”型 { useGlobeEllipsoid?: boolean }(省略可能)
- useGlobeEllipsoid: グローブの楕円体を使用するかどうかを示す真偽値です。デフォルト値は
falseです。
型 [x: number, y: number, z: number] | undefined
デカルト座標の位置です。
> cartesianToCartographic
Section titled “> cartesianToCartographic”デカルト座標を地理座標に変換します。
reearth.viewer.tools.cartesianToCartographic: ( x: number, y: number, z: number, options?: { useGlobeEllipsoid?: boolean }) => [lng: number, lat: number, height: number] | undefined;型 number
位置の x 座標です。
型 number
位置の y 座標です。
型 number
位置の z 座標です。
options
Section titled “options”型 { useGlobeEllipsoid?: boolean }(省略可能)
- useGlobeEllipsoid: グローブの楕円体を使用するかどうかを示す真偽値です。デフォルト値は
falseです。
型 [lng: number, lat: number, height: number] | undefined
地理座標の位置です。
> transformByOffsetOnScreen
Section titled “> transformByOffsetOnScreen”スクリーン上のオフセットによって位置を変換します。
reearth.viewer.tools.transformByOffsetOnScreen: ( rawPosition: [x: number, y: number, z: number], screenOffset: [x: number, y: number]) => [x: number, y: number, z: number] | undefined;rawPosition
Section titled “rawPosition”型 [x: number, y: number, z: number]
地球上の元の位置です。
screenOffset
Section titled “screenOffset”型 [x: number, y: number]
スクリーン上のオフセットです。
型 [x: number, y: number, z: number] | undefined
変換後の位置です。
> isPositionVisibleOnGlobe
Section titled “> isPositionVisibleOnGlobe”指定した位置がグローブ上で表示可能かどうかを確認します。
reearth.viewer.tools.isPositionVisibleOnGlobe: ( position: [x: number, y: number, z: number]) => boolean;position
Section titled “position”型 [x: number, y: number, z: number]
地球上の位置です。
型 boolean
指定した位置がグローブ上で表示可能かどうかを示す真偽値です。
resize
Section titled “resize”resize イベントは、ビューアがリサイズされたときにトリガーされます。
reearth.viewer.on("resize", ({width: number, height: number, isMobile:boolean}) => void);- width: ビューポートの幅です。
- height: ビューポートの高さです。
- isMobile: ビューポートがモバイルデバイスかどうかを示す真偽値です。bowser のユーザーエージェント検出に基づき判定されます。
reearth.viewer.on("resize", ({ width, height, isMobile }) => { console.log(`width: ${width}, height: ${height}, isMobile: ${isMobile}`);});マウスイベント
Section titled “マウスイベント”ビューアにはリッスン可能なマウスイベントのセットがあります。これらはすべて同じパラメータを持ちます。
サポートされているイベントは以下のとおりです。
- click
- doubleClick
- mouseDown
- mouseUp
- rightClick
- rightDown
- rightUp
- middleClick
- middleDown
- middleUp
- mouseMove
- mouseEnter
- mouseLeave
- wheel
reearth.viewer.on("click", (event: MouseEvent)=> void);event: MouseEvent
type MouseEvent = { x?: number; y?: number; lat?: number; lng?: number; height?: number; layerId?: string; delta?: number;};- x: ビューアを基準としたカーソルの x 座標です。
- y: ビューアを基準としたカーソルの y 座標です。
- lat: 地球上のカーソルの緯度です。
- lng: 地球上のカーソルの経度です。
- height: 地球上のカーソルの高さです。
- layerId: カーソルが乗っているオブジェクトのレイヤ ID です。
- delta: ホイールイベントのデルタ値です。
reearth.viewer.on("mouseMove", ({ lat, lng, height }) => { console.log(`lat: ${lat}, lng: ${lng}, height: ${height}`);});