mahal_map 1.6.23 → 1.7.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 +20 -1
- package/dist/index.d.mts +17 -0
- package/dist/index.d.ts +17 -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/README.md
CHANGED
|
@@ -938,7 +938,26 @@ const measureTool = new MeasureTool(map, {
|
|
|
938
938
|
| `removePoint(shapeId, pointId)` | Удаляет одну точку фигуры. |
|
|
939
939
|
| `clearAll()` | Удаляет все фигуры и черновик. |
|
|
940
940
|
| `getState()` | Возвращает текущий `MeasureState` (снимок, без подписки). |
|
|
941
|
-
| `
|
|
941
|
+
| `setStyleOptions(style)` | Обновляет палитру (частично, `Partial<MeasureStyleOptions>`) без пересоздания инструмента: перекрашивает существующие слои и бейджи. Нужен при смене темы карты. |
|
|
942
|
+
| `refresh()` | Пересоздает источники/слои и перерисовывает фигуры. Инструмент делает это сам после `setStyle()`; метод оставлен как страховка. |
|
|
943
|
+
| `destroy()` | Полностью снимает слои, обработчики и DOM-бейджи. Вызывать при размонтировании. Повторный вызов безопасен. |
|
|
944
|
+
|
|
945
|
+
### Смена стиля карты (тема, язык)
|
|
946
|
+
|
|
947
|
+
`map.setStyle()` — а значит и `mahalMap.setStyle('dark')`, и смена языка — применяется MapLibre диффом: все слои, добавленные в рантайме, удаляются как отсутствующие в новом стиле, и событие `style.load` при этом не эмитится. `MeasureTool` переживает это сам: он слушает `styledata` и восстанавливает источники/слои с теми же id, а `render()` создает недостающие слои при каждой отрисовке. Фигуры, черновик и `getState()` не меняются, лишних `onChange` не будет.
|
|
948
|
+
|
|
949
|
+
Хосту делать ничего не нужно — обходы вида `map.fire('style.load')` после `setStyle()` можно убирать. Цвета за темой карты не следуют автоматически: после переключения вызовите `setStyleOptions()` с новой палитрой.
|
|
950
|
+
|
|
951
|
+
```ts
|
|
952
|
+
mahalMap.setStyle("dark");
|
|
953
|
+
measureTool.setStyleOptions({
|
|
954
|
+
lineColor: "#4ADE80",
|
|
955
|
+
pointStrokeColor: "#4ADE80",
|
|
956
|
+
fillColor: "#4ADE80",
|
|
957
|
+
badgeBackground: "#19191A",
|
|
958
|
+
badgeTextColor: "#FFFFFF",
|
|
959
|
+
});
|
|
960
|
+
```
|
|
942
961
|
|
|
943
962
|
### Взаимодействие на карте
|
|
944
963
|
|
package/dist/index.d.mts
CHANGED
|
@@ -403,6 +403,8 @@ declare class MeasureTool {
|
|
|
403
403
|
private labels;
|
|
404
404
|
private originalCursor;
|
|
405
405
|
private layerHandlersBound;
|
|
406
|
+
private destroyed;
|
|
407
|
+
private ensuringLayers;
|
|
406
408
|
private pointsSourceId;
|
|
407
409
|
private linesSourceId;
|
|
408
410
|
private fillsSourceId;
|
|
@@ -435,6 +437,7 @@ declare class MeasureTool {
|
|
|
435
437
|
private handleLineMouseLeave;
|
|
436
438
|
private handleLineMouseDown;
|
|
437
439
|
private handleStyleLoad;
|
|
440
|
+
private handleStyleData;
|
|
438
441
|
private handleViewportChange;
|
|
439
442
|
constructor(map: Map, options?: MeasureToolOptions);
|
|
440
443
|
private bindLayerHandlers;
|
|
@@ -446,6 +449,17 @@ declare class MeasureTool {
|
|
|
446
449
|
removeShape(shapeId: string): void;
|
|
447
450
|
removePoint(shapeId: string, pointId: string): void;
|
|
448
451
|
clearAll(): void;
|
|
452
|
+
/**
|
|
453
|
+
* Пересоздаёт источники/слои (если их снёс дифф стиля) и перерисовывает
|
|
454
|
+
* текущее состояние. Инструмент вызывает это сам по styledata; метод публичен
|
|
455
|
+
* как страховка для хоста после setStyle()/setLanguage().
|
|
456
|
+
*/
|
|
457
|
+
refresh(): void;
|
|
458
|
+
/**
|
|
459
|
+
* Обновляет палитру инструмента без пересоздания: применяет paint-свойства к
|
|
460
|
+
* уже существующим слоям и перекрашивает бейджи. Нужен при смене темы карты.
|
|
461
|
+
*/
|
|
462
|
+
setStyleOptions(style: MeasureStyleOptions): void;
|
|
449
463
|
getState(): MeasureState;
|
|
450
464
|
destroy(): void;
|
|
451
465
|
private cloneShape;
|
|
@@ -472,8 +486,11 @@ declare class MeasureTool {
|
|
|
472
486
|
private onPointContextMenu;
|
|
473
487
|
private setCursor;
|
|
474
488
|
private onStyleLoad;
|
|
489
|
+
private isMapUsable;
|
|
475
490
|
private emitChange;
|
|
476
491
|
private ensureLayers;
|
|
492
|
+
private createMissingLayers;
|
|
493
|
+
private applyPaintStyle;
|
|
477
494
|
private removeLayers;
|
|
478
495
|
private setSourceData;
|
|
479
496
|
private buildLineFeature;
|
package/dist/index.d.ts
CHANGED
|
@@ -403,6 +403,8 @@ declare class MeasureTool {
|
|
|
403
403
|
private labels;
|
|
404
404
|
private originalCursor;
|
|
405
405
|
private layerHandlersBound;
|
|
406
|
+
private destroyed;
|
|
407
|
+
private ensuringLayers;
|
|
406
408
|
private pointsSourceId;
|
|
407
409
|
private linesSourceId;
|
|
408
410
|
private fillsSourceId;
|
|
@@ -435,6 +437,7 @@ declare class MeasureTool {
|
|
|
435
437
|
private handleLineMouseLeave;
|
|
436
438
|
private handleLineMouseDown;
|
|
437
439
|
private handleStyleLoad;
|
|
440
|
+
private handleStyleData;
|
|
438
441
|
private handleViewportChange;
|
|
439
442
|
constructor(map: Map, options?: MeasureToolOptions);
|
|
440
443
|
private bindLayerHandlers;
|
|
@@ -446,6 +449,17 @@ declare class MeasureTool {
|
|
|
446
449
|
removeShape(shapeId: string): void;
|
|
447
450
|
removePoint(shapeId: string, pointId: string): void;
|
|
448
451
|
clearAll(): void;
|
|
452
|
+
/**
|
|
453
|
+
* Пересоздаёт источники/слои (если их снёс дифф стиля) и перерисовывает
|
|
454
|
+
* текущее состояние. Инструмент вызывает это сам по styledata; метод публичен
|
|
455
|
+
* как страховка для хоста после setStyle()/setLanguage().
|
|
456
|
+
*/
|
|
457
|
+
refresh(): void;
|
|
458
|
+
/**
|
|
459
|
+
* Обновляет палитру инструмента без пересоздания: применяет paint-свойства к
|
|
460
|
+
* уже существующим слоям и перекрашивает бейджи. Нужен при смене темы карты.
|
|
461
|
+
*/
|
|
462
|
+
setStyleOptions(style: MeasureStyleOptions): void;
|
|
449
463
|
getState(): MeasureState;
|
|
450
464
|
destroy(): void;
|
|
451
465
|
private cloneShape;
|
|
@@ -472,8 +486,11 @@ declare class MeasureTool {
|
|
|
472
486
|
private onPointContextMenu;
|
|
473
487
|
private setCursor;
|
|
474
488
|
private onStyleLoad;
|
|
489
|
+
private isMapUsable;
|
|
475
490
|
private emitChange;
|
|
476
491
|
private ensureLayers;
|
|
492
|
+
private createMissingLayers;
|
|
493
|
+
private applyPaintStyle;
|
|
477
494
|
private removeLayers;
|
|
478
495
|
private setSourceData;
|
|
479
496
|
private buildLineFeature;
|