mahal_map 1.6.17 → 1.6.18
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 +36 -6
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +1 -1
- package/dist/mahal_map.sdk.js +1 -1
- package/package.json +1 -1
- package/dist/image-DAQQshGm.png +0 -0
- package/dist/index.html +0 -85
package/README.md
CHANGED
|
@@ -149,11 +149,11 @@ interface IMahalMapOptions {
|
|
|
149
149
|
| `lang` | `"tj" \| "ru"` | Язык стандартного стиля. `tj` оставляет URL только с `token`, `ru` добавляет `lang=ru`. |
|
|
150
150
|
| `center` | `[number, number]` | Центр карты в формате `[lng, lat]`. |
|
|
151
151
|
| `zoom` | `number` | Начальный zoom. |
|
|
152
|
-
| `pitch` | `number` | Начальный наклон камеры (нужен для 3D-вида).
|
|
152
|
+
| `pitch` | `number` | Начальный наклон камеры (нужен для 3D-вида). Если не задан и `enable3D` включен — авто `58` (при `pitch: 0` экструзия зданий не видна, камера смотрит строго сверху). |
|
|
153
153
|
| `bearing` | `number` | Начальный поворот камеры. |
|
|
154
154
|
| `autoAddVectorSource` | `boolean` | Использует встроенный vector style и блокирует смену стандартного стиля через `setStyle`. |
|
|
155
155
|
| `engine` | `"legacy" \| "3d"` | Переключатель движка карты. `"legacy"` (по умолчанию) — старые стили mtile.gram.tj. `"3d"` — новая платформа GramMaps (navi.gram.tj) с пресетами стиля и Maps3D. |
|
|
156
|
-
| `enable3D` | `boolean` | Подключает детальные 3D-здания (Maps3D). Работает только при `engine: "3d"`.
|
|
156
|
+
| `enable3D` | `boolean` | Подключает детальные 3D-здания (Maps3D). Работает только при `engine: "3d"`. По умолчанию `true` для `engine: "3d"` — передайте `false`, чтобы отключить. |
|
|
157
157
|
| `base` | `string` | Домен платформы GramMaps для `engine: "3d"`. По умолчанию `https://navi.gram.tj`. |
|
|
158
158
|
| `preset` | `string` | Имя пресета стиля GramMaps (напр. `"standard-night"`) для `engine: "3d"`. По умолчанию `road-urban-lab-v2`/`standard-night` в зависимости от `theme`. |
|
|
159
159
|
| `maps3d` | `object` | Доп. опции Maps3D слоя: `traffic`, `minZoom`, `lodBias`, `memoryBudget`, `maskReplaced`, `typeReplacements`. |
|
|
@@ -214,19 +214,25 @@ MahalMap.getMaps3DLayer(map);
|
|
|
214
214
|
|
|
215
215
|
### 3D-здания
|
|
216
216
|
|
|
217
|
+
`Maps3D` рисует процедурные 3D-здания (three.js) вместо плоской `fill-extrusion` стиля: фаска кромок, вертикальный градиент и базовый цвет берутся из стиля, окна — из `metadata` пресета. При `engine: "3d"` слой создаётся и `attach`-ится к карте автоматически (`enable3D` по умолчанию `true`) — вручную поднимать `new Maps3D(...)` не нужно, только если требуется отдельный кастомный инстанс:
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
const layer = new Maps3D({ apiKey, base, buildings: true });
|
|
221
|
+
await layer.attach(map); // attach асинхронный, дожидается load карты сам
|
|
222
|
+
```
|
|
223
|
+
|
|
217
224
|
Тема (окна/свет) приходит из `metadata` пресета стиля и применяется автоматически при `map.setStyle()` — пересоздавать слой не нужно. Ручные сеттеры перебивают её:
|
|
218
225
|
|
|
219
226
|
```ts
|
|
220
227
|
const layer = map.getMaps3DLayer();
|
|
221
228
|
|
|
222
|
-
layer?.setBuildingsEnabled(false); // 3D-здания ⇄ штатные здания стиля
|
|
223
|
-
|
|
224
229
|
const b = layer?.buildings;
|
|
225
230
|
b?.setWindowStyle(7); // тип окна 0..9 (сетка, лента, curtain wall, ...)
|
|
226
|
-
b?.setWindowDepth(0.85);
|
|
231
|
+
b?.setWindowDepth(0.85); // глубина ниши окна 0..1 (реальная геометрия вблизи)
|
|
227
232
|
b?.setWindowColor("#6b9ed1");
|
|
228
233
|
b?.setWindowFrameColor("#f2f2f4");
|
|
229
|
-
b?.setEdgeRadius(1.2);
|
|
234
|
+
b?.setEdgeRadius(1.2); // скругление кромок, м
|
|
235
|
+
// Свет обычно НЕ задают руками — его несёт metadata стиля, сеттеры её перебивают
|
|
230
236
|
b?.setSunIntensity(3.2);
|
|
231
237
|
b?.setAmbient(0.76);
|
|
232
238
|
b?.setSky(0.91);
|
|
@@ -238,6 +244,26 @@ layer?.onBuildingClick((info) => {
|
|
|
238
244
|
});
|
|
239
245
|
```
|
|
240
246
|
|
|
247
|
+
#### Вкл/выкл 3D-здания на лету
|
|
248
|
+
|
|
249
|
+
Переключение 3D-здания ⇄ штатные здания стиля, без пересоздания карты:
|
|
250
|
+
|
|
251
|
+
```ts
|
|
252
|
+
layer?.setBuildingsEnabled(false); // напрямую через слой
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Либо через обёртку `MahalMap` — она же умеет пересоздать слой, если его не было (`enable3D: false` при создании):
|
|
256
|
+
|
|
257
|
+
```ts
|
|
258
|
+
const map = MahalMap.getInstance("map");
|
|
259
|
+
|
|
260
|
+
map.toggle3DBuildings(false); // выкл
|
|
261
|
+
map.toggle3DBuildings(true); // вкл обратно
|
|
262
|
+
|
|
263
|
+
// статик-версия и SDK-фасад (mahal_map/sdk) работают так же
|
|
264
|
+
MahalMap.toggle3DBuildings(map, false);
|
|
265
|
+
```
|
|
266
|
+
|
|
241
267
|
### Пробки
|
|
242
268
|
|
|
243
269
|
```ts
|
|
@@ -469,6 +495,8 @@ MahalMap.setLanguage(map, "ru");
|
|
|
469
495
|
MahalMap.setCenter(map, [69.624024, 40.279687]);
|
|
470
496
|
MahalMap.setZoom(map, 14);
|
|
471
497
|
MahalMap.addMarker(map, marker);
|
|
498
|
+
MahalMap.getMaps3DLayer(map);
|
|
499
|
+
MahalMap.toggle3DBuildings(map, false);
|
|
472
500
|
MahalMap.destroy(map);
|
|
473
501
|
```
|
|
474
502
|
|
|
@@ -506,6 +534,8 @@ MahalMap.setZoom(map, 14);
|
|
|
506
534
|
| `setCenter(instance, center)` | Меняет центр карты. |
|
|
507
535
|
| `setZoom(instance, zoom)` | Меняет zoom карты. |
|
|
508
536
|
| `addMarker(instance, marker)` | Добавляет маркер. |
|
|
537
|
+
| `getMaps3DLayer(instance)` | Возвращает инстанс слоя Maps3D (только `engine: "3d"`). |
|
|
538
|
+
| `toggle3DBuildings(instance, enabled)` | Вкл/выкл детальные 3D-здания на лету (только `engine: "3d"`). |
|
|
509
539
|
| `destroy(instance)` | Полностью удаляет карту. |
|
|
510
540
|
| `loadKeyFromScriptUrl()` | Читает `apikey` из URL SDK скрипта. |
|
|
511
541
|
| `loadLanguageFromScriptUrl()` | Читает `lang` из URL SDK скрипта. |
|
package/dist/index.d.mts
CHANGED
|
@@ -262,6 +262,12 @@ declare class MahalMap {
|
|
|
262
262
|
getMaps3DLayer(): IMaps3DLayer | undefined;
|
|
263
263
|
/** Вкл/выкл детальные 3D-здания (Maps3D). Работает только для engine: "3d". */
|
|
264
264
|
toggle3DBuildings(enabled: boolean): void;
|
|
265
|
+
/**
|
|
266
|
+
* Прячет/показывает нативные здания стиля GramMaps ("building-3d" и любые fill-extrusion /
|
|
267
|
+
* fill+source-layer=building), не задевая слои самого Maps3D. Нужно, иначе плоский слой стиля
|
|
268
|
+
* рисуется поверх процедурных 3D-зданий и визуально их перекрывает.
|
|
269
|
+
*/
|
|
270
|
+
private setNativeBuildingsVisible;
|
|
265
271
|
setCenter(center: [number, number]): void;
|
|
266
272
|
setZoom(zoom: number): void;
|
|
267
273
|
destroy(): void;
|
package/dist/index.d.ts
CHANGED
|
@@ -262,6 +262,12 @@ declare class MahalMap {
|
|
|
262
262
|
getMaps3DLayer(): IMaps3DLayer | undefined;
|
|
263
263
|
/** Вкл/выкл детальные 3D-здания (Maps3D). Работает только для engine: "3d". */
|
|
264
264
|
toggle3DBuildings(enabled: boolean): void;
|
|
265
|
+
/**
|
|
266
|
+
* Прячет/показывает нативные здания стиля GramMaps ("building-3d" и любые fill-extrusion /
|
|
267
|
+
* fill+source-layer=building), не задевая слои самого Maps3D. Нужно, иначе плоский слой стиля
|
|
268
|
+
* рисуется поверх процедурных 3D-зданий и визуально их перекрывает.
|
|
269
|
+
*/
|
|
270
|
+
private setNativeBuildingsVisible;
|
|
265
271
|
setCenter(center: [number, number]): void;
|
|
266
272
|
setZoom(zoom: number): void;
|
|
267
273
|
destroy(): void;
|