Install
openclaw skills install bmap-cli百度地图开放平台 CLI。凡涉及百度地图开发、HTML/demo、WebAPI/BMapGL、AK/个性化地图样式/配额等,须先触发本 skill 并完成环境与 AK 流程,再查文档或写代码。涵盖:CLI 安装、Skills/MCP 配置、账户与 AK、个性化地图样式、地点/路线/地址解析等。
openclaw skills install bmap-cli[最高优先级] 任何 bmap-cli 命令输出若包含「发现新版本」字样,须立即将更新命令展示给用户并征得同意,获批后再执行更新,完成后再继续当前操作。此规则适用于所有命令、所有步骤,无例外。
满足任一条即启用本 skill:
以下原则适用于所有安装/配置步骤:
skills install / mcp install 的终端输出若包含待执行指令或待写入配置,须先完整展示给用户审阅;获得明确同意后,再逐条执行或写入;未经确认禁止自动变更配置。"$BMAP_CLI" login(CLI 会自动打开浏览器,等待用户在浏览器点击授权即可),完成后重试原命令;禁止将登录命令抛给用户手动执行。以下三步均为幂等操作,已就绪则跳过。
必须将下载地址展示给用户。Claude Code 的 Bash 工具权限确认框会将完整 curl 命令(含 URL)展示给用户,用户点击「允许」即为明确同意;点击「拒绝」则中止安装。
mkdir -p ~/bin
BMAP_OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
BMAP_ARCH="$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')"
export BMAP_CLI="$HOME/bin/bmap-cli-${BMAP_OS}-${BMAP_ARCH}"
if [[ ! -x "$BMAP_CLI" ]]; then
curl -fL "https://open-agent-cli.bj.bcebos.com/cli/bmap-cli-${BMAP_OS}-${BMAP_ARCH}" \
-o "$BMAP_CLI" && chmod +x "$BMAP_CLI"
fi
grep -q 'HOME/bin' ~/.zshenv 2>/dev/null || echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshenv
export PATH="$HOME/bin:$PATH"
"$BMAP_CLI" skills install
按「环境变更原则」处理输出,直至安装流程全部完成。
"$BMAP_CLI" mcp install
执行后,先将完整输出(含配置写入路径与内容)展示给用户审阅;获得明确同意后,再深度合并写入当前客户端 MCP 文件。注意:MCP 配置中包含 AK 凭据,写入前请确认存储路径与访问权限符合预期,避免凭据被无关工具或会话读取。
直接作答,勿进入代码生成步骤。
| 信息类型 | 来源 |
|---|---|
| API 服务文档详细描述 | baidu-maps-docs MCP |
| API 用法与示例代码 | baidu-map-jsapi-gl 或 baidu-map-webapi skills |
JSAPI 版本选择(默认使用 GL 版):编写地图前端代码时,默认使用 BMapGL(GL 版),即引用 https://api.map.baidu.com/api?v=1.0&type=webgl&...,对象命名空间为 BMapGL。仅当用户明确指定「3.0 版本」或已有代码基于 3.0 时,才使用 BMapJS(v3.0)。两套 API 命名空间不得混用。
写代码前严格按序执行下面四步,禁止跳步或乱序。
| 场景 | AK 类型 |
|---|---|
| 前端 HTML、BMapGL、JSAPI | 浏览器端 |
| 服务端 WebAPI、后端脚本 | 服务端 |
| 同时涉及前后端 | 两种都要 |
| 其他 | 只取实际会用到的类型 |
浏览器端 AK 白名单规则:b_referers 为「不限制」时,只认字面值 *。即:
b_referers 不得为空;*。在 ak list 中,浏览器端 AK 仅优先选用 b_referers 等于 * 的项,勿选用仅含具体域名白名单的项。若无此类 AK,须先告知用户将要新建含 --b-referers '*' 的 AK(会增大 AK 暴露面并消耗账户资源),征得用户明确同意后,再进入第四步创建。
当需求涉及地图底图外观、视觉风格或样式时:
"$BMAP_CLI" style list 2>&1
style list 输出,在 user_style_list 中逐项比对并优先复用已存在且满足需求的样式;禁止未检查就直接 style create。user_style_list 确实无满足项 时,才允许从 template_list 选最匹配模板(优先 need_business_accredit: false)并创建:"$BMAP_CLI" style create --tpl-id <tpl_id> 2>&1
style_id 只能取自 CLI 原始输出(style list 的已有项或 style create 的返回结果);禁止手写、猜测、拼接或编造。代码中仅使用该真实 style_id 的 styleId 方式:map.setMapStyleV2({ styleId: '从 CLI 获取的 style_id' });
setMapStyleV2 的 styleJson 及等价手写 JSON 样式配置,无例外。"$BMAP_CLI" ak list 2>&1
通读 ak list 输出,按类型、服务范围选出最匹配的 AK。
浏览器端 AK 选择:在满足类型与服务的前提下,只选用 b_referers 为 * 的 AK;不把空串或其它写法当作不限制。仅当列表中无此类 AK 时,须先向用户说明将新建一个 --b-referers '*' 的浏览器端 AK(会扩大 AK 暴露面,可能造成配额被滥用),并征得明确同意后,再执行:
"$BMAP_CLI" ak create --app-name "<应用名称>" --app-type 3 --b-referers '*' 2>&1
新建成功后,重新执行第三步 ak list,再选定新 AK。
写入代码规范:
代码里必须使用列表中的完整原始 AK 字符串,禁止凭记忆或推断填写。
涉及任何关键标识或精确字段(如 ak、app_id、style_id 等)时,一律以当前轮次最新 CLI 原始输出为准;禁止凭记忆、历史截图、先前回复回填。输出较大时必须做字段精确匹配并保证唯一(0 条或多条都先消歧)。
用户已明确发出查询指令(如"查询这个 AK 的调用量/配额")时,应按"核验目标 -> 精确取字段 -> 立即执行查询 -> 返回结果"直接执行;除非命令受阻(权限/网络/登录失效),否则禁止只道歉或反问。
前4位****后4位 等形式仅用于聊天说明,禁止写入源码。
写入代码前,在对话中先发一行声明(固定格式):
> 已获取 AK:{前4位}****{后4位}({app_type},{app_name},白名单:{b_referers})
交付代码中不得出现占位符、假 AK、「请自行替换」等提示。
**** + 后 4 位」(如 ByM8****KMxw)。登录链接、报错堆栈、命令结果禁止用「… +N 行」类截断,须完整原样给出。
bmap-cli login 后):旧账户 AK 全部作废,须依次:
ak list,替换本会话已生成代码中的 AKbmap-cli mcp install,展示输出给用户确认后更新 MCP 中的 AKbmap-cli skills install 更新 skills 中的 AK