Class: Map

メインの地図クラスです。コンテナ要素にインタラクティブな地図を描画し、 カメラの制御や変更の監視を行うための命令的な API を提供します。

カメラの変更(setCentersetZoomfitBounds など)は、構築直後に呼び出しても 安全です。地図の読み込みが完了し次第、反映されます。変更を監視するには addListener で登録します。地図は center_changedzoom_changedbounds_changedidleclick のイベントを発火します。

Example

const map = new geolonia.maps.Map(document.getElementById("map"), {
  center: { lat: 35.6812, lng: 139.7671 },
  zoom: 14,
  style: "geolonia/basic-v2",
  apiKey: "YOUR-API-KEY",
});

map.addListener("click", (e) => {
  console.log("クリック位置:", e.latLng);
});

Extends

Constructors

Constructor

new Map(mapDiv, options?): Map

指定したコンテナ要素の中に地図を作成します。

Parameters

mapDiv

HTMLElement

地図を描画する要素です。HTMLElement である必要があり、 文字列の id を渡すと例外が発生します。

options?

MapOptions = {}

初期のカメラ位置、スタイル、API キーです。

Returns

Map

Overrides

MVCObject.constructor

Methods

addListener()

addListener(eventName, handler): MapsEventListener

指定した名前のイベントが発火するたびに実行されるハンドラを登録します。

Parameters

eventName

string

監視するイベント。"click""{property}_changed" イベントなどです。

handler

EventHandler

イベントが発火するたびに、そのイベントの引数とともに呼び出されます。

Returns

MapsEventListener

MapsEventListener ハンドル。登録を解除するには remove() を 呼び出します。

Inherited from

MVCObject.addListener


bindTo()

bindTo(key, target, targetKey, noNotify?): void

このオブジェクトの key プロパティを、別のオブジェクトの targetKey プロパティにバインドします。これにより、key を読み取ると常にターゲットの値が 反映され、ターゲットが変化するたびに {key}_changed イベントが発火します。

Parameters

key

string

このオブジェクト上のプロパティ名。

target

MVCObject

バインド先のオブジェクト。

targetKey

string

ターゲット上のプロパティ名。

noNotify?

boolean = false

true の場合、初回およびそれ以降の {key}_changed 通知を抑制します。

Returns

void

Inherited from

MVCObject.bindTo


fitBounds()

fitBounds(bounds, padding?): void

指定した領域が表示領域に収まるように、地図を移動・ズームします。

Parameters

bounds

LatLngBoundsLiteralOrLatLngBounds

表示する領域です。

padding?

number | Padding

矩形領域(地理的な範囲)の周囲に確保する余白(ピクセル単位)です。 すべての辺に適用される単一の値、または辺ごとに制御する Padding オブジェクトのいずれかを指定します。

Returns

void

Example

map.fitBounds(
  { north: 35.7, south: 35.6, east: 139.8, west: 139.7 },
  40,
);

get()

get(key): any

名前付きプロパティの値を返します。一度も設定されていない場合は undefined を返します。

Parameters

key

string

プロパティ名。

Returns

any

Inherited from

MVCObject.get


getBounds()

getBounds(): LatLngBounds | null

現在表示領域に表示されている領域の矩形領域(地理的な範囲)を返します。 まだ判定できない場合は null を返します。

Returns

LatLngBounds | null


getCenter()

getCenter(): LatLng | null

現在地図の中心に表示されている地理的な地点を返します。

Returns

LatLng | null


getHeading()

getHeading(): number

現在の方位角(北からの時計回りの度数)を返します。 0 は北向きです。

Returns

number


getProjection()

getProjection(): MapCanvasProjection | null

地理座標と画面上のピクセルとを相互に変換するための MapCanvasProjection を返します。地図の準備ができていない場合は null を返します。

Returns

MapCanvasProjection | null


getTilt()

getTilt(): number

現在のチルト角度(度単位)を返します。 0 は真上から見下ろす状態です。

Returns

number


getZoom()

getZoom(): number

現在のズームレベルを返します。

Returns

number


moveCamera()

moveCamera(options): void

指定したカメラ設定を一括で即座に適用します。指定されたプロパティだけが 反映され、省略されたものは現在の値のまま保持されます。

内部的には MapLibre の jumpTo を用いた即時反映で、進行中のアニメーションが あれば中断されます。互換対象の地図 SDK の moveCamera に相当します。

Parameters

options

CameraOptions

適用するカメラのオプションです。

Returns

void

Example

map.moveCamera({
  center: { lat: 35.6812, lng: 139.7671 },
  zoom: 17,
  tilt: 60,
  heading: 90,
});

notify()

notify(key): void

プロパティの {key}_changed イベントを手動で発火し、そのすべてのリスナーに 通知します。値が set で再代入されるのではなく、その場で 変更された場合に役立ちます。

Parameters

key

string

プロパティ名。

Returns

void

Inherited from

MVCObject.notify


panTo()

panTo(latLng): void

地図の中心を指定した地点に移動します。新しい中心が現在の表示領域内にある場合は なめらかに移動し、そうでない場合は即座に移動します。

Parameters

latLng

LatLngLiteralOrLatLng

新しい中心です。

Returns

void

See

即座に移動する場合は Map.setCenter を参照してください。


set()

set(key, value): void

名前付きプロパティを設定し、その {key}_changed イベントを発火します。 bindTo でバインドされた値を置き換える場合は、 先にバインディングを削除します。

Parameters

key

string

プロパティ名。

value

any

新しい値。

Returns

void

Inherited from

MVCObject.set


setCenter()

setCenter(latLng): void

地図の中心を指定した地点に、アニメーションなしで即座に移動します。

Parameters

latLng

LatLngLiteralOrLatLng

新しい中心です。

Returns

void

See

アニメーション付きの移動については Map.panTo を参照してください。


setHeading()

setHeading(heading): void

地図の方位角(北からの時計回りの度数)を設定します。

内部的には MapLibre の bearing にマッピングされます。

Parameters

heading

number

新しい方位角(度単位)です。

Returns

void


setTilt()

setTilt(tilt): void

地図のチルト角度(度単位)を設定します。

Parameters

tilt

number

新しいチルト角度(度単位)です。

Returns

void

Remarks

現状は任意の値を受け付けます。互換対象の地図 SDK ではラスタタイルの場合 0 または 45 に制限されますが、この互換性は未実装です。


setValues()

setValues(values): void

複数の名前付きプロパティを一度に設定し、それぞれについて {key}_changed イベントを発火します。

Parameters

values

Record<string, any>

キーがプロパティ名であるオブジェクト。

Returns

void

Inherited from

MVCObject.setValues


setZoom()

setZoom(zoom): void

地図のズームレベルを設定します。数値が大きいほどより拡大します。

Parameters

zoom

number

新しいズームレベルです。

Returns

void


unbind()

unbind(key): void

key のバインディングを削除し、最後に同期された値を通常のプロパティとして 保持します。

Parameters

key

string

解放するバインド済みのプロパティ名。

Returns

void

Inherited from

MVCObject.unbind


unbindAll()

unbindAll(): void

このオブジェクト上のすべてのバインディングを削除します。

Returns

void

Inherited from

MVCObject.unbindAll