返回顶部
o

openstreet-mapOpenStreetMap

Use when you need OpenStreetMap geocoding or annotated map generation for a set of places.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
113
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

openstreet-map

OpenStreet Map 技能(适用于 OpenClaw)

该技能提供两个功能:

  1. 1. 查询某个地点的位置信息。
  2. 为多个地点渲染带有编号标记和图例的注释地图图像。

前提条件

  • - Python 3.10+
  • 互联网连接(Nominatim + OSM 瓦片端点)

可选环境变量:

  • - OPENSTREETMAPHOST:仅覆盖默认端点中的 openstreetmap.org 主机后缀。推荐格式:openstreetmap.org。如果提供了 http:// 或 https://,则仅使用主机部分。

设置后,技能将使用:

  • - 地理编码端点:https://nominatim.${OPENSTREETMAPHOST}/search
  • 瓦片端点:https://tile.${OPENSTREETMAPHOST}/{z}/{x}/{y}.png

示例:

  • - OPENSTREETMAPHOST=openstreetmap.org -> https://nominatim.openstreetmap.org/search
  • OPENSTREETMAPHOST=https://openstreetmap.org -> https://tile.openstreetmap.org/{z}/{x}/{y}.png

安装

bash
pip install -r requirements.txt

功能 1:查询位置信息

bash
python tools/openstreet_skill.py locate --query 上海外滩 --limit 1

输出为 JSON 格式,包含 display_name、lat、lon 和类型元数据。

功能 2:渲染注释地图

输入 JSON 文件格式(数组):

json
[
{name: 点 A, lat: 31.2304, lon: 121.4737},
{name: 点 B, query: 上海外滩}
]

渲染命令:

bash
python tools/openstreet_skill.py render \
--points-file examples/points.json \
--output output/annotated_map.png \
--width 1600 \
--height 800

使用 base64 JSON 输入的渲染命令:

bash
python tools/openstreet_skill.py render \
--points-base64 W3sibmFtZSI6IlBvaW50IEEiLCJsYXQiOjMxLjIzMDQsImxvbiI6MTIxLjQ3Mzd9LHsibmFtZSI6IlBvaW50IEIiLCJxdWVyeSI6IlRoZSBCdW5kIFNoYW5naGFpIn1d \
--output output/annotated_map.png

可选:渲染命令返回 base64 编码的图像(不写入文件):

bash
python tools/openstreet_skill.py render \
--points-base64 ... \
--base64

可选:渲染命令写入文件返回 base64:

bash
python tools/openstreet_skill.py render \
--points-base64 ... \
--output output/annotated_map.png \
--base64

render 输入/输出选项:

  • - --points-file / --points-base64:点来源(互斥,必须提供一个)。
  • --output:将图像保存到路径。这是默认且推荐的输出模式。
  • --base64:在 JSON 标准输出中的 image_base64 下包含 base64 编码的 PNG。仅在调用方无法直接访问输出文件时使用。
  • 必须提供 --output 或 --base64 中的至少一个。

推荐:默认使用 --output 进行文件输出。
除非无法通过文件传递,否则不要使用 --base64,因为 base64 图像负载会消耗大量令牌。
bash
python tools/openstreet_skill.py render \
--points-file examples/points.json \
--output output/annotated_map.png

行为:

  • - 选择合适的缩放级别以容纳所有点。
  • 下载 OSM 瓦片并将其拼接成一张地图图像。
  • 在每个地点上绘制编号标记。
  • 在地图下方附加一个三列图例,显示索引和地点名称。
  • 如果指定了 --output 路径,则保存最终图像。

JSON 输出结构:

json
{
zoom: 14,
size: { width: 1200, height: 880 },
places: [
{ index: 1, name: 点 A, lat: 31.2304, lon: 121.4737 }
],
output: output/annotated_map.png
}

  • - output:仅在提供 --output 时存在。
  • image_base64:仅在设置 --base64 时存在。PNG 图像编码为标准 base64。在正常流程中避免使用,因为它会显著增加令牌使用量。

OpenClaw 集成说明

  • - 将这两个 CLI 操作作为可调用工具暴露给 OpenClaw:
- locate:映射到 python tools/openstreet_skill.py locate ... - render:映射到 python tools/openstreet_skill.py render ...
  • - 对于 render,默认使用 --output 文件交付而不是 --base64,以保持响应较小。
  • 将 JSON 标准输出返回给调用方,并将非零退出码视为失败。
  • 遵守 OSM 使用政策,不发送高频率请求。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 openstreet-map-1775941536 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 openstreet-map-1775941536 技能

通过命令行安装

skillhub install openstreet-map-1775941536

下载

⬇ 下载 openstreet-map v1.0.0(免费)

文件大小: 8.25 KB | 发布时间: 2026-4-12 10:52

v1.0.0 最新 2026-4-12 10:52
OpenStreet Map Skill v1.0.0

- Initial release providing OpenStreetMap integration for geocoding and map generation.
- Supports querying location data for a single place using Nominatim.
- Enables rendering annotated maps with multiple places, numbered markers, and a legend.
- Allows map output as a PNG file or as a base64-encoded string in JSON.
- Provides environment variable override for OpenStreetMap host endpoints.
- Detailed CLI usage and integration notes for use with OpenClaw.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部