返回顶部
m

map-search地图聚合搜索

更适合中国体质宝宝的地图搜索工具,支持高德、百度、腾讯地图聚合搜索。

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

map-search

🗺️ 地图搜索技能

多地图聚合搜索工具,支持高德、百度、腾讯。

核心代码

python
#!/usr/bin/env python3
地图搜索工具

import os
import json
import requests

========== 配置路径 ==========

CONFIGPATH = os.path.expanduser(~/.config/openclaw/mapconfig.json)

========== 读取配置函数 ==========

def get_config(): 从配置文件读取所有配置(API Keys + 优先级) if os.path.exists(CONFIG_PATH): with open(CONFIG_PATH, r) as f: config = json.load(f) return { api_keys: { amap: config.get(amap, {}).get(api_key, ), baidu: config.get(baidu, {}).get(api_key, ), tencent: config.get(tencent, {}).get(api_key, ) }, priority: config.get(priority, [amap, tencent, baidu]) }

# 回退到环境变量
return {
api_keys: {
amap: os.getenv(AMAPAPIKEY, ),
baidu: os.getenv(BAIDUMAPAPI_KEY, ),
tencent: os.getenv(TENCENTMAPAPI_KEY, )
},
priority: [amap, tencent, baidu]
}

========== 初始化全局变量 ==========

CONFIG = get_config() # 获取配置 APIKEYS = CONFIG[apikeys] # 提取 API Keys PRIORITY = CONFIG[priority] # 提取优先级

AMAPKEY = APIKEYS[amap]
BAIDUKEY = APIKEYS[baidu]
TENCENTKEY = APIKEYS[tencent]

========== 核心搜索函数 ==========

def search_maps(keyword, region=全国, priority=None): 地图聚合搜索 if priority is None: priority = PRIORITY # 使用配置文件中的优先级

results = {}

# 高德搜索
if amap in priority and AMAP_KEY:
url = fhttps://restapi.amap.com/v3/place/text?key={AMAP_KEY}&keywords={keyword}&city={region}&output=json
r = requests.get(url, timeout=5).json()
if r.get(status) == 1:
results[高德] = [{name: p[name], address: p[address], location: p[location]}
for p in r.get(pois, [])[:5]]

# 百度搜索
if baidu in priority and BAIDU_KEY:
url = fhttps://api.map.baidu.com/place/v2/search?query={keyword}®ion={region}&ak={BAIDU_KEY}&output=json
r = requests.get(url, timeout=5).json()
if r.get(status) == 0:
results[百度] = [{name: p[name], address: p.get(address, ), location: p.get(location, )}
for p in r.get(results, [])[:5]]

# 腾讯搜索
if tencent in priority and TENCENT_KEY:
url = fhttps://apis.map.qq.com/ws/place/v1/search?keyword={keyword}®ion={region}&key={TENCENT_KEY}&output=json
r = requests.get(url, timeout=5).json()
if r.get(status) == 0:
results[腾讯] = [{name: p[name], address: p.get(address, ), location: p.get(location, )}
for p in r.get(data, [])[:5]]

return results

========== 主入口 ==========

if name == main: import sys keyword = sys.argv[1] if len(sys.argv) > 1 else 咖啡馆 region = sys.argv[2] if len(sys.argv) > 2 else 上海

results = search_maps(keyword, region)

for source, items in results.items():
print(f\n【{source}】)
for i, item in enumerate(items, 1):
print(f {i}. {item[name]})
print(f 地址: {item[address]})

使用方式

1. 通过 exec 调用

bash python /root/.openclaw/workspace/skills/map-search/map_search.py 咖啡馆 上海

2. 封装成 CLI 工具

bash

创建软链接

ln -s /root/.openclaw/workspace/skills/map-search/map_search.py /usr/local/bin/map-search

直接使用

map-search 火锅 北京 map-search 酒店 深圳

配置文件

路径: ~/.config/openclaw/map_config.json

json
{
amap: {
api_key: 你的高德API Key
},
baidu: {
api_key: 你的百度API Key
},
tencent: {
api_key: 你的腾讯API Key
},
priority: [amap, tencent, baidu]
}

设置优先级

json priority: [amap, tencent, baidu]
  • - amap - 高德
  • baidu - 百度
  • tencent - 腾讯

按数组顺序搜索,找到一个有效结果就停止。

环境变量(备选)

如果配置文件不存在,会回退到环境变量:
bash
export AMAPAPIKEY=你的高德Key
export BAIDUMAPAPI_KEY=你的百度Key
export TENCENTMAPAPI_KEY=你的腾讯Key

API Keys 申请

平台地址
高德https://lbs.amap.com/
百度
https://lbsyun.baidu.com/ | | 腾讯 | https://lbs.qq.com/ |

输出示例

关键词搜索

【高德】
1. 星巴克(人民广场店)
地址: 黄浦区南京西路123号
2. 瑞幸咖啡(来福士店)
地址: 黄浦区西藏中路268号

附近搜索

🔍 附近搜索: 咖啡馆 (半径 2000 米)
正在获取当前位置...
当前位置: 经度 121.47, 纬度 31.23

【高德】
1. 星巴克(人民广场店)
地址: 黄浦区南京西路123号
距离: 520米
2. 瑞幸咖啡(来福士店)
地址: 黄浦区西藏中路268号
距离: 890米

🆕 附近搜索功能

自动获取当前位置(通过 IP 定位)

bash python /root/.openclaw/workspace/skills/map-search/map_search.py --nearby -k 咖啡馆

指定经纬度

bash python /root/.openclaw/workspace/skills/map-search/map_search.py --nearby -k 咖啡馆 --lat 31.230416 --lng 121.473701

指定搜索半径

bash python /root/.openclaw/workspace/skills/map-search/map_search.py --nearby -k 火锅 -r 1000

命令行参数

参数说明示例
--nearby 或 -n启用附近搜索模式--nearby
-k 或 --keyword
搜索关键词 | -k 咖啡馆 | | --lat | 纬度 | --lat 31.230416 | | --lng | 经度 | --lng 121.473701 | | -r 或 --radius | 搜索半径(米,默认2000) | -r 1000 |

使用场景示例

场景命令
搜附近咖啡馆map-search --nearby -k 咖啡馆
搜附近1公里的火锅
map-search --nearby -k 火锅 -r 1000 | | 搜指定位置附近的酒店 | map-search --nearby -k 酒店 --lat 39.9 --lng 116.4 |

注意事项

  • - 需要安装 requests 库: pip install requests
  • 每个地图 API

标签

skill ai

通过对话安装

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

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 map-search-1776420071 技能

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

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

通过命令行安装

skillhub install map-search-1776420071

下载

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

文件大小: 5.53 KB | 发布时间: 2026-4-17 20:00

v1.0.0 最新 2026-4-17 20:00
- 首发版本:聚合高德、百度、腾讯地图,支持关键词及附近搜索。
- 支持通过配置文件或环境变量设置各平台 API Key 与搜索优先级。
- 提供命令行使用方式及参数,支持经纬度、半径、自定义关键词等灵活搜索。
- 新增附近搜索模式,可根据当前位置或指定坐标查找周边地点。
- 输出格式清晰,适合直接终端阅读。

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

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

p2p_official_large
返回顶部