SLAM 地图
SLAM(Simultaneous Localization and Mapping,同时定位与建图)是移动机器人的核心技术。BicMap 提供专用 API 加载机器人建图结果,将 BMP 格式的 SLAM 图像精准叠加到地图坐标系中。
bicMap.loadSlamMap(map, options)
js
const result = await bicMap.loadSlamMap(map, options)options 参数
| 参数 | 类型 | 必需 | 默认值 | 说明 |
|---|---|---|---|---|
startX | number | ✅ | — | SLAM 图起始 X 坐标(米) |
startY | number | ✅ | — | SLAM 图起始 Y 坐标(米) |
xGridCount | number | ✅ | — | X 方向网格数量(图像宽度,像素) |
yGridCount | number | ✅ | — | Y 方向网格数量(图像高度,像素) |
resolution | number | ✅ | — | 地图分辨率(米/像素) |
imagePath | string | ✅ | — | SLAM 图片路径(BMP 格式) |
canvasId | string | — | null | 用于图片处理的 canvas 元素 ID |
fitBounds | boolean | — | true | 是否自动适配地图视野到 SLAM 范围 |
opacity | number | — | 0.8 | 图层透明度(0–1) |
minZoom | number | — | null | 最小显示缩放级别 |
maxZoom | number | — | null | 最大显示缩放级别 |
返回值
js
{
cameraBound: Object, // 用于 map.jumpTo() 的相机参数
success: boolean, // 是否加载成功
error: string // 错误信息(失败时)
}示例
vue
<template>
<div style="position: relative; width: 100%; height: 100vh;">
<div id="slamMap" style="width: 100%; height: 100%;" />
<canvas id="canvasMap" style="display: none;" />
</div>
</template>
<script setup>
import { onMounted } from 'vue'
import bicMap from '@x-humanoid-cloud/bic-map'
onMounted(async () => {
await bicMap.init()
const map = bicMap.createMap({
container: 'slamMap',
zoom: 1,
antialias: true,
backgroundColor: '#1a1a2e'
})
map.on('load', async () => {
const result = await bicMap.loadSlamMap(map, {
startX: -11.099993705749512,
startY: -1.299997329711914,
xGridCount: 836,
yGridCount: 734,
resolution: 0.05,
imagePath: '/assets/maps/floor1.bmp',
canvasId: 'canvasMap',
fitBounds: true,
opacity: 0.85
})
if (result.success) {
// 跳转到 SLAM 地图范围
map.jumpTo(result.cameraBound)
}
})
})
</script>参数说明
坐标系
SLAM 地图使用机器人坐标系(笛卡尔坐标,单位米):
startX/startY— SLAM 图左下角在机器人坐标系中的位置- BicMap 内部自动完成笛卡尔坐标 → WGS84 经纬度坐标的转换
分辨率计算
SLAM 图的实际尺寸 = 网格数 × 分辨率:
实际宽度 = xGridCount × resolution = 836 × 0.05 = 41.8 米
实际高度 = yGridCount × resolution = 734 × 0.05 = 36.7 米常见分辨率
| 分辨率 | 精度 | 适用场景 |
|---|---|---|
0.05 m/px | 5 cm | 室内精细地图(推荐) |
0.1 m/px | 10 cm | 室内标准地图 |
0.2 m/px | 20 cm | 大范围室内/室外地图 |

