Class: GeoloniaMap

MapLibre GL JS の Map を拡張し、Geolonia 固有の機能を追加した地図クラスです。

API キーによる認証、Geolonia のスタイルやタイルへの接続、PMTiles プロトコルの登録、 デフォルトマーカーや各種コントロール、SimpleStyle による GeoJSON 表示、 ジェスチャ操作、3D 表示などを、コンストラクタに渡す GeoloniaMapOptions だけで有効にできます。

コンストラクタには GeoloniaMapOptions オブジェクトを渡します。 ただし旧 embed API との後方互換のため、CSS セレクタ文字列や HTMLElement を直接渡すこともできます。その場合はコンテナ要素の data-* 属性が オプションとして読み込まれます。

同一のコンテナ要素に対して二重にインスタンスを生成しようとした場合は、 新たに生成せず、既存のインスタンスをそのまま返します(シングルトン)。

Map を継承しているため、addLayeraddSourceongetZoom など MapLibre GL JS の API はすべてそのまま利用できます。

Examples

const map = new GeoloniaMap({
  container: "#map",
  apiKey: "YOUR-API-KEY",
  style: "geolonia/basic-v2",
  center: [139.7671, 35.6812],
  zoom: 14,
});

map.on("load", () => {
  console.log("地図の読み込みが完了しました");
});

後方互換の書き方として、コンテナのセレクタ文字列だけを渡すこともできます。 この場合は data-* 属性から設定を読み込みます。

// <div id="map" data-zoom="14" data-center="139.7671, 35.6812"></div>
const map = new GeoloniaMap("#map");

Extends

Constructors

Constructor

new GeoloniaMap(arg): GeoloniaMap

地図を生成します。

apiKeystage が指定されていればキーリングに設定し、スタイル (既定は "geolonia/basic-v2")を実際の style.json の URL に解決してから MapLibre GL JS の Map を初期化します。あわせて Geolonia のロゴ、出典表示、 ナビゲーションなどのコントロールを追加し、読み込み完了後にはローディング表示の 除去、デフォルトマーカーの配置、ジェスチャ操作やスタイル拡張の適用を行います。

arg にコンテナを直接指定する後方互換の形式では、そのコンテナの data-* 属性から設定を読み込みます。指定したコンテナに既に地図が生成済みの場合は、 新規生成せず既存のインスタンスを返します。

Parameters

arg

string | HTMLElement | GeoloniaMapOptions

地図の設定です。GeoloniaMapOptions オブジェクトのほか、 後方互換としてコンテナを指す CSS セレクタ文字列や HTMLElement も指定できます。

Returns

GeoloniaMap

Throws

コンテナ要素が見つからない場合に Error を投げます。

Throws

Geolonia のスタイルを API キーなしで使おうとした場合に Error を投げます。

Throws

MapLibre GL JS の Map の初期化に失敗した場合、コンテナにエラー表示を 行ったうえで、その例外を再スローします。

Example

const map = new GeoloniaMap({
  container: "#map",
  apiKey: "YOUR-API-KEY",
  center: [139.7671, 35.6812],
  zoom: 14,
});

Overrides

maplibregl.Map.constructor

Methods

loadImage()

画像を読み込みます。

callback を渡した場合は後方互換のコールバック形式で結果を受け取り、戻り値は undefined になります。callback を省略した場合は Promise を返します。

Param

url

読み込む画像の URL です。

Param

callback

省略可能です。指定した場合はコールバック形式で結果を受け取ります。

Example

const map = new GeoloniaMap({ container: "#map", apiKey: "YOUR-API-KEY" });
map.on("load", async () => {
  const image = await map.loadImage("https://example.com/marker.png");
  map.addImage("custom-marker", image.data);
});

Call Signature

loadImage(url, callback): void

画像を読み込み、結果をコールバックで受け取ります(後方互換のコールバック形式)。

読み込みに成功すると callback(null, image, expiry)、失敗すると callback(error) の形で呼び出されます。

Parameters
url

string

読み込む画像の URL です。

callback

GetImageCallback

読み込み結果を受け取るコールバックです。

Returns

void

Overrides

maplibregl.Map.loadImage

Call Signature

loadImage(url): Promise<GetResourceResponse<HTMLImageElement | ImageBitmap>>

画像を読み込み、Promise で結果を受け取ります。

Parameters
url

string

読み込む画像の URL です。

Returns

Promise<GetResourceResponse<HTMLImageElement | ImageBitmap>>

読み込んだ画像を含むレスポンスに解決される Promise を返します。

Overrides

maplibregl.Map.loadImage


remove()

remove(): void

地図を破棄し、関連するリソースやイベントリスナーを解放します。

MapLibre GL JS の破棄処理に加えて、コンテナ要素に保持している地図インスタンスへの 参照(geoloniaMap)も削除します。これにより、同じコンテナで再度 GeoloniaMap を生成した際に、破棄済みのインスタンスが返されることを防ぎます。

Returns

void

Example

const map = new GeoloniaMap({ container: "#map", apiKey: "YOUR-API-KEY" });
// 不要になったら破棄します
map.remove();

Overrides

maplibregl.Map.remove


setStyle()

setStyle(style, options?): this

地図のスタイルを差し替えます。

style が文字列の場合は、Geolonia のスタイル論理名("geolonia/basic-v2" など)、style.json の URL、相対パスのいずれかとして解釈し、実際の URL に 解決してから適用します。解決の際の言語はブラウザ言語に従い、API キーは キーリングに設定済みの値を使います。StyleSpecification オブジェクトを 直接渡した場合はそのまま適用します。

Parameters

style

string | StyleSpecification

新しいスタイルです。スタイル論理名や URL などの文字列、または StyleSpecification オブジェクトを指定します。

options?

StyleSwapOptions & StyleOptions = {}

MapLibre GL JS に渡すスタイル差し替えオプションです。 既定は空のオブジェクトです。

Returns

this

メソッドチェーンのために自身を返します。

Throws

Geolonia のスタイルを API キーなしで使おうとした場合に Error を投げます。

Example

const map = new GeoloniaMap({ container: "#map", apiKey: "YOUR-API-KEY" });
map.setStyle("geolonia/gsi");

Overrides

maplibregl.Map.setStyle