コンテンツにスキップ
JP

reearth.sketch

更新日

Re:Earth Visualizer には強力なスケッチ機能が搭載されており、ユーザーはカスタムのマーカー、ポリライン、ポリゴンなどをマップ上に直接動的に描画できます。この機能は、プラグイン API の reearth.sketch を通じてアクセスできます。

現在のスケッチツールを取得します。

reearth.sketch.tool: SketchType;

SketchType = | "marker" | "polyline" | "circle" | "rectangle" | "polygon" | "extrudedCircle" | "extrudedRectangle" | "extrudedPolygon"

現在のスケッチオプションを取得します。

reearth.sketch.options: SketchOptions;

type SketchOptions = {
color?: string;
appearance?: SketchAppearance;
dataOnly?: boolean;
disableShadow?: boolean;
rightClickToAbort?: boolean;
autoResetInteractionMode?: boolean;
};
  • color: スケッチジオメトリの基本色を指定します。
  • appearance: 描画完了後にスケッチジオメトリに適用されるスタイルを定義します。
  • dataOnly: true に設定すると、描画後にマップへ新しいレイヤが追加されません。デフォルト: false(注意: Re:Earth Visualizer エディター内ではこのオプションは true に設定されます)。
  • disableShadow: 描画されたジオメトリに影を表示するかどうかを設定します。デフォルト: false
  • rightClickToAbort: 右クリックで現在の描画を中止できるようにします。デフォルト: true(注意: Re:Earth Visualizer エディター内ではこのオプションは false に設定されます)。
  • autoResetInteractionMode: 描画完了後にビューアのインタラクションモードを自動的にデフォルトにリセットします。デフォルト: true

スケッチツールを特定のタイプに設定します。undefined を指定するとスケッチモードを終了します。

reearth.sketch.setTool: (type: SketchType | undefined) => void;

SketchType | undefined

なし(void)。このメソッドは値を返しません。

現在のスケッチオプションを上書きします。

reearth.sketch.overrideOptions: (options: SketchOptions) => void;

SketchOptions

なし(void)。このメソッドは値を返しません。

このイベントは、スケッチ描画が正常に完了したときにトリガーされます。

reearth.sketch.on("create", (prop: SketchEventProps) => void);

type SketchEventProps = {
layerId?: string;
featureId?: string;
feature?: SketchFeature;
};
  • layerId: スケッチレイヤの ID です。dataOnly オプションが有効な場合、このプロパティは利用できません。
  • featureId: スケッチフィーチャーの ID です。dataOnly オプションが有効な場合も利用できません。
  • feature: propertiesidtypepositionsextrudedHeight を含む GeoJSON オブジェクトです。
reearth.sketch.setTool("polygon");
reearth.sketch.on("create", (props) => {
console.log(`New sketch feature created:`, props);
});

このイベントは、スケッチツールが変更されたときにトリガーされます。

reearth.sketch.on("toolChange", (type: SketchType | undefined) => void);

SketchType | undefined

reearth.sketch.on("toolChange", (tool) => {
console.log(`Sketch tool changed:`, tool);
});
// イベントを確認するために非同期で以下を実行してください:
reearth.sketch.setTool("polygon");
reearth.sketch.setTool(undefined);