地图技能:免费地理编码与路线规划 - Openclaw Skills

作者:互联网

2026-03-30

AI教程

什么是 地图?

地图技能是 Openclaw Skills 的一个多功能扩展,使 AI 代理能够处理经纬度坐标、距离和出行路线等地理数据。通过利用 OSRM 和 Nominatim (OpenStreetMap) 等开源服务,它为付费地图服务提供了一个强大的替代方案,允许开发者将位置感知集成到工作流中,而无需承担 API 密钥管理的开销。此技能对于涉及物流、旅行规划或自动化环境内空间数据分析的任务特别有用。

该技能旨在轻量化且易于访问,允许用户将人类可读的地址转换为精确的坐标,并计算它们之间的最有效路径。无论您是在构建旅行助手还是快递追踪器,此工具都为 Openclaw Skills 用户简化了空间计算的复杂性。

下载入口:https://github.com/openclaw/skills/tree/main/skills/adhishthite/maps-osrm

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install maps-osrm

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 maps-osrm。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

地图 应用场景

  • 将人类可读的地址或地标转换为精确的纬度和经度坐标。
  • 计算驾车、步行或骑行的旅行距离和预计时长。
  • 为物流规划或行程创建生成路由数据。
  • 验证位置是否存在,并获取全球地点的标准化显示名称。
地图 工作原理
  1. 接收来自用户的位置查询(例如,“从伦敦到曼彻斯特有多远?”)。
  2. 利用地理编码脚本将地名转换为数值型的纬度和经度对。
  3. 将坐标输入距离脚本,并指定首选的出行模式(驾车、步行或自行车)。
  4. 从 API 响应中提取以公里为单位的距离和以分钟为单位的出行时长。
  5. 向用户展示格式化的空间数据,或将其用于进一步的代理逻辑。

地图 配置指南

确保您的系统已安装 python3 (3.6+)。此 Openclaw Skills 技能使用公共端点,因此不需要 API 密钥。

# 验证 python 安装
python3 --version

# 对位置进行地理编码以获取坐标
bash scripts/geocode.sh "Times Square, New York"

# 计算两点之间的距离 (纬度,经度)
bash scripts/distance.sh 40.7580,-73.9855 40.6413,-73.7781 driving

地图 数据架构与分类体系

该技能主要通过处理并返回结构化地理数据的 CLI 脚本运行。

组件 数据输入 数据输出
地理编码器 地名字符串 纬度、经度、显示名称
距离计算器 纬度/经度对 + 模式 距离 (km), 时长 (min)
逻辑流 用户查询 格式化的出行摘要

元数据包含 Openclaw Skills 对特定二进制依赖项(如 python3)的要求,以确保脚本在本地环境中正确执行。

name: maps
description: Distance, routing, and geocoding using free APIs (OSRM + Nominatim/OSM). Use when the user asks about distance between places, travel time, directions, how far something is, or needs to convert a place name to coordinates. No API key required. Requires python3 (3.6+).
metadata:
  openclaw:
    requires:
      bins: [python3]

Maps

Free distance/routing (OSRM) and geocoding (Nominatim/OSM). No API keys needed.

Geocoding (place name → coordinates)

bash scripts/geocode.sh "Times Square, New York"

Returns lat,lon and display name. Use this first when you have place names instead of coordinates.

Distance & Route

bash scripts/distance.sh , , [mode]

Modes: driving (default), foot, bicycle

Examples:

# Manhattan to JFK Airport
bash scripts/distance.sh 40.7580,-73.9855 40.6413,-73.7781 driving

# Golden Gate Park to Fisherman's Wharf (walking)
bash scripts/distance.sh 37.7694,-122.4862 37.8080,-122.4177 foot

Workflow

  1. If user gives place names → geocode both with geocode.sh
  2. Use returned lat,lon pairs with distance.sh
  3. Report distance in km and duration in minutes

Limits

  • OSRM: free public demo server, no hard rate limit but be reasonable
  • Nominatim: max 1 request/second (OSM policy), include User-Agent
  • No live traffic data — durations are estimates based on road type/speed
  • Routing is road-network only (no public transit)