mahal_map 2.0.3 → 2.1.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 +70 -6
- package/dist/index.d.mts +58 -1
- package/dist/index.d.ts +58 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +6 -6
- package/dist/mahal_map.sdk.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ npm install mahal_map maplibre-gl @grammaps/maps3d-web
|
|
|
13
13
|
Обе зависимости — `peerDependencies`, в бандл `mahal_map` они не входят. Библиотека их не импортирует: MapLibre и `Maps3D` приходят снаружи, аргументами `create()` либо через `window`.
|
|
14
14
|
|
|
15
15
|
- `maplibre-gl` (`^6.10.0`) — обязателен всегда.
|
|
16
|
-
- `@grammaps/maps3d-web` (>=0.5.0) — даёт стили, тайлы, объём, пробки, рельеф, планы этажей, клик по объектам. Помечен `optional`: без него карта поднимется на запасном векторном стиле, но 3D и слоёв платформы на ней не будет.
|
|
16
|
+
- `@grammaps/maps3d-web` (>=0.5.0; рекомендуется 0.8.0 — в ней наведение на здание и починенный пикинг клика) — даёт стили, тайлы, объём, пробки, рельеф, планы этажей, клик по объектам. Помечен `optional`: без него карта поднимется на запасном векторном стиле, но 3D и слоёв платформы на ней не будет.
|
|
17
17
|
|
|
18
18
|
MapLibre можно не класть в свою сборку вовсе — платформа отдаёт согласованную версию вместе с веб-воркером:
|
|
19
19
|
|
|
@@ -334,11 +334,14 @@ MahalMap.create(
|
|
|
334
334
|
|
|
335
335
|
Поля независимы, и это главная ловушка реестра:
|
|
336
336
|
|
|
337
|
-
| Поле | Вопрос
|
|
338
|
-
| ----------- |
|
|
339
|
-
| `wanted` | чего хочет приложение
|
|
340
|
-
| `available` | что позволяют стиль и данные
|
|
341
|
-
| `active` | что нарисовано прямо сейчас
|
|
337
|
+
| Поле | Вопрос |
|
|
338
|
+
| ----------- | ------------------------------------------------- |
|
|
339
|
+
| `wanted` | чего хочет приложение |
|
|
340
|
+
| `available` | что позволяют стиль и данные |
|
|
341
|
+
| `active` | что нарисовано прямо сейчас (память SDK) |
|
|
342
|
+
| `rendered` | факт со стороны карты: слой есть в стиле и не погашен |
|
|
343
|
+
|
|
344
|
+
`rendered` появилось в Maps3D 0.8.0; у сборок постарше его нет (`undefined`). Расхождение `active !== rendered` означает, что внутренний признак SDK разошёлся с картой — это видно одной проверкой, без чтения минифицированной сборки.
|
|
342
345
|
|
|
343
346
|
Слой может быть включён и при этом не нарисован — и это не ошибка:
|
|
344
347
|
|
|
@@ -506,6 +509,55 @@ map.setSelectionStyle({ color: "#e23b2f" });
|
|
|
506
509
|
map.toggle3DBuildings(true); // подписка и стиль выделения уже применены к новому слою
|
|
507
510
|
```
|
|
508
511
|
|
|
512
|
+
### Наведение на здание
|
|
513
|
+
|
|
514
|
+
Требует `@grammaps/maps3d-web` **0.8.0** и старше. Подсветку и курсор рисует сам SDK — приложение задаёт облик и получает уведомления.
|
|
515
|
+
|
|
516
|
+
```ts
|
|
517
|
+
map.setHoverStyle({ color: "#6b9ed1", opacity: 0.3, cursor: "pointer" });
|
|
518
|
+
|
|
519
|
+
map.onBuildingHover((building) => {
|
|
520
|
+
if (!building) return; // курсор ушёл с домов
|
|
521
|
+
console.log(building.props.osm_id, building.height);
|
|
522
|
+
});
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
Колбэк приходит **только в момент смены** дома под курсором, а не на каждое движение мыши.
|
|
526
|
+
|
|
527
|
+
Слежение включается самой подпиской: пока `onBuildingHover` не вызван, SDK курсор не трогает и сцену не разбирает. `onBuildingHover(null)` отписывает и гасит подсветку.
|
|
528
|
+
|
|
529
|
+
| Метод | Описание |
|
|
530
|
+
| --- | --- |
|
|
531
|
+
| `onBuildingHover(cb \| null)` | Подписка на наведение; `null` отписывает и гасит подсветку. |
|
|
532
|
+
| `setHoverStyle(s)` | Облик: `color`, `opacity`, `glow`, `durationMs`, `easing`, `cursor`. `cursor: null` — не трогать курсор. |
|
|
533
|
+
| `setHoverEnabled(on)` | Вкл/выкл наведение, не трогая подписку. |
|
|
534
|
+
| `hoverEnabled` | Включено ли наведение сейчас. |
|
|
535
|
+
| `hoverBuilding(id \| null)` | Навести программно — например, с наведения на строку списка. `false` — дома нет на карте. |
|
|
536
|
+
| `hoveredBuilding()` | Идентификатор дома под наведением или `null`. |
|
|
537
|
+
|
|
538
|
+
Слот наведения свой, отдельный от выделения: **выбор всегда главнее**, и на выбранном доме наведение не рисуется. Занимать `setSelectionStyle` ради подсветки под курсором, как приходилось до 0.8.0, больше не нужно.
|
|
539
|
+
|
|
540
|
+
#### Наведение с элементов интерфейса
|
|
541
|
+
|
|
542
|
+
Курсор стоит на строке списка, а не на карте:
|
|
543
|
+
|
|
544
|
+
```ts
|
|
545
|
+
row.addEventListener("mouseenter", () => map.hoverBuilding(row.dataset.osmId!));
|
|
546
|
+
row.addEventListener("mouseleave", () => map.hoverBuilding(null));
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
Следующее движение мыши по карте перебивает программное наведение — слежение владеет слотом, пока включено.
|
|
550
|
+
|
|
551
|
+
#### Где наведение выключают
|
|
552
|
+
|
|
553
|
+
Там, где подсветка мешает: режим рисования на карте, открытая карточка объекта, тач-устройство без курсора.
|
|
554
|
+
|
|
555
|
+
```ts
|
|
556
|
+
map.setHoverEnabled(false); // подписка сохраняется
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
Цену ограничивает сам SDK: разбор не чаще раза в кадр, пропускается во время движения карты и не трогает сцену, пока курсор на том же доме. Но разбор — это чтение пикселя обратно из GPU, поэтому на слабых устройствах наведение лучше не включать.
|
|
560
|
+
|
|
509
561
|
#### Вкл/выкл 3D-здания на лету
|
|
510
562
|
|
|
511
563
|
Переключение объём ⇄ штатные здания стиля, без пересоздания карты. Умеет поднять слой, если его не было (`enable3D: false` при создании):
|
|
@@ -1123,6 +1175,13 @@ MahalMap.clearSelection(map);
|
|
|
1123
1175
|
MahalMap.onRoadClick(map, (road) => console.log(road?.name));
|
|
1124
1176
|
MahalMap.roadAt(map, { x: 320, y: 240 });
|
|
1125
1177
|
|
|
1178
|
+
// Наведение на здание (Maps3D 0.8.0)
|
|
1179
|
+
MahalMap.onBuildingHover(map, (b) => console.log(b?.id));
|
|
1180
|
+
MahalMap.setHoverStyle(map, { color: "#6b9ed1", cursor: "pointer" });
|
|
1181
|
+
MahalMap.setHoverEnabled(map, false);
|
|
1182
|
+
MahalMap.hoverBuilding(map, 123456789);
|
|
1183
|
+
MahalMap.hoveredBuilding(map);
|
|
1184
|
+
|
|
1126
1185
|
MahalMap.destroy(map);
|
|
1127
1186
|
```
|
|
1128
1187
|
|
|
@@ -1180,6 +1239,11 @@ MahalMap.setZoom(map, 14);
|
|
|
1180
1239
|
| `setSelectionStyle(instance, style)` | Облик выделения. |
|
|
1181
1240
|
| `onRoadClick(instance, callback)` | Клик по дороге. |
|
|
1182
1241
|
| `roadAt(instance, point, tolPx?)` | Дорога под точкой холста. |
|
|
1242
|
+
| `onBuildingHover(instance, cb)` | Подписка на наведение (Maps3D 0.8.0); `null` отписывает. |
|
|
1243
|
+
| `setHoverStyle(instance, style)` | Облик наведения, включая CSS-курсор. |
|
|
1244
|
+
| `setHoverEnabled(instance, on)` | Вкл/выкл наведение, не трогая подписку. |
|
|
1245
|
+
| `hoverBuilding(instance, id)` | Навести на здание программно; `null` снимает. |
|
|
1246
|
+
| `hoveredBuilding(instance)` | Дом под наведением или `null`. |
|
|
1183
1247
|
| `destroy(instance)` | Полностью удаляет карту. |
|
|
1184
1248
|
| `loadKeyFromScriptUrl()` | Читает `apikey` из URL SDK скрипта. |
|
|
1185
1249
|
| `loadLanguageFromScriptUrl()` | Читает `lang` из URL SDK скрипта. |
|
package/dist/index.d.mts
CHANGED
|
@@ -91,6 +91,12 @@ interface IMaps3DLayerState {
|
|
|
91
91
|
available: boolean;
|
|
92
92
|
/** Что нарисовано прямо сейчас. Именно это поле показывает, включён слой на деле или нет. */
|
|
93
93
|
active: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Факт со стороны карты: слой есть в стиле и не погашен. Появилось в 0.8.0.
|
|
96
|
+
* `active !== rendered` — расхождение внутреннего признака SDK с картой.
|
|
97
|
+
* У слоя, который не умеет ответить фактом, повторяет `active`; у сборок до 0.8.0 — undefined.
|
|
98
|
+
*/
|
|
99
|
+
rendered?: boolean;
|
|
94
100
|
/** Параметры слоя: у зданий — detail, у этажей — level, у рельефа — mode. */
|
|
95
101
|
params: Record<string, unknown>;
|
|
96
102
|
}
|
|
@@ -101,6 +107,15 @@ interface IMaps3DSelectionStyle {
|
|
|
101
107
|
durationMs?: number;
|
|
102
108
|
easing?: "ease-out" | "linear";
|
|
103
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Облик наведения. Появился в 0.8.0: до него подсветить дом под курсором можно было,
|
|
112
|
+
* только заняв единственный слот выделения. Теперь слот свой, и выбор всегда главнее —
|
|
113
|
+
* на выбранном доме наведение не рисуется.
|
|
114
|
+
*/
|
|
115
|
+
interface IMaps3DHoverStyle extends IMaps3DSelectionStyle {
|
|
116
|
+
/** CSS-курсор над зданием. По умолчанию "pointer"; `null` — не трогать курсор вовсе. */
|
|
117
|
+
cursor?: string | null;
|
|
118
|
+
}
|
|
104
119
|
interface IMaps3DRoadHit {
|
|
105
120
|
name: string;
|
|
106
121
|
nameRu?: string;
|
|
@@ -213,6 +228,12 @@ interface IMaps3DLayer {
|
|
|
213
228
|
clearSelection?(): void;
|
|
214
229
|
selectedBuilding?(): number | string | null;
|
|
215
230
|
setSelectionStyle?(style: IMaps3DSelectionStyle): void;
|
|
231
|
+
onBuildingHover?(callback: ((info: IMaps3DBuildingClickInfo | null) => void) | null): void;
|
|
232
|
+
setHoverEnabled?(enabled: boolean): void;
|
|
233
|
+
readonly hoverEnabled?: boolean;
|
|
234
|
+
setHoverStyle?(style: IMaps3DHoverStyle): void;
|
|
235
|
+
hoverBuilding?(id: number | string | null): boolean;
|
|
236
|
+
hoveredBuilding?(): number | string | null;
|
|
216
237
|
onRoadClick?(callback: (hit: IMaps3DRoadHit | null) => void): void;
|
|
217
238
|
roadAt?(point: {
|
|
218
239
|
x: number;
|
|
@@ -468,6 +489,9 @@ declare class MahalMap {
|
|
|
468
489
|
private pendingRoadClick?;
|
|
469
490
|
private pendingSelectionStyle?;
|
|
470
491
|
private pendingLayerSubscribers;
|
|
492
|
+
private pendingBuildingHover?;
|
|
493
|
+
private pendingHoverStyle?;
|
|
494
|
+
private pendingHoverEnabled?;
|
|
471
495
|
private constructor();
|
|
472
496
|
private static getInstanceKey;
|
|
473
497
|
private static normalizeLanguage;
|
|
@@ -540,6 +564,11 @@ declare class MahalMap {
|
|
|
540
564
|
x: number;
|
|
541
565
|
y: number;
|
|
542
566
|
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
567
|
+
static onBuildingHover(instance: MahalMap, callback: ((info: IMaps3DBuildingClickInfo | null) => void) | null): void;
|
|
568
|
+
static setHoverEnabled(instance: MahalMap, enabled: boolean): void;
|
|
569
|
+
static setHoverStyle(instance: MahalMap, style: IMaps3DHoverStyle): void;
|
|
570
|
+
static hoverBuilding(instance: MahalMap, id: number | string | null): boolean;
|
|
571
|
+
static hoveredBuilding(instance: MahalMap): string | number | null;
|
|
543
572
|
static setLanguage(instance: MahalMap, lang: MapLanguage): void;
|
|
544
573
|
static setCenter(instance: MahalMap, center: [number, number]): void;
|
|
545
574
|
static setZoom(instance: MahalMap, zoom: number): void;
|
|
@@ -641,6 +670,34 @@ declare class MahalMap {
|
|
|
641
670
|
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
642
671
|
/** Есть ли в текущем стиле названия дорог. Нет — roadAt() всегда вернёт null. */
|
|
643
672
|
get roadsNamed(): boolean;
|
|
673
|
+
/**
|
|
674
|
+
* Подписаться на наведение. Колбэк приходит только в момент смены дома под курсором,
|
|
675
|
+
* а не на каждое движение мыши. `null` отписывает и гасит подсветку.
|
|
676
|
+
*
|
|
677
|
+
* Слежение за мышью включается самой подпиской: без неё SDK курсор не трогает и
|
|
678
|
+
* разбор сцены не делает.
|
|
679
|
+
*/
|
|
680
|
+
onBuildingHover(callback: ((info: IMaps3DBuildingClickInfo | null) => void) | null): void;
|
|
681
|
+
/**
|
|
682
|
+
* Включить/выключить наведение, не трогая подписку. Нужно там, где подсветка мешает:
|
|
683
|
+
* режим рисования, открытая карточка объекта, тач-устройство без курсора.
|
|
684
|
+
*/
|
|
685
|
+
setHoverEnabled(enabled: boolean): void;
|
|
686
|
+
/** Включено ли наведение прямо сейчас. */
|
|
687
|
+
get hoverEnabled(): boolean;
|
|
688
|
+
/** Облик наведения: цвет, плотность, свечение, длительность и CSS-курсор. */
|
|
689
|
+
setHoverStyle(style: IMaps3DHoverStyle): void;
|
|
690
|
+
/**
|
|
691
|
+
* Навести на здание программно — например, когда курсор стоит на строке списка.
|
|
692
|
+
* Идентификатор тот же, что у selectBuilding. `null` снимает наведение.
|
|
693
|
+
*
|
|
694
|
+
* Следующее движение мыши по карте перебивает программное наведение.
|
|
695
|
+
*
|
|
696
|
+
* @returns `false`, если такого дома сейчас на карте нет.
|
|
697
|
+
*/
|
|
698
|
+
hoverBuilding(id: number | string | null): boolean;
|
|
699
|
+
/** Идентификатор дома под наведением или `null`. */
|
|
700
|
+
hoveredBuilding(): number | string | null;
|
|
644
701
|
/**
|
|
645
702
|
* Создаёт слой Maps3D. `buildings` не форсируем в `true`: с 0.7.x видимостью объёма
|
|
646
703
|
* заведует реестр слоёв, а опции облика зданий приходят из options.maps3d как есть.
|
|
@@ -959,4 +1016,4 @@ declare namespace index {
|
|
|
959
1016
|
export { index_checkCoordinates as checkCoordinates, index_debounce as debounce, index_geojsonPolyline as geojsonPolyline, index_geometryPolyline as geometryPolyline, index_trimValue as trimValue };
|
|
960
1017
|
}
|
|
961
1018
|
|
|
962
|
-
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 IMaps3DLayerParams, 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 Maps3DTerrainMode, 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 };
|
|
1019
|
+
export { CheckJSApi, type IAdditionalParamType, type ICheckJSApiParam, type ICheckJSApiResponse, type IMahalMapOptions, type IMapMarker, type IMaps3DBuildingClickInfo, type IMaps3DBuildingsController, type IMaps3DBuildingsOptions, type IMaps3DClosuresOptions, type IMaps3DDiagnostics, type IMaps3DHoverStyle, type IMaps3DIndoorOptions, type IMaps3DLayer, type IMaps3DLayerOptions, type IMaps3DLayerParams, 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 Maps3DTerrainMode, 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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -91,6 +91,12 @@ interface IMaps3DLayerState {
|
|
|
91
91
|
available: boolean;
|
|
92
92
|
/** Что нарисовано прямо сейчас. Именно это поле показывает, включён слой на деле или нет. */
|
|
93
93
|
active: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Факт со стороны карты: слой есть в стиле и не погашен. Появилось в 0.8.0.
|
|
96
|
+
* `active !== rendered` — расхождение внутреннего признака SDK с картой.
|
|
97
|
+
* У слоя, который не умеет ответить фактом, повторяет `active`; у сборок до 0.8.0 — undefined.
|
|
98
|
+
*/
|
|
99
|
+
rendered?: boolean;
|
|
94
100
|
/** Параметры слоя: у зданий — detail, у этажей — level, у рельефа — mode. */
|
|
95
101
|
params: Record<string, unknown>;
|
|
96
102
|
}
|
|
@@ -101,6 +107,15 @@ interface IMaps3DSelectionStyle {
|
|
|
101
107
|
durationMs?: number;
|
|
102
108
|
easing?: "ease-out" | "linear";
|
|
103
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Облик наведения. Появился в 0.8.0: до него подсветить дом под курсором можно было,
|
|
112
|
+
* только заняв единственный слот выделения. Теперь слот свой, и выбор всегда главнее —
|
|
113
|
+
* на выбранном доме наведение не рисуется.
|
|
114
|
+
*/
|
|
115
|
+
interface IMaps3DHoverStyle extends IMaps3DSelectionStyle {
|
|
116
|
+
/** CSS-курсор над зданием. По умолчанию "pointer"; `null` — не трогать курсор вовсе. */
|
|
117
|
+
cursor?: string | null;
|
|
118
|
+
}
|
|
104
119
|
interface IMaps3DRoadHit {
|
|
105
120
|
name: string;
|
|
106
121
|
nameRu?: string;
|
|
@@ -213,6 +228,12 @@ interface IMaps3DLayer {
|
|
|
213
228
|
clearSelection?(): void;
|
|
214
229
|
selectedBuilding?(): number | string | null;
|
|
215
230
|
setSelectionStyle?(style: IMaps3DSelectionStyle): void;
|
|
231
|
+
onBuildingHover?(callback: ((info: IMaps3DBuildingClickInfo | null) => void) | null): void;
|
|
232
|
+
setHoverEnabled?(enabled: boolean): void;
|
|
233
|
+
readonly hoverEnabled?: boolean;
|
|
234
|
+
setHoverStyle?(style: IMaps3DHoverStyle): void;
|
|
235
|
+
hoverBuilding?(id: number | string | null): boolean;
|
|
236
|
+
hoveredBuilding?(): number | string | null;
|
|
216
237
|
onRoadClick?(callback: (hit: IMaps3DRoadHit | null) => void): void;
|
|
217
238
|
roadAt?(point: {
|
|
218
239
|
x: number;
|
|
@@ -468,6 +489,9 @@ declare class MahalMap {
|
|
|
468
489
|
private pendingRoadClick?;
|
|
469
490
|
private pendingSelectionStyle?;
|
|
470
491
|
private pendingLayerSubscribers;
|
|
492
|
+
private pendingBuildingHover?;
|
|
493
|
+
private pendingHoverStyle?;
|
|
494
|
+
private pendingHoverEnabled?;
|
|
471
495
|
private constructor();
|
|
472
496
|
private static getInstanceKey;
|
|
473
497
|
private static normalizeLanguage;
|
|
@@ -540,6 +564,11 @@ declare class MahalMap {
|
|
|
540
564
|
x: number;
|
|
541
565
|
y: number;
|
|
542
566
|
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
567
|
+
static onBuildingHover(instance: MahalMap, callback: ((info: IMaps3DBuildingClickInfo | null) => void) | null): void;
|
|
568
|
+
static setHoverEnabled(instance: MahalMap, enabled: boolean): void;
|
|
569
|
+
static setHoverStyle(instance: MahalMap, style: IMaps3DHoverStyle): void;
|
|
570
|
+
static hoverBuilding(instance: MahalMap, id: number | string | null): boolean;
|
|
571
|
+
static hoveredBuilding(instance: MahalMap): string | number | null;
|
|
543
572
|
static setLanguage(instance: MahalMap, lang: MapLanguage): void;
|
|
544
573
|
static setCenter(instance: MahalMap, center: [number, number]): void;
|
|
545
574
|
static setZoom(instance: MahalMap, zoom: number): void;
|
|
@@ -641,6 +670,34 @@ declare class MahalMap {
|
|
|
641
670
|
}, tolerancePx?: number): IMaps3DRoadHit | null;
|
|
642
671
|
/** Есть ли в текущем стиле названия дорог. Нет — roadAt() всегда вернёт null. */
|
|
643
672
|
get roadsNamed(): boolean;
|
|
673
|
+
/**
|
|
674
|
+
* Подписаться на наведение. Колбэк приходит только в момент смены дома под курсором,
|
|
675
|
+
* а не на каждое движение мыши. `null` отписывает и гасит подсветку.
|
|
676
|
+
*
|
|
677
|
+
* Слежение за мышью включается самой подпиской: без неё SDK курсор не трогает и
|
|
678
|
+
* разбор сцены не делает.
|
|
679
|
+
*/
|
|
680
|
+
onBuildingHover(callback: ((info: IMaps3DBuildingClickInfo | null) => void) | null): void;
|
|
681
|
+
/**
|
|
682
|
+
* Включить/выключить наведение, не трогая подписку. Нужно там, где подсветка мешает:
|
|
683
|
+
* режим рисования, открытая карточка объекта, тач-устройство без курсора.
|
|
684
|
+
*/
|
|
685
|
+
setHoverEnabled(enabled: boolean): void;
|
|
686
|
+
/** Включено ли наведение прямо сейчас. */
|
|
687
|
+
get hoverEnabled(): boolean;
|
|
688
|
+
/** Облик наведения: цвет, плотность, свечение, длительность и CSS-курсор. */
|
|
689
|
+
setHoverStyle(style: IMaps3DHoverStyle): void;
|
|
690
|
+
/**
|
|
691
|
+
* Навести на здание программно — например, когда курсор стоит на строке списка.
|
|
692
|
+
* Идентификатор тот же, что у selectBuilding. `null` снимает наведение.
|
|
693
|
+
*
|
|
694
|
+
* Следующее движение мыши по карте перебивает программное наведение.
|
|
695
|
+
*
|
|
696
|
+
* @returns `false`, если такого дома сейчас на карте нет.
|
|
697
|
+
*/
|
|
698
|
+
hoverBuilding(id: number | string | null): boolean;
|
|
699
|
+
/** Идентификатор дома под наведением или `null`. */
|
|
700
|
+
hoveredBuilding(): number | string | null;
|
|
644
701
|
/**
|
|
645
702
|
* Создаёт слой Maps3D. `buildings` не форсируем в `true`: с 0.7.x видимостью объёма
|
|
646
703
|
* заведует реестр слоёв, а опции облика зданий приходят из options.maps3d как есть.
|
|
@@ -959,4 +1016,4 @@ declare namespace index {
|
|
|
959
1016
|
export { index_checkCoordinates as checkCoordinates, index_debounce as debounce, index_geojsonPolyline as geojsonPolyline, index_geometryPolyline as geometryPolyline, index_trimValue as trimValue };
|
|
960
1017
|
}
|
|
961
1018
|
|
|
962
|
-
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 IMaps3DLayerParams, 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 Maps3DTerrainMode, 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 };
|
|
1019
|
+
export { CheckJSApi, type IAdditionalParamType, type ICheckJSApiParam, type ICheckJSApiResponse, type IMahalMapOptions, type IMapMarker, type IMaps3DBuildingClickInfo, type IMaps3DBuildingsController, type IMaps3DBuildingsOptions, type IMaps3DClosuresOptions, type IMaps3DDiagnostics, type IMaps3DHoverStyle, type IMaps3DIndoorOptions, type IMaps3DLayer, type IMaps3DLayerOptions, type IMaps3DLayerParams, 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 Maps3DTerrainMode, 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 };
|