Class: OverlayView

地図に紐付いたカスタムオーバーレイを構築するための基底クラス。

このクラスをサブクラス化して 3 つのライフサイクルメソッド onAdddrawonRemove をオーバーライドし、 setMap を呼び出して追加します。 getPanes で描画先のコンテナを取得し、 getProjection で要素を配置します。 draw は地図が移動するたびに再度呼ばれます。

Example

class LabelOverlay extends geolonia.maps.OverlayView {
  private el = document.createElement("div");

  onAdd() {
    this.getPanes()?.overlayLayer.appendChild(this.el);
  }
  draw() {
    const p = this.getProjection().fromLatLngToDivPixel({ lat: 35.68, lng: 139.76 });
    if (p) { this.el.style.transform = `translate(${p.x}px, ${p.y}px)`; }
  }
  onRemove() {
    this.el.remove();
  }
}

new LabelOverlay().setMap(map);

Extends

Constructors

Constructor

new OverlayView(): OverlayView

Returns

OverlayView

Inherited from

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


draw()

draw(): void

オーバーレイの要素を配置するためにオーバーライドします。 onAdd の後、および地図が移動するたびに呼ばれます。

Returns

void


get()

get(key): any

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

Parameters

key

string

プロパティ名。

Returns

any

Inherited from

MVCObject.get


getMap()

getMap(): Map | null

このオーバーレイが紐付いている地図を返します。紐付いていない場合は null を返します。

Returns

Map | null


getPanes()

getPanes(): MapPanes | null

オーバーレイの要素を追加する MapPanes を返します。オーバーレイが まだ地図に追加されていない場合は null を返します。

Returns

MapPanes | null


getProjection()

getProjection(): MapCanvasProjection

オーバーレイの要素を配置するための MapCanvasProjection を返します。 draw の中で利用すると最も便利です。

Returns

MapCanvasProjection


notify()

notify(key): void

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

Parameters

key

string

プロパティ名。

Returns

void

Inherited from

MVCObject.notify


onAdd()

onAdd(): void

オーバーレイの DOM 要素を作成し、ペインに追加するためにオーバーライドします。 オーバーレイが地図に追加され、地図の準備が整った後に一度だけ呼ばれます。

Returns

void


onRemove()

onRemove(): void

オーバーレイの要素を削除し、リソースを解放するためにオーバーライドします。 オーバーレイが地図から削除されたときに呼ばれます。

Returns

void


set()

set(key, value): void

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

Parameters

key

string

プロパティ名。

value

any

新しい値。

Returns

void

Inherited from

MVCObject.set


setMap()

setMap(map): void

オーバーレイを地図に追加します。null を渡すと削除します。追加すると onAdd、続いて draw が 実行されます。削除すると onRemove が実行されます。

Parameters

map

Map | null

オーバーレイを追加する地図。削除する場合は null

Returns

void


setValues()

setValues(values): void

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

Parameters

values

Record<string, any>

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

Returns

void

Inherited from

MVCObject.setValues


unbind()

unbind(key): void

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

Parameters

key

string

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

Returns

void

Inherited from

MVCObject.unbind


unbindAll()

unbindAll(): void

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

Returns

void

Inherited from

MVCObject.unbindAll