-
Notifications
You must be signed in to change notification settings - Fork 23
/
ProviderFactory.ts
61 lines (53 loc) · 2.52 KB
/
ProviderFactory.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { OJson } from "../util/json_type";
import { TileProvider } from "./TileProvider";
import { SpriteProvider } from "./SpriteProvider";
/**
* ベクトル地図スタイル用の [[TileProvider]] と [[SpriteProvider]] の
* インスタンスを生成するための抽象クラスである。
*
* @see [[StyleManager.constructor]]
*/
export abstract class ProviderFactory {
protected constructor()
{}
/**
* ベクトルタイルのデータソース情報に対応するプロバイダを生成する。
*
* `source_id` パラメータは
* [sources](https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/)
* オブジェクトのプロパティ名に対応する。
*
* `json_source` パラメータは
* [vector](https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#vector)
* オブジェクトの形式に従っている。
*
* `json_source.type` の値は常に `"vector"` であるが、その他のプロ
* パティはオプションである。
*
* 実装はこれらのパラメータの情報を参照し、適切な [[TileProvider]]
* インスタンスを返さなければならない。ただしそのようなプロバイダ
* を判断できない、または生成できないときは `null` を返してもよい。
*
* @param source_id - スタイルに記述されたソース ID
* @param json_source - スタイルに記述されたソース情報
*/
abstract createTileProvider( source_id: string,
json_source: OJson ): TileProvider | null;
/**
* スプライト指定に対応するプロバイダを生成する。
*
* `location` パラメータにはスタイルの
* [sprite](https://docs.mapbox.com/mapbox-gl-js/style-spec/root/#sprite)
* プロパティに記述された文字列が設定されて呼び出される。
*
* ただし、スタイルに `sprite` プロパティが存在しない場合、`location`
* パラメータが省略されて呼び出される。
*
* 実装は `location` を参照し、適切な [[SpriteProvider]] インスタンスを
* 返さなければならない。ただしそのようなプロバイダを判断できない、または
* 生成できないときは `null` を返してもよい。
*
* @param location - スタイルに記述されたスプライト指定
*/
abstract createSpriteProvider( location?: string ): SpriteProvider | null;
};