@ray-js/robot-map-sdk 0.0.15 → 0.0.16-beta.10

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.
Files changed (71) hide show
  1. package/bin/mcp-server.js +24 -24
  2. package/dist/constant/methods.js +1 -1
  3. package/dist/index.d.ts +139 -4
  4. package/dist/index.rjs.js +1 -1
  5. package/dist-app/assets/index-CKs7mckI.js +1 -0
  6. package/dist-app/index.html +1 -1
  7. package/dist-docs/404.html +2 -2
  8. package/dist-docs/agents/domain.html +3 -3
  9. package/dist-docs/agents/issue-tracker.html +3 -3
  10. package/dist-docs/agents/triage-labels.html +3 -3
  11. package/dist-docs/assets/{app.BXGPC0v4.js → app.Bgoj8KA9.js} +1 -1
  12. package/dist-docs/assets/chunks/@localSearchIndexroot.CHVWB7VI.js +1 -0
  13. package/dist-docs/assets/chunks/{BitmapFont.DzUyMNlJ.js → BitmapFont.Cn5tEcHP.js} +1 -1
  14. package/dist-docs/assets/chunks/{BufferResource.Drg97r2Z.js → BufferResource.DZKZSM1k.js} +1 -1
  15. package/dist-docs/assets/chunks/{CanvasRenderer.vfz9sPE6.js → CanvasRenderer.Bi_W60sK.js} +1 -1
  16. package/dist-docs/assets/chunks/{RenderTargetSystem.Bkr0oS6j.js → RenderTargetSystem.D5BIr0Br.js} +1 -1
  17. package/dist-docs/assets/chunks/{VPLocalSearchBox.C7HJ4UkB.js → VPLocalSearchBox.B0OzIf0s.js} +1 -1
  18. package/dist-docs/assets/chunks/{WebGLRenderer.D4Dgosvx.js → WebGLRenderer.OH-2Ff0j.js} +1 -1
  19. package/dist-docs/assets/chunks/{WebGPURenderer.CT3AUgw3.js → WebGPURenderer.q-zbsRwy.js} +1 -1
  20. package/dist-docs/assets/chunks/{browserAll.NKEQOzVE.js → browserAll.F6MnNd3i.js} +1 -1
  21. package/dist-docs/assets/chunks/index.BlykEJhQ.js +744 -0
  22. package/dist-docs/assets/chunks/theme.CB2YL8Lx.js +4 -0
  23. package/dist-docs/assets/chunks/{webworkerAll.JQUyAE7k.js → webworkerAll.DtS1CXDs.js} +1 -1
  24. package/dist-docs/assets/{guide_advanced-usage.md.DNWCmYfB.js → guide_advanced-usage.md.B1LO3kNP.js} +34 -3
  25. package/dist-docs/assets/{guide_advanced-usage.md.DNWCmYfB.lean.js → guide_advanced-usage.md.B1LO3kNP.lean.js} +1 -1
  26. package/dist-docs/assets/{guide_getting-started.md.s0ecK_5b.js → guide_getting-started.md.CHQim8cP.js} +1 -1
  27. package/dist-docs/assets/guide_spot-room-binding.md.CZGLnxCe.js +31 -0
  28. package/dist-docs/assets/guide_spot-room-binding.md.CZGLnxCe.lean.js +1 -0
  29. package/dist-docs/assets/reference_callbacks.md.4Y7lqLLW.js +33 -0
  30. package/dist-docs/assets/reference_callbacks.md.4Y7lqLLW.lean.js +1 -0
  31. package/dist-docs/assets/{reference_config.md.B45KsJB6.js → reference_config.md.Dr5HxVZt.js} +11 -3
  32. package/dist-docs/assets/{reference_config.md.B45KsJB6.lean.js → reference_config.md.Dr5HxVZt.lean.js} +1 -1
  33. package/dist-docs/assets/{reference_data.md.BjBUZrZo.js → reference_data.md.C3E1VcWx.js} +16 -1
  34. package/dist-docs/assets/{reference_data.md.BjBUZrZo.lean.js → reference_data.md.C3E1VcWx.lean.js} +1 -1
  35. package/dist-docs/assets/{reference_runtime.md.BBP2J_yR.js → reference_runtime.md.CX2K6JLY.js} +2 -2
  36. package/dist-docs/assets/{reference_runtime.md.BBP2J_yR.lean.js → reference_runtime.md.CX2K6JLY.lean.js} +1 -1
  37. package/dist-docs/assets/{reference_types.md.BDKGwrGI.js → reference_types.md.Btpi6Kd9.js} +37 -3
  38. package/dist-docs/assets/reference_types.md.Btpi6Kd9.lean.js +1 -0
  39. package/dist-docs/guide/advanced-usage.html +37 -6
  40. package/dist-docs/guide/concepts.html +3 -3
  41. package/dist-docs/guide/getting-started.html +5 -5
  42. package/dist-docs/guide/mcp.html +3 -3
  43. package/dist-docs/guide/spot-room-binding.html +55 -0
  44. package/dist-docs/hashmap.json +1 -1
  45. package/dist-docs/index.html +3 -3
  46. package/dist-docs/plans/2026-03-04-detected-objects-visibility-design.html +3 -3
  47. package/dist-docs/plans/2026-03-04-show-detected-objects-implementation-plan.html +3 -3
  48. package/dist-docs/plans/2026-03-10-simulator-debug-design.html +3 -3
  49. package/dist-docs/plans/2026-03-10-simulator-events-console-design.html +3 -3
  50. package/dist-docs/plans/2026-03-10-simulator-events-console-implementation-plan.html +3 -3
  51. package/dist-docs/plans/2026-03-10-simulator-runtime-controls-design.html +3 -3
  52. package/dist-docs/plans/2026-03-10-simulator-runtime-controls-implementation-plan.html +3 -3
  53. package/dist-docs/plans/2026-03-10-testing-rollout-next-steps-plan.html +3 -3
  54. package/dist-docs/plans/2026-03-11-simulator-logger-dump-implementation-plan.html +3 -3
  55. package/dist-docs/reference/callbacks.html +5 -5
  56. package/dist-docs/reference/config.html +14 -6
  57. package/dist-docs/reference/data.html +20 -5
  58. package/dist-docs/reference/methods.html +3 -3
  59. package/dist-docs/reference/runtime.html +5 -5
  60. package/dist-docs/reference/types.html +40 -6
  61. package/dist-docs/reference/utils.html +3 -3
  62. package/dist-docs/simulator/index.html +3 -3
  63. package/package.json +1 -1
  64. package/dist-app/assets/index-DMEnUYiD.js +0 -1
  65. package/dist-docs/assets/chunks/@localSearchIndexroot.D-feMZmG.js +0 -1
  66. package/dist-docs/assets/chunks/index.CvitVYBK.js +0 -744
  67. package/dist-docs/assets/chunks/theme.DUpgtHaE.js +0 -4
  68. package/dist-docs/assets/reference_callbacks.md.FoJwSjMy.js +0 -33
  69. package/dist-docs/assets/reference_callbacks.md.FoJwSjMy.lean.js +0 -1
  70. package/dist-docs/assets/reference_types.md.BDKGwrGI.lean.js +0 -1
  71. /package/dist-docs/assets/{guide_getting-started.md.s0ecK_5b.lean.js → guide_getting-started.md.CHQim8cP.lean.js} +0 -0
