mahal_map 1.7.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +475 -126
- package/dist/index.d.mts +286 -31
- package/dist/index.d.ts +286 -31
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -7
- package/dist/index.mjs.map +1 -1
- package/dist/mahal_map.sdk.js +1 -1
- package/package.json +73 -73
package/dist/index.d.mts
CHANGED
|
@@ -19,21 +19,97 @@ interface IAdditionalParamType {
|
|
|
19
19
|
limit?: number;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Поверхность @grammaps/maps3d-web, описанная локально. Пакет в зависимости не ставится —
|
|
24
|
+
* он приходит снаружи, как и maplibre-gl, поэтому импортировать его типы нельзя. Здесь
|
|
25
|
+
* повторена публичная часть .d.ts версии 0.7.3; всё необязательное помечено `?`, чтобы
|
|
26
|
+
* более старая сборка на странице не ломала типы у потребителя.
|
|
27
|
+
*/
|
|
28
|
+
type Maps3DThemeName = "light" | "dark" | "navigator-light" | "navigator-dark" | "mobile-light" | "mobile-dark";
|
|
29
|
+
/** Идентификатор слоя в реестре: buildings, objects, traffic, terrain, indoor, closures, parking, fuel, charging. */
|
|
30
|
+
type Maps3DLayerId = string;
|
|
31
|
+
/** Уровень детализации зданий. */
|
|
32
|
+
type Maps3DBuildingDetail = "footprint" | "volume" | "roofs" | "facade";
|
|
33
|
+
/**
|
|
34
|
+
* Снимок состояния слоя. Три поля независимы: слой может быть включён клиентом (`wanted`),
|
|
35
|
+
* но не нарисован — рельеф в режиме auto ждёт обзорного зума, перекрытия ждут своего
|
|
36
|
+
* тайлсета, планы этажей — данных по зданию.
|
|
37
|
+
*/
|
|
38
|
+
interface IMaps3DLayerState {
|
|
39
|
+
id: Maps3DLayerId;
|
|
40
|
+
/** Чего хочет клиент: последний setLayer либо умолчание стиля. */
|
|
41
|
+
wanted: boolean;
|
|
42
|
+
/** Что позволяет стиль: объявлен ли слой и есть ли под него данные. */
|
|
43
|
+
available: boolean;
|
|
44
|
+
/** Что нарисовано прямо сейчас. Именно это поле показывает, включён слой на деле или нет. */
|
|
45
|
+
active: boolean;
|
|
46
|
+
/** Параметры слоя: у зданий — detail, у этажей — level, у рельефа — mode. */
|
|
47
|
+
params: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
interface IMaps3DSelectionStyle {
|
|
50
|
+
color?: string | number;
|
|
51
|
+
opacity?: number;
|
|
52
|
+
glow?: number;
|
|
53
|
+
durationMs?: number;
|
|
54
|
+
easing?: "ease-out" | "linear";
|
|
55
|
+
}
|
|
56
|
+
interface IMaps3DRoadHit {
|
|
57
|
+
name: string;
|
|
58
|
+
nameRu?: string;
|
|
59
|
+
class?: string;
|
|
60
|
+
ref?: string;
|
|
61
|
+
props: Record<string, unknown>;
|
|
62
|
+
distancePx: number;
|
|
63
|
+
}
|
|
22
64
|
interface IMaps3DTrafficOptions {
|
|
23
65
|
raster?: boolean;
|
|
24
66
|
rasterMaxZoom?: number;
|
|
25
67
|
graph?: string;
|
|
68
|
+
tilesUrl?: string;
|
|
69
|
+
clicks?: boolean;
|
|
70
|
+
opacity?: number;
|
|
71
|
+
minZoom?: number;
|
|
72
|
+
refreshMs?: number;
|
|
73
|
+
arrows?: boolean;
|
|
74
|
+
maxTileZoom?: number;
|
|
75
|
+
}
|
|
76
|
+
interface IMaps3DIndoorOptions {
|
|
77
|
+
level?: number;
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
}
|
|
80
|
+
interface IMaps3DClosuresOptions {
|
|
81
|
+
[key: string]: unknown;
|
|
82
|
+
}
|
|
83
|
+
interface IMaps3DPlacesOptions {
|
|
84
|
+
highlight?: boolean;
|
|
85
|
+
paid?: boolean;
|
|
86
|
+
free?: boolean;
|
|
87
|
+
unknown?: boolean;
|
|
88
|
+
[key: string]: unknown;
|
|
89
|
+
}
|
|
90
|
+
interface IMaps3DBuildingsOptions {
|
|
91
|
+
detail?: Maps3DBuildingDetail;
|
|
92
|
+
[key: string]: unknown;
|
|
26
93
|
}
|
|
27
94
|
interface IMaps3DLayerOptions {
|
|
28
95
|
apiKey?: string | null;
|
|
29
96
|
base?: string;
|
|
30
|
-
|
|
97
|
+
/** Явный модуль maplibre-gl, если на странице несколько сборок. */
|
|
98
|
+
maplibre?: unknown;
|
|
99
|
+
endpoint?: string;
|
|
100
|
+
buildings?: boolean | IMaps3DBuildingsOptions;
|
|
31
101
|
traffic?: boolean | IMaps3DTrafficOptions;
|
|
102
|
+
indoor?: boolean | IMaps3DIndoorOptions;
|
|
103
|
+
closures?: boolean | IMaps3DClosuresOptions;
|
|
104
|
+
places?: IMaps3DPlacesOptions;
|
|
32
105
|
minZoom?: number;
|
|
33
106
|
lodBias?: number;
|
|
34
107
|
memoryBudget?: number;
|
|
35
108
|
maskReplaced?: boolean;
|
|
36
109
|
typeReplacements?: boolean;
|
|
110
|
+
modelsSource?: string;
|
|
111
|
+
modelsSourceLayer?: string;
|
|
112
|
+
modelsTilesUrl?: string;
|
|
37
113
|
}
|
|
38
114
|
interface IMaps3DBuildingsController {
|
|
39
115
|
setWindows?(enabled: boolean): void;
|
|
@@ -51,6 +127,7 @@ interface IMaps3DBuildingsController {
|
|
|
51
127
|
}
|
|
52
128
|
interface IMaps3DBuildingClickInfo {
|
|
53
129
|
id: string | number;
|
|
130
|
+
index?: number;
|
|
54
131
|
height?: number;
|
|
55
132
|
props?: Record<string, unknown>;
|
|
56
133
|
[key: string]: unknown;
|
|
@@ -61,36 +138,94 @@ interface IMaps3DObjectsLightOptions {
|
|
|
61
138
|
sky?: number;
|
|
62
139
|
exposure?: number;
|
|
63
140
|
}
|
|
141
|
+
interface IMaps3DDiagnostics {
|
|
142
|
+
terrainActive: boolean;
|
|
143
|
+
drapeRefreshes: number;
|
|
144
|
+
contextLost: boolean;
|
|
145
|
+
buildings: unknown;
|
|
146
|
+
}
|
|
64
147
|
interface IMaps3DLayer {
|
|
65
148
|
attach(map: Map): void | Promise<void>;
|
|
149
|
+
/** Есть у экземпляров из enhance(); у созданных конструктором готовность даёт сам attach(). */
|
|
150
|
+
readonly ready?: Promise<void>;
|
|
66
151
|
destroy?(): void;
|
|
67
152
|
remove?(): void;
|
|
153
|
+
setLayer?(id: Maps3DLayerId, on: boolean, params?: Record<string, unknown>): boolean;
|
|
154
|
+
layer?(id: Maps3DLayerId): IMaps3DLayerState | null;
|
|
155
|
+
layers?(): IMaps3DLayerState[];
|
|
156
|
+
onLayers?(callback: (state: IMaps3DLayerState) => void): () => void;
|
|
157
|
+
refreshLayers?(): void;
|
|
68
158
|
buildings?: IMaps3DBuildingsController | null;
|
|
69
159
|
setBuildingsEnabled?(enabled: boolean): void;
|
|
70
160
|
onBuildingClick?(callback: (info: IMaps3DBuildingClickInfo | null) => void): void;
|
|
161
|
+
selectBuilding?(id: number | string | null, style?: IMaps3DSelectionStyle): boolean;
|
|
162
|
+
clearSelection?(): void;
|
|
163
|
+
selectedBuilding?(): number | string | null;
|
|
164
|
+
setSelectionStyle?(style: IMaps3DSelectionStyle): void;
|
|
165
|
+
onRoadClick?(callback: (hit: IMaps3DRoadHit | null) => void): void;
|
|
166
|
+
roadAt?(point: {
|
|
167
|
+
x: number;
|
|
168
|
+
y: number;
|
|
169
|
+
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
170
|
+
readonly roadsNamed?: boolean;
|
|
71
171
|
traffic?: boolean;
|
|
72
172
|
trafficRaster?: boolean;
|
|
73
173
|
setTraffic?(enabled: boolean): void;
|
|
74
174
|
setTrafficOpacity?(opacity: number): void;
|
|
75
175
|
setTrafficClicks?(enabled: boolean): void;
|
|
76
176
|
setTrafficRaster?(enabled: boolean): void;
|
|
177
|
+
setTrafficGraph?(graph: string): void;
|
|
77
178
|
refreshTraffic?(): void;
|
|
179
|
+
setIndoor?(enabled: boolean): void;
|
|
180
|
+
setIndoorLevel?(level: number): void;
|
|
181
|
+
readonly indoorLevels?: number[];
|
|
182
|
+
refreshIndoor?(): void;
|
|
183
|
+
showPlace?(lon: number, lat: number, level?: number | null, zoom?: number): void;
|
|
78
184
|
setObjectsLight?(options: IMaps3DObjectsLightOptions): void;
|
|
79
185
|
setMinZoom?(zoom: number): void;
|
|
80
186
|
refresh?(): Promise<void>;
|
|
81
187
|
clearCache?(): Promise<void>;
|
|
188
|
+
diagnostics?(): IMaps3DDiagnostics;
|
|
82
189
|
}
|
|
83
190
|
interface IMaps3DTransformRequestOptions {
|
|
84
|
-
base
|
|
191
|
+
base?: string;
|
|
85
192
|
apiKey?: string | null;
|
|
86
193
|
}
|
|
87
|
-
|
|
194
|
+
interface IMaps3DMapOptionsInput extends IMaps3DTransformRequestOptions {
|
|
195
|
+
/** Имя темы платформы либо полный URL своего стиля. */
|
|
196
|
+
style?: string;
|
|
197
|
+
antialias?: boolean;
|
|
198
|
+
}
|
|
199
|
+
interface IMaps3DMapOptionsResult {
|
|
200
|
+
style: string;
|
|
201
|
+
transformRequest: (url: string) => {
|
|
202
|
+
url: string;
|
|
203
|
+
};
|
|
204
|
+
canvasContextAttributes?: {
|
|
205
|
+
antialias: boolean;
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
type Maps3DTransformRequest = (options: IMaps3DTransformRequestOptions) => (url: string) => {
|
|
209
|
+
url: string;
|
|
210
|
+
};
|
|
88
211
|
type Maps3DCtor = (new (options: IMaps3DLayerOptions) => IMaps3DLayer) & {
|
|
89
212
|
transformRequest: Maps3DTransformRequest;
|
|
213
|
+
/** Стиль + transformRequest + antialias одним объектом. Появился в 0.5.0. */
|
|
214
|
+
mapOptions?(options: IMaps3DMapOptionsInput): IMaps3DMapOptionsResult;
|
|
215
|
+
/** Адрес стиля по имени темы. Неизвестное имя — явная ошибка, а не тихий 404. */
|
|
216
|
+
styleUrl?(style?: string, base?: string): string;
|
|
217
|
+
/** Подключение к уже созданной карте; возвращает экземпляр с `ready`. */
|
|
218
|
+
enhance?(map: Map, options?: IMaps3DLayerOptions): IMaps3DLayer;
|
|
219
|
+
/** MapLibre с платформы вместе со своим воркером. */
|
|
220
|
+
maplibre?(options?: {
|
|
221
|
+
base?: string;
|
|
222
|
+
}): Promise<unknown>;
|
|
223
|
+
readonly maplibreVersion?: string;
|
|
90
224
|
};
|
|
91
225
|
|
|
92
226
|
interface IMahalMapOptions {
|
|
93
227
|
container?: string | HTMLElement;
|
|
228
|
+
/** Полный URL своего стиля. Задан — SDK его не меняет, setStyle() становится no-op. */
|
|
94
229
|
style?: string;
|
|
95
230
|
theme?: Theme;
|
|
96
231
|
lang?: MapLanguage;
|
|
@@ -98,20 +233,43 @@ interface IMahalMapOptions {
|
|
|
98
233
|
zoom?: number;
|
|
99
234
|
pitch?: number;
|
|
100
235
|
bearing?: number;
|
|
101
|
-
|
|
102
|
-
/** "legacy" (default) — старый движок (mtile.gram.tj). "3d" — новый GramMaps движок (route.gram.tj) с поддержкой Maps3D. */
|
|
103
|
-
engine?: MapEngine;
|
|
104
|
-
/** Включает Maps3D слой (детальные 3D-здания). Работает только при engine: "3d". */
|
|
236
|
+
/** Подключает Maps3D (объём, объекты, пробки, рельеф, планы этажей). По умолчанию `true`. */
|
|
105
237
|
enable3D?: boolean;
|
|
106
|
-
/** Домен платформы
|
|
238
|
+
/** Домен платформы MahalMaps. По умолчанию https://navi.gram.tj */
|
|
107
239
|
base?: string;
|
|
108
|
-
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
240
|
+
/**
|
|
241
|
+
* Семейство стилей платформы. `theme` выбирает внутри него светлую/тёмную:
|
|
242
|
+
* "default" → light/dark, "navigator" → navigator-light/navigator-dark,
|
|
243
|
+
* "mobile" → mobile-light/mobile-dark.
|
|
244
|
+
*/
|
|
245
|
+
family?: MapStyleFamily;
|
|
246
|
+
/**
|
|
247
|
+
* Явное имя темы платформы вместо пары `family` + `theme` (или полный URL стиля).
|
|
248
|
+
* Задано — стиль считается зафиксированным и setStyle() его не меняет.
|
|
249
|
+
*/
|
|
250
|
+
preset?: Maps3DThemeName | string;
|
|
251
|
+
/**
|
|
252
|
+
* Сглаживание сцены. Без него тонкая геометрия 3D-объектов (перила, мачты, ряды сидений)
|
|
253
|
+
* на отдалении рассыпается в рябь. По умолчанию `true` при включённом 3D.
|
|
254
|
+
*/
|
|
255
|
+
antialias?: boolean;
|
|
256
|
+
/** Опции Maps3D: buildings, traffic, indoor, closures, terrain, minZoom, lodBias, memoryBudget, ... */
|
|
257
|
+
maps3d?: Omit<IMaps3DLayerOptions, "apiKey" | "base">;
|
|
258
|
+
/**
|
|
259
|
+
* @deprecated Игнорируется с 2.0.0. Движок один — платформа MahalMaps через
|
|
260
|
+
* @grammaps/maps3d-web. Без переданного Maps3D карта поднимается на запасном стиле.
|
|
261
|
+
*/
|
|
262
|
+
engine?: MapEngine;
|
|
263
|
+
/**
|
|
264
|
+
* @deprecated Игнорируется с 2.0.0. Запасной векторный стиль применяется сам,
|
|
265
|
+
* когда Maps3D не передан.
|
|
266
|
+
*/
|
|
267
|
+
autoAddVectorSource?: boolean;
|
|
112
268
|
}
|
|
113
269
|
type Theme = "dark" | "light";
|
|
270
|
+
type MapStyleFamily = "default" | "navigator" | "mobile";
|
|
114
271
|
type MapLanguage = "tj" | "ru";
|
|
272
|
+
/** @deprecated Оставлен, чтобы не ломать компиляцию у потребителей. Значение не используется. */
|
|
115
273
|
type MapEngine = "legacy" | "3d";
|
|
116
274
|
|
|
117
275
|
interface MahalMapDefaultMarkerProps {
|
|
@@ -202,6 +360,13 @@ interface ISearchResponse {
|
|
|
202
360
|
number: string;
|
|
203
361
|
} | [];
|
|
204
362
|
}
|
|
363
|
+
interface ICheckJSApiParam {
|
|
364
|
+
token: string;
|
|
365
|
+
}
|
|
366
|
+
interface ICheckJSApiResponse {
|
|
367
|
+
success: boolean;
|
|
368
|
+
message: string;
|
|
369
|
+
}
|
|
205
370
|
|
|
206
371
|
interface IResponse<T> {
|
|
207
372
|
success: boolean;
|
|
@@ -228,9 +393,8 @@ declare class MahalMap {
|
|
|
228
393
|
private options;
|
|
229
394
|
private language;
|
|
230
395
|
private instanceKey;
|
|
231
|
-
private engine;
|
|
232
396
|
private gramBase;
|
|
233
|
-
private
|
|
397
|
+
private styleFamily;
|
|
234
398
|
private presetIsExplicit;
|
|
235
399
|
private maps3dCtor?;
|
|
236
400
|
private maps3dLayer?;
|
|
@@ -240,10 +404,43 @@ declare class MahalMap {
|
|
|
240
404
|
private static getInstanceKey;
|
|
241
405
|
private static normalizeLanguage;
|
|
242
406
|
static setDefaultLanguage(lang?: string | null): void;
|
|
243
|
-
|
|
244
|
-
|
|
407
|
+
/**
|
|
408
|
+
* Запасной стиль: Maps3D не передан — стилей платформы взять неоткуда, поднимаем карту
|
|
409
|
+
* на старом векторном стиле mtile.gram.tj с подписью ?token=. 3D при этом не работает.
|
|
410
|
+
*/
|
|
411
|
+
private static getFallbackStyle;
|
|
245
412
|
private static getMapToken;
|
|
246
413
|
private static getMaps3DCtor;
|
|
414
|
+
/**
|
|
415
|
+
* Проверяет подписку JSApi перед созданием карты. Нужна только на запасном стиле
|
|
416
|
+
* (mtile.gram.tj, когда Maps3D не передан): у платформы MahalMaps доступ контролирует
|
|
417
|
+
* она сама по ?key=, отдельная проверка там не применяется и пропускается.
|
|
418
|
+
*
|
|
419
|
+
* Fail-open: блокирует создание карты только при явном ответе сервиса success:false.
|
|
420
|
+
* Сетевая ошибка (сервис недоступен, CORS, таймаут) карту не роняет — иначе падение
|
|
421
|
+
* geocode.mahal.tj гасит карты у всех клиентов.
|
|
422
|
+
*/
|
|
423
|
+
private static ensureJSApiSubscription;
|
|
424
|
+
/**
|
|
425
|
+
* Асинхронный аналог create(): на запасном стиле (Maps3D не передан) сначала дожидается
|
|
426
|
+
* проверки подписки JSApi и, если её нет, не создаёт карту вообще (MapLibre-инстанс не
|
|
427
|
+
* строится). С Maps3D — тот же create() без проверки.
|
|
428
|
+
*/
|
|
429
|
+
static createAsync(options: IMahalMapOptions, maplibreObject?: MapLibreApi, maps3dCtor?: Maps3DCtor): Promise<MahalMap>;
|
|
430
|
+
/**
|
|
431
|
+
* Имя темы платформы или полный URL стиля. Явный `style`/`preset` побеждает пару
|
|
432
|
+
* `family` + `theme`: оба считаются фиксацией стиля, и setStyle() их не трогает.
|
|
433
|
+
*/
|
|
434
|
+
private static resolveStyleName;
|
|
435
|
+
/**
|
|
436
|
+
* Стиль + transformRequest + antialias от самого SDK. mapOptions() — документированная
|
|
437
|
+
* дверь (есть с 0.5.0); у сборок постарше собираем то же из styleUrl/transformRequest.
|
|
438
|
+
*
|
|
439
|
+
* Неизвестное имя темы SDK считает явной ошибкой (а не тихим 404) — переупаковываем её,
|
|
440
|
+
* чтобы в консоли было видно, что имя пришло из опций MahalMap.
|
|
441
|
+
*/
|
|
442
|
+
private static buildPlatformMapOptions;
|
|
443
|
+
private static requireAbsoluteStyle;
|
|
247
444
|
static create(options: IMahalMapOptions, maplibreObject?: MapLibreApi, maps3dCtor?: Maps3DCtor): MahalMap;
|
|
248
445
|
static onReady(container: string, callback: (map: Map) => void): void;
|
|
249
446
|
static getInstance(container: string): MahalMap;
|
|
@@ -256,6 +453,21 @@ declare class MahalMap {
|
|
|
256
453
|
static getMaps3DLayer(instance: MahalMap): IMaps3DLayer | undefined;
|
|
257
454
|
static whenMaps3DReady(instance: MahalMap): Promise<IMaps3DLayer | undefined>;
|
|
258
455
|
static toggle3DBuildings(instance: MahalMap, enabled: boolean): void;
|
|
456
|
+
static setLayer(instance: MahalMap, id: Maps3DLayerId, on: boolean, params?: Record<string, unknown>): boolean;
|
|
457
|
+
static getLayerState(instance: MahalMap, id: Maps3DLayerId): IMaps3DLayerState | null;
|
|
458
|
+
static getLayers(instance: MahalMap): IMaps3DLayerState[];
|
|
459
|
+
static onLayers(instance: MahalMap, callback: (state: IMaps3DLayerState) => void): () => void;
|
|
460
|
+
static refreshLayers(instance: MahalMap): void;
|
|
461
|
+
static onBuildingClick(instance: MahalMap, callback: (info: IMaps3DBuildingClickInfo | null) => void): void;
|
|
462
|
+
static selectBuilding(instance: MahalMap, id: number | string | null, style?: IMaps3DSelectionStyle): boolean;
|
|
463
|
+
static clearSelection(instance: MahalMap): void;
|
|
464
|
+
static selectedBuilding(instance: MahalMap): string | number | null;
|
|
465
|
+
static setSelectionStyle(instance: MahalMap, style: IMaps3DSelectionStyle): void;
|
|
466
|
+
static onRoadClick(instance: MahalMap, callback: (hit: IMaps3DRoadHit | null) => void): void;
|
|
467
|
+
static roadAt(instance: MahalMap, point: {
|
|
468
|
+
x: number;
|
|
469
|
+
y: number;
|
|
470
|
+
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
259
471
|
static setLanguage(instance: MahalMap, lang: MapLanguage): void;
|
|
260
472
|
static setCenter(instance: MahalMap, center: [number, number]): void;
|
|
261
473
|
static setZoom(instance: MahalMap, zoom: number): void;
|
|
@@ -264,17 +476,61 @@ declare class MahalMap {
|
|
|
264
476
|
init(map: Map): void;
|
|
265
477
|
getCamera(): CameraController;
|
|
266
478
|
getMap(): Map;
|
|
479
|
+
/**
|
|
480
|
+
* Светлая/тёмная внутри выбранного семейства (`family`). Стиль, зафиксированный явным
|
|
481
|
+
* `style`/`preset`, не трогаем: его содержимое знает только тот, кто его задал.
|
|
482
|
+
* Без Maps3D менять нечего — карта на запасном стиле, у него варианта по теме нет.
|
|
483
|
+
*/
|
|
267
484
|
setStyle(theme: Theme): void;
|
|
485
|
+
private refreshLayersOnStyleLoad;
|
|
486
|
+
/**
|
|
487
|
+
* Язык подписей приходит из стиля платформы, отдельных URL по языкам больше нет —
|
|
488
|
+
* метод только запоминает выбор для остальных сервисов SDK (поиск, роутинг).
|
|
489
|
+
*/
|
|
268
490
|
setLanguage(lang: MapLanguage): void;
|
|
269
491
|
getMaps3DLayer(): IMaps3DLayer | undefined;
|
|
270
|
-
/**
|
|
492
|
+
/**
|
|
493
|
+
* Вкл/выкл объёмные здания. Штатные здания стиля прячет и возвращает сам Maps3D —
|
|
494
|
+
* руками их видимость мы больше не трогаем, иначе две стороны спорят за один слой.
|
|
495
|
+
*/
|
|
271
496
|
toggle3DBuildings(enabled: boolean): void;
|
|
272
497
|
/**
|
|
273
|
-
* Промис готовности слоя Maps3D
|
|
274
|
-
*
|
|
275
|
-
* Резолвится в undefined, если
|
|
498
|
+
* Промис готовности слоя Maps3D. У экземпляров из enhance() это его собственный `ready`,
|
|
499
|
+
* у созданных конструктором — завершение attach(). До него layer.buildings ещё нет.
|
|
500
|
+
* Резолвится в undefined, если слой выключен, Maps3D не передан или подключение упало.
|
|
276
501
|
*/
|
|
277
502
|
whenMaps3DReady(): Promise<IMaps3DLayer | undefined>;
|
|
503
|
+
/** Включить/выключить слой. `false` — такого слоя в подключённой сборке Maps3D нет. */
|
|
504
|
+
setLayer(id: Maps3DLayerId, on: boolean, params?: Record<string, unknown>): boolean;
|
|
505
|
+
/** Состояние слоя: wanted (воля клиента), available (позволяет стиль), active (нарисовано). */
|
|
506
|
+
getLayerState(id: Maps3DLayerId): IMaps3DLayerState | null;
|
|
507
|
+
/** Снимок всех слоёв — по нему приложение рисует свою панель. */
|
|
508
|
+
getLayers(): IMaps3DLayerState[];
|
|
509
|
+
/** Подписка на изменения слоёв. Возвращает отписку (no-op, если слоя нет). */
|
|
510
|
+
onLayers(callback: (state: IMaps3DLayerState) => void): () => void;
|
|
511
|
+
/** Пере-применить волю клиента ко всем слоям — после полной смены стиля. */
|
|
512
|
+
refreshLayers(): void;
|
|
513
|
+
/** Клик по зданию: { id, height, props } либо null. Повторный вызов заменяет обработчик. */
|
|
514
|
+
onBuildingClick(callback: (info: IMaps3DBuildingClickInfo | null) => void): void;
|
|
515
|
+
/** Выделить здание по osm_id. `false` — здания сейчас нет в загруженных данных. */
|
|
516
|
+
selectBuilding(id: number | string | null, style?: IMaps3DSelectionStyle): boolean;
|
|
517
|
+
clearSelection(): void;
|
|
518
|
+
selectedBuilding(): number | string | null;
|
|
519
|
+
setSelectionStyle(style: IMaps3DSelectionStyle): void;
|
|
520
|
+
/** Клик по дороге. Приходит независимо от клика по зданию — приоритет решает приложение. */
|
|
521
|
+
onRoadClick(callback: (hit: IMaps3DRoadHit | null) => void): void;
|
|
522
|
+
/** Дорога под точкой холста. Допуск по умолчанию — 12 px. */
|
|
523
|
+
roadAt(point: {
|
|
524
|
+
x: number;
|
|
525
|
+
y: number;
|
|
526
|
+
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
527
|
+
/** Есть ли в текущем стиле названия дорог. Нет — roadAt() всегда вернёт null. */
|
|
528
|
+
get roadsNamed(): boolean;
|
|
529
|
+
/**
|
|
530
|
+
* Создаёт слой Maps3D. `buildings` не форсируем в `true`: с 0.7.x видимостью объёма
|
|
531
|
+
* заведует реестр слоёв, а опции облика зданий приходят из options.maps3d как есть.
|
|
532
|
+
*/
|
|
533
|
+
private createMaps3DLayer;
|
|
278
534
|
private attachMaps3DLayer;
|
|
279
535
|
/**
|
|
280
536
|
* Освобождает слой Maps3D одним доступным методом (destroy(), иначе remove()) и ровно один
|
|
@@ -283,17 +539,12 @@ declare class MahalMap {
|
|
|
283
539
|
* вызов teardown попал бы на уже освобождённый объект.
|
|
284
540
|
*/
|
|
285
541
|
private static teardownMaps3DLayer;
|
|
286
|
-
private applyMaps3DBuildingMode;
|
|
287
542
|
/**
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
* Только для встроенных пресетов (buildGramStyleUrl) — при пользовательском `options.style`
|
|
293
|
-
* мы не знаем структуру стиля, гасить слои по имени/source-layer небезопасно (можно случайно
|
|
294
|
-
* погасить чужую fill-extrusion, никак не связанную со зданиями GramMaps).
|
|
543
|
+
* Приводит объём зданий к желаемому состоянию. Реестр слоёв (0.7.x) — основная дверь:
|
|
544
|
+
* он же прячет и возвращает штатные здания стиля. setBuildingsEnabled — путь для
|
|
545
|
+
* сборок Maps3D постарше, где реестра ещё нет.
|
|
295
546
|
*/
|
|
296
|
-
private
|
|
547
|
+
private applyMaps3DBuildingMode;
|
|
297
548
|
setCenter(center: [number, number]): void;
|
|
298
549
|
setZoom(zoom: number): void;
|
|
299
550
|
destroy(): void;
|
|
@@ -312,16 +563,20 @@ declare const getApiKey: () => string;
|
|
|
312
563
|
declare function Router(param: number[][], typeData: string, token: string): Promise<IRoute[]>;
|
|
313
564
|
|
|
314
565
|
declare function Search(param: string, token: string, additionalParam?: IAdditionalParamType): Promise<ISearchResponse[]>;
|
|
566
|
+
declare function SearchPoi(param: string, token: string, additionalParam?: IAdditionalParamType): Promise<ISearchResponse[]>;
|
|
315
567
|
declare function SearchByLocation(params: ISearchByLocationParam): Promise<ISearchResponse>;
|
|
568
|
+
declare function CheckJSApi(token: string): Promise<ICheckJSApiResponse>;
|
|
316
569
|
|
|
570
|
+
declare const index$2_CheckJSApi: typeof CheckJSApi;
|
|
317
571
|
declare const index$2_Router: typeof Router;
|
|
318
572
|
declare const index$2_Search: typeof Search;
|
|
319
573
|
declare const index$2_SearchByLocation: typeof SearchByLocation;
|
|
574
|
+
declare const index$2_SearchPoi: typeof SearchPoi;
|
|
320
575
|
declare const index$2_clearKey: typeof clearKey;
|
|
321
576
|
declare const index$2_getApiKey: typeof getApiKey;
|
|
322
577
|
declare const index$2_saveKey: typeof saveKey;
|
|
323
578
|
declare namespace index$2 {
|
|
324
|
-
export { index$2_Router as Router, index$2_Search as Search, index$2_SearchByLocation as SearchByLocation, index$2_clearKey as clearKey, index$2_getApiKey as getApiKey, index$2_saveKey as saveKey };
|
|
579
|
+
export { index$2_CheckJSApi as CheckJSApi, index$2_Router as Router, index$2_Search as Search, index$2_SearchByLocation as SearchByLocation, index$2_SearchPoi as SearchPoi, index$2_clearKey as clearKey, index$2_getApiKey as getApiKey, index$2_saveKey as saveKey };
|
|
325
580
|
}
|
|
326
581
|
|
|
327
582
|
declare class MahalMapDefaultMarker {
|
|
@@ -566,4 +821,4 @@ declare namespace index {
|
|
|
566
821
|
export { index_checkCoordinates as checkCoordinates, index_debounce as debounce, index_geojsonPolyline as geojsonPolyline, index_geometryPolyline as geometryPolyline, index_trimValue as trimValue };
|
|
567
822
|
}
|
|
568
823
|
|
|
569
|
-
export { type IAdditionalParamType, type IMahalMapOptions, type IMapMarker, type IMaps3DBuildingClickInfo, type IMaps3DBuildingsController, type IMaps3DLayer, type IMaps3DLayerOptions, type IMaps3DObjectsLightOptions, type IMaps3DTrafficOptions, type IResponse, type IRoute, type ISearchByLocationParam, type ISearchParam, type ISearchResponse, MahalMap, MahalMapDefaultMarker, type MahalMapDefaultMarkerProps, type MapEngine, type MapLanguage, type Maps3DCtor, type Maps3DTransformRequest, type MeasureIcons, type MeasureLabels, type MeasureMode, type MeasurePoint, type MeasureShape, type MeasureState, type MeasureStyleOptions, MeasureTool, type MeasureToolOptions, Router, Search, SearchByLocation, type Theme, index$2 as keyUtils, index$1 as measureUtils, index as utils };
|
|
824
|
+
export { CheckJSApi, type IAdditionalParamType, type ICheckJSApiParam, type ICheckJSApiResponse, type IMahalMapOptions, type IMapMarker, type IMaps3DBuildingClickInfo, type IMaps3DBuildingsController, type IMaps3DBuildingsOptions, type IMaps3DClosuresOptions, type IMaps3DDiagnostics, type IMaps3DIndoorOptions, type IMaps3DLayer, type IMaps3DLayerOptions, type IMaps3DLayerState, type IMaps3DMapOptionsInput, type IMaps3DMapOptionsResult, type IMaps3DObjectsLightOptions, type IMaps3DPlacesOptions, type IMaps3DRoadHit, type IMaps3DSelectionStyle, type IMaps3DTrafficOptions, type IMaps3DTransformRequestOptions, type IResponse, type IRoute, type ISearchByLocationParam, type ISearchParam, type ISearchResponse, MahalMap, MahalMapDefaultMarker, type MahalMapDefaultMarkerProps, type MapEngine, type MapLanguage, type MapStyleFamily, type Maps3DBuildingDetail, type Maps3DCtor, type Maps3DLayerId, type Maps3DThemeName, type Maps3DTransformRequest, type MeasureIcons, type MeasureLabels, type MeasureMode, type MeasurePoint, type MeasureShape, type MeasureState, type MeasureStyleOptions, MeasureTool, type MeasureToolOptions, Router, Search, SearchByLocation, SearchPoi, type Theme, index$2 as keyUtils, index$1 as measureUtils, index as utils };
|