Class: MarkerClusterer

近接するマーカーをクラスターにまとめ、ズームインに応じて分割されるようにすることで、 マーカーが密集した地図を見やすく保ちます。

管理したいマーカーを(コンストラクターまたは addMarker で)追加すると、クラスタラーが それらの表示状態を引き継ぎます。クラスターに含まれるマーカーは数字付きの円の 背後に隠れ、十分にズームインすると個別に再表示されます。 クラスターをクリックするとズームインして展開します。

Remarks

クラスタリングは MapLibre 組み込みの GeoJSON クラスタリング (Supercluster)を利用しています。マーカーがクラスタラーの管理対象である間は、 setMap で自分で地図を変更しないでください。

Example

const clusterer = new geolonia.maps.MarkerClusterer({
  map,
  markers: [marker1, marker2, marker3],
});

clusterer.addMarker(marker4);

Extends

Constructors

Constructor

new MarkerClusterer(options?): MarkerClusterer

マーカークラスタラーを作成します。

Parameters

options?

MarkerClustererOptions

描画先の地図と、クラスタリングするマーカーの初期セットです。

Returns

MarkerClusterer

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


addMarker()

addMarker(marker): void

クラスタラーにマーカーを追加し、再クラスタリングします。

Parameters

marker

Marker

管理するマーカーです。

Returns

void


addMarkers()

addMarkers(markers): void

クラスタラーに複数のマーカーを追加し、再クラスタリングします。

Parameters

markers

Marker[]

管理するマーカーです。

Returns

void


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


clearMarkers()

clearMarkers(): void

クラスタラーからすべてのマーカーを削除し、空の状態にします。

Returns

void


get()

get(key): any

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

Parameters

key

string

プロパティ名。

Returns

any

Inherited from

MVCObject.get


getMap()

getMap(): Map | null

クラスタラーが追加されている地図を返します。取り外されている場合は null を返します。

Returns

Map | null


getMarkers()

getMarkers(): Marker[]

現在クラスタラーが管理しているマーカーのコピーを返します。

Returns

Marker[]


notify()

notify(key): void

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

Parameters

key

string

プロパティ名。

Returns

void

Inherited from

MVCObject.notify


removeMarker()

removeMarker(marker): void

クラスタラーからマーカーを削除し、再クラスタリングします。マーカーは地図上で 個別表示の状態に戻ります。

Parameters

marker

Marker

管理を終了するマーカーです。

Returns

void


removeMarkers()

removeMarkers(markers): void

クラスタラーから複数のマーカーを削除し、再クラスタリングします。

Parameters

markers

Marker[]

管理を終了するマーカーです。

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 を渡すと取り外します。取り外すと、 すべての管理対象のマーカーが個別表示の状態に戻ります。

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