@@ -1 +1 @@
1
- const e=["areRoomsAdjacent","getForbiddenSweepZones","getForbiddenMopZones","getCleanZones","getVirtualWalls","getSpots","getWayPoints","getViewportCenterPoint","getMapCenterPoint","getWallPointsByViewportCenter","getForbiddenSweepZonePointsByViewportCenter","getForbiddenMopZonePointsByViewportCenter","getCleanZonePointsByViewportCenter","getSpotPointByViewportCenter","getEffectiveDividerPoints","getDividerEndPoints","isNearChargerOrRobot","isPointInAnyRoom","isWallIntersectsAnyRoom","isZoneIntersectsAnyRoom","resetPanZoom","snapshot","snapshotByData","getCustomCarpets","forceEndGesture","getFurniturePointsByViewportCenter","getCustomCarpetPointsByViewportCenter","getRectPointsByCenter","getFurnitures","drawCustomZones","getCustomZones","clearCustomZones","setEditingCustomZones"],o=["onMapFirstDrawed","onMapDrawed","onPathDrawed","onRoomPropertiesDrawed","onRoomsDrawed","onClickRoom","onClickRoomProperties","onRemoveForbiddenSweepZone","onRemoveForbiddenMopZone","onRemoveCleanZone","onRemoveVirtualWall","onUpdateForbiddenSweepZone","onUpdateForbiddenMopZone","onUpdateCleanZone","onUpdateVirtualWall","onUpdateSpot","onUpdateWayPoint","onUpdateDivider","onClickForbiddenSweepZone","onClickForbiddenMopZone","onClickCleanZone","onClickVirtualWall","onClickSpot","onClickWayPoint","onClickDetectedObject","onClickCustomElement","onClickMap","onClickCarpet","onDeleteCarpet","onUpdateCustomCarpet","onDeleteCustomCarpet","onGestureStart","onGestureEnd","onClickRobot","onClickChargingStation","onRemoveFurniture","onUpdateFurniture","onClickFurniture","onRemoveCustomZone","onUpdateCustomZone","onClickCustomZone"];export{e as MAP_API_METHODS,o as MAP_CALLBACK_METHODS};
1
+ const e=["areRoomsAdjacent","getForbiddenSweepZones","getForbiddenMopZones","getCleanZones","getVirtualWalls","getSpots","getRoomAnchors","getWayPoints","getViewportCenterPoint","getMapCenterPoint","getWallPointsByViewportCenter","getForbiddenSweepZonePointsByViewportCenter","getForbiddenMopZonePointsByViewportCenter","getCleanZonePointsByViewportCenter","getSpotPointByViewportCenter","getEffectiveDividerPoints","getDividerEndPoints","isNearChargerOrRobot","isPointInAnyRoom","isWallIntersectsAnyRoom","isZoneIntersectsAnyRoom","resetPanZoom","snapshot","snapshotByData","getCustomCarpets","forceEndGesture","getFurniturePointsByViewportCenter","getCustomCarpetPointsByViewportCenter","getRectPointsByCenter","getFurnitures","drawCustomZones","getCustomZones","clearCustomZones","setEditingCustomZones"],o=["onMapFirstDrawed","onMapDrawed","onPathDrawed","onRoomPropertiesDrawed","onRoomsDrawed","onClickRoom","onClickRoomProperties","onRemoveForbiddenSweepZone","onRemoveForbiddenMopZone","onRemoveCleanZone","onRemoveVirtualWall","onUpdateForbiddenSweepZone","onUpdateForbiddenMopZone","onUpdateCleanZone","onUpdateVirtualWall","onUpdateSpot","onUpdateRoomAnchor","onUpdateWayPoint","onUpdateDivider","onClickForbiddenSweepZone","onClickForbiddenMopZone","onClickCleanZone","onClickVirtualWall","onClickSpot","onClickRoomAnchor","onClickWayPoint","onClickDetectedObject","onClickCustomElement","onClickMap","onClickCarpet","onDeleteCarpet","onUpdateCustomCarpet","onDeleteCustomCarpet","onGestureStart","onGestureEnd","onClickRobot","onClickChargingStation","onRemoveFurniture","onUpdateFurniture","onClickFurniture","onRemoveCustomZone","onUpdateCustomZone","onClickCustomZone"];export{e as MAP_API_METHODS,o as MAP_CALLBACK_METHODS};
package/dist/index.d.ts CHANGED
@@ -312,6 +312,25 @@ export declare type AppConfig = {
312
312
  *
313
313
  * */
314
314
  incrementalThreshold: number
315
+ /**
316
+ * 合并阈值(路径点数)
317
+ *
318
+ * 距上次全量重绘累计新增点数超过该值时,强制转全量重绘,把增量追加堆积的
319
+ * 绘图指令收敛成一条抽稀后的折线,避免 speed=0 长会话下指令/显存无限增长。
320
+ *
321
+ * 越小越频繁收敛(峰值内存低、偶发重绘更频繁);越大收敛越少(重绘更少、
322
+ * 指令堆积峰值更高)。默认 200。
323
+ */
324
+ consolidateThreshold: number
325
+ /**
326
+ * 抽稀容差(屏幕像素)
327
+ *
328
+ * 全量重绘时对折线做 RDP 抽稀的容差,以“屏幕像素”表达,内部按运行时最大
329
+ * 缩放折算为世界坐标,保证即使放到最大倍数,被删点的偏差也 < 该像素值。
330
+ *
331
+ * 设为 0 时关闭抽稀。默认 0.5(比常见的 1px 更保守,优先保证视觉无变化)。
332
+ */
333
+ simplifyTolerancePx: number
315
334
  /** 清扫路径配置 */
316
335
  commonPath: {
317
336
  /** 是否可见 */
@@ -622,6 +641,23 @@ export declare type BaseCustomElementParam = {
622
641
  customData?: Record<string, any>
623
642
  /** 尺寸是否固定 */
624
643
  sizeFixed?: boolean
644
+ /**
645
+ * 屏幕像素偏移(仅 `sizeFixed: true` 生效)
646
+ *
647
+ * 在元素锚定到 (x, y) 之后,再按「屏幕像素」平移指定距离。该偏移不随地图
648
+ * 缩放或旋转变化,始终对应相同的屏幕位移——与房间属性气泡停留在房间名上方
649
+ * 的行为一致。适合把图标稳定贴在气泡旁边等固定相对位置。
650
+ *
651
+ * 坐标约定(与 PIXI 屏幕坐标及 `getWallPointsByViewportCenter` 等 offset API 一致):
652
+ * - `x` 正值向右,负值向左
653
+ * - `y` 正值向下,负值向上
654
+ *
655
+ * 例:贴在房间属性气泡上方 → `pixelOffset: { x: 12, y: -10 }`。
656
+ *
657
+ * 注意:`sizeFixed` 为 `false` 或未设置时该字段被忽略(随缩放变化的尺寸与
658
+ * 固定像素偏移没有自洽语义)。
659
+ */
660
+ pixelOffset?: Point
625
661
  }
626
662
 
627
663
  /** 区域和地毯配置的基础类型 */
@@ -710,6 +746,7 @@ export declare type ControlRenderItem =
710
746
  | 'cleanZone'
711
747
  | 'virtualWall'
712
748
  | 'spot'
749
+ | 'roomAnchor'
713
750
  | 'wayPoint'
714
751
  | 'divider'
715
752
  // Allow any string for custom zone types while keeping IDE autocomplete
@@ -764,6 +801,12 @@ export declare type ControlsConfig = {
764
801
  virtualWall: VirtualWallConfig
765
802
  /** 定点清扫配置 */
766
803
  spot: SpotConfig
804
+ /**
805
+ * 房间锚点配置。房间锚点是一路由外侧主动上报的独立数据源(类似禁区/划框),
806
+ * 复用定点(Spot)渲染,但拥有独立配置:默认尖端对齐坐标、默认不展示,
807
+ * 需 `show` 为 true 才渲染。不影响普通定点(controls.spot)的行为。
808
+ */
809
+ roomAnchor: RoomAnchorConfig
767
810
  wayPoint: WayPointConfig
768
811
  }
769
812
 
@@ -1028,6 +1071,12 @@ export declare type LoggerConfig = {
1028
1071
  appLogEnabled: boolean
1029
1072
  /** 转发到 App 原生日志的级别 */
1030
1073
  appLogLevels: LoggerLevel[]
1074
+ /**
1075
+ * 是否对转发到 App 通道的大数据日志做摘要瘦身。
1076
+ * 仅影响 emitToApp 路径,console 输出始终保留完整数据。
1077
+ * 默认 true:对地图/路径绘制入口提取关键字段,其他大数据按尺寸阈值裁剪。
1078
+ */
1079
+ appLogSummary?: boolean
1031
1080
  tag: string
1032
1081
  }
1033
1082
 
@@ -1041,9 +1090,9 @@ export declare type LoggerPayload = {
1041
1090
  ts: number
1042
1091
  }
1043
1092
 
1044
- export declare const MAP_API_METHODS: readonly ["areRoomsAdjacent", "getForbiddenSweepZones", "getForbiddenMopZones", "getCleanZones", "getVirtualWalls", "getSpots", "getWayPoints", "getViewportCenterPoint", "getMapCenterPoint", "getWallPointsByViewportCenter", "getForbiddenSweepZonePointsByViewportCenter", "getForbiddenMopZonePointsByViewportCenter", "getCleanZonePointsByViewportCenter", "getSpotPointByViewportCenter", "getEffectiveDividerPoints", "getDividerEndPoints", "isNearChargerOrRobot", "isPointInAnyRoom", "isWallIntersectsAnyRoom", "isZoneIntersectsAnyRoom", "resetPanZoom", "snapshot", "snapshotByData", "getCustomCarpets", "forceEndGesture", "getFurniturePointsByViewportCenter", "getCustomCarpetPointsByViewportCenter", "getRectPointsByCenter", "getFurnitures", "drawCustomZones", "getCustomZones", "clearCustomZones", "setEditingCustomZones"];
1093
+ export declare const MAP_API_METHODS: readonly ["areRoomsAdjacent", "getForbiddenSweepZones", "getForbiddenMopZones", "getCleanZones", "getVirtualWalls", "getSpots", "getRoomAnchors", "getWayPoints", "getViewportCenterPoint", "getMapCenterPoint", "getWallPointsByViewportCenter", "getForbiddenSweepZonePointsByViewportCenter", "getForbiddenMopZonePointsByViewportCenter", "getCleanZonePointsByViewportCenter", "getSpotPointByViewportCenter", "getEffectiveDividerPoints", "getDividerEndPoints", "isNearChargerOrRobot", "isPointInAnyRoom", "isWallIntersectsAnyRoom", "isZoneIntersectsAnyRoom", "resetPanZoom", "snapshot", "snapshotByData", "getCustomCarpets", "forceEndGesture", "getFurniturePointsByViewportCenter", "getCustomCarpetPointsByViewportCenter", "getRectPointsByCenter", "getFurnitures", "drawCustomZones", "getCustomZones", "clearCustomZones", "setEditingCustomZones"];
1045
1094
 
1046
- export declare const MAP_CALLBACK_METHODS: readonly ["onMapFirstDrawed", "onMapDrawed", "onPathDrawed", "onRoomPropertiesDrawed", "onRoomsDrawed", "onClickRoom", "onClickRoomProperties", "onRemoveForbiddenSweepZone", "onRemoveForbiddenMopZone", "onRemoveCleanZone", "onRemoveVirtualWall", "onUpdateForbiddenSweepZone", "onUpdateForbiddenMopZone", "onUpdateCleanZone", "onUpdateVirtualWall", "onUpdateSpot", "onUpdateWayPoint", "onUpdateDivider", "onClickForbiddenSweepZone", "onClickForbiddenMopZone", "onClickCleanZone", "onClickVirtualWall", "onClickSpot", "onClickWayPoint", "onClickDetectedObject", "onClickCustomElement", "onClickMap", "onClickCarpet", "onDeleteCarpet", "onUpdateCustomCarpet", "onDeleteCustomCarpet", "onGestureStart", "onGestureEnd", "onClickRobot", "onClickChargingStation", "onRemoveFurniture", "onUpdateFurniture", "onClickFurniture", "onRemoveCustomZone", "onUpdateCustomZone", "onClickCustomZone"];
1095
+ export declare const MAP_CALLBACK_METHODS: readonly ["onMapFirstDrawed", "onMapDrawed", "onPathDrawed", "onRoomPropertiesDrawed", "onRoomsDrawed", "onClickRoom", "onClickRoomProperties", "onRemoveForbiddenSweepZone", "onRemoveForbiddenMopZone", "onRemoveCleanZone", "onRemoveVirtualWall", "onUpdateForbiddenSweepZone", "onUpdateForbiddenMopZone", "onUpdateCleanZone", "onUpdateVirtualWall", "onUpdateSpot", "onUpdateRoomAnchor", "onUpdateWayPoint", "onUpdateDivider", "onClickForbiddenSweepZone", "onClickForbiddenMopZone", "onClickCleanZone", "onClickVirtualWall", "onClickSpot", "onClickRoomAnchor", "onClickWayPoint", "onClickDetectedObject", "onClickCustomElement", "onClickMap", "onClickCarpet", "onDeleteCarpet", "onUpdateCustomCarpet", "onDeleteCustomCarpet", "onGestureStart", "onGestureEnd", "onClickRobot", "onClickChargingStation", "onRemoveFurniture", "onUpdateFurniture", "onClickFurniture", "onRemoveCustomZone", "onUpdateCustomZone", "onClickCustomZone"];
1047
1096
 
1048
1097
  /**
1049
1098
  * 地图 API 接口定义
@@ -1188,6 +1237,15 @@ export declare interface MapApi {
1188
1237
  * @returns 定点清扫数据数组
1189
1238
  */
1190
1239
  getSpots(): SpotParam[];
1240
+ /**
1241
+ * 获取当前地图上所有房间锚点数据
1242
+ *
1243
+ * 房间锚点是由外侧主动上报的独立数据源,与定点相互独立。返回值以数据缓存为准,
1244
+ * 不受 `controls.roomAnchor.show` 当前显隐状态影响。
1245
+ *
1246
+ * @returns 房间锚点数据数组
1247
+ */
1248
+ getRoomAnchors(): RoomAnchorParam[];
1191
1249
  /**
1192
1250
  * 获取当前地图上所有家具数据
1193
1251
  *
@@ -1656,6 +1714,15 @@ export declare interface MapCallbacks {
1656
1714
  * @param.en spot - Updated spot clean data
1657
1715
  */
1658
1716
  onUpdateSpot?: (spot: SpotParam) => void;
1717
+ /**
1718
+ * @description.zh 更新房间锚点的回调
1719
+ * @description.en Callback when updating room anchor
1720
+ * @description.zh 当用户操作房间锚点位置后触发(房间锚点复用定点渲染,可编辑时生效)。
1721
+ * @description.en Triggered when user operates room anchor position (room anchors reuse spot rendering; effective when editable).
1722
+ * @param.zh point - 更新后的房间锚点数据
1723
+ * @param.en point - Updated room anchor data
1724
+ */
1725
+ onUpdateRoomAnchor?: (point: RoomAnchorParam) => void;
1659
1726
  /**
1660
1727
  * @description.zh 更新途经点的回调
1661
1728
  * @description.en Callback when updating way point
@@ -1719,6 +1786,15 @@ export declare interface MapCallbacks {
1719
1786
  * @param.en spot - Clicked spot clean data
1720
1787
  */
1721
1788
  onClickSpot?: (spot: SpotParam) => void;
1789
+ /**
1790
+ * @description.zh 点击房间锚点回调
1791
+ * @description.en Callback when clicking room anchor
1792
+ * @description.zh 当用户点击房间锚点时触发。
1793
+ * @description.en Triggered when user clicks room anchor.
1794
+ * @param.zh point - 被点击的房间锚点数据
1795
+ * @param.en point - Clicked room anchor data
1796
+ */
1797
+ onClickRoomAnchor?: (point: RoomAnchorParam) => void;
1722
1798
  /**
1723
1799
  * @description.zh 点击检测物体回调
1724
1800
  * @description.en Callback when clicking detected object
@@ -2115,6 +2191,43 @@ export declare type Room = {
2115
2191
  colorIndex?: number
2116
2192
  }
2117
2193
 
2194
+ /**
2195
+ * 房间锚点配置。
2196
+ *
2197
+ * 房间锚点复用定点(Spot)的全部渲染能力,因此其配置就是一份 {@link SpotConfig},
2198
+ * 额外增加一个 `show` 开关:
2199
+ * - `show` 默认 `false`,房间锚点默认不展示;置为 `true` 后才渲染(类似 showName 的显隐能力)。
2200
+ *
2201
+ * 房间锚点数据由外侧主动上报(见 `drawRoomAnchors`),与普通定点相互独立,
2202
+ * 互不影响。默认 `iconAnchor` 为 `{ x: 0.5, y: 1 }`(尖端对齐坐标),
2203
+ * 而普通定点默认居中,因此两者可拥有不同视觉表现。
2204
+ */
2205
+ export declare type RoomAnchorConfig = SpotConfig & {
2206
+ /** 是否展示房间锚点,默认 false;关闭时不渲染任何房间锚点 */
2207
+ show: boolean
2208
+ }
2209
+
2210
+ /**
2211
+ * 房间锚点参数。
2212
+ *
2213
+ * 房间锚点是与定点({@link SpotParam})完全独立的一类元素,拥有自己的数据类型,
2214
+ * 二者互不耦合、互不影响。字段结构目前与定点相近,但可各自独立演进。
2215
+ */
2216
+ export declare type RoomAnchorParam = {
2217
+ /** 房间锚点ID */
2218
+ id: string
2219
+ /** 点坐标 */
2220
+ point: Point
2221
+ /** 可选显示名称 */
2222
+ name?: string
2223
+ /**
2224
+ * 可选所属房间 ID。设置后该房间锚点即与房间关联:编辑态拖拽被硬约束在该房间内,
2225
+ * 无法拖出房间边界(拖到房间外的位置会被拒绝,停留在最后一个合法位置)。
2226
+ * 不设置则为普通房间锚点,可自由拖拽。
2227
+ */
2228
+ roomId?: number
2229
+ }
2230
+
2118
2231
  /**
2119
2232
  * 房间中心点信息
2120
2233
  *
@@ -2224,6 +2337,8 @@ export declare type RuntimeConfig = {
2224
2337
  editingVirtualWallIds: string[]
2225
2338
  /** 正在编辑的定点清扫ID列表 */
2226
2339
  editingSpotIds: string[]
2340
+ /** 正在编辑的房间锚点ID列表(独立于 editingSpotIds,互不影响) */
2341
+ editingRoomAnchorIds: string[]
2227
2342
  /** 正在编辑的途径点ID列表 */
2228
2343
  editingWayPointIds: string[]
2229
2344
  /** 正在编辑的地毯ID列表 */
@@ -2286,6 +2401,16 @@ export declare type SpotConfig = {
2286
2401
  iconSize: number
2287
2402
  /** 图标尺寸是否固定(不跟随地图缩放) */
2288
2403
  iconSizeFixed: boolean
2404
+ /**
2405
+ * 图标锚点位置
2406
+ *
2407
+ * 定义中心图标相对于坐标点的对齐方式
2408
+ * - {x: 0, y: 0} 表示左上角
2409
+ * - {x: 0.5, y: 0.5} 表示中心(默认)
2410
+ * - {x: 0.5, y: 1} 表示底部中心(适用于气泡/水滴形状的图标)
2411
+ * - {x: 1, y: 1} 表示右下角
2412
+ */
2413
+ iconAnchor: Point
2289
2414
  /** 尺寸 (米) */
2290
2415
  size: number
2291
2416
  /** 描边颜色 */
@@ -2336,8 +2461,10 @@ export declare type SpotConfig = {
2336
2461
  dashArray: [number, number]
2337
2462
  /** 是否显示图标 */
2338
2463
  showIcon: boolean
2339
- /** 是否显示框体(填充和边框) */
2464
+ /** 是否显示框体(边框;同时作为填充的默认开关) */
2340
2465
  showFrame: boolean
2466
+ /** 是否显示填充面积(缺省时回退到 showFrame) */
2467
+ showFill?: boolean
2341
2468
  }
2342
2469
  /** 普通模式样式 */
2343
2470
  normal: {
@@ -2347,8 +2474,10 @@ export declare type SpotConfig = {
2347
2474
  dashArray: [number, number]
2348
2475
  /** 是否显示图标 */
2349
2476
  showIcon: boolean
2350
- /** 是否显示框体(填充和边框) */
2477
+ /** 是否显示框体(边框;同时作为填充的默认开关) */
2351
2478
  showFrame: boolean
2479
+ /** 是否显示填充面积(缺省时回退到 showFrame) */
2480
+ showFill?: boolean
2352
2481
  }
2353
2482
  }
2354
2483
 
@@ -2360,6 +2489,12 @@ export declare type SpotParam = {
2360
2489
  point: Point
2361
2490
  /** 可选显示名称 */
2362
2491
  name?: string
2492
+ /**
2493
+ * 可选所属房间 ID。设置后该定点即与房间关联:编辑态拖拽被硬约束在该房间内,
2494
+ * 无法拖出房间边界(拖到房间外的位置会被拒绝,停留在最后一个合法位置)。
2495
+ * 不设置则为普通定点,可自由拖拽。
2496
+ */
2497
+ roomId?: number
2363
2498
  }
2364
2499
 
2365
2500
  /** 虚拟墙配置 */