聚点智行:WorkBuddy 辅助开发 AI 地图智能应用实战
一、从痛点到创意:一个真实场景的启发
作为一名经常组织朋友聚会的"社交达人",我遇到了一个看似简单却让人头疼的问题:每次约饭,大家都在问"在哪见?"
- 张三住在回龙观,李四在东直门,王五在南四环,我在中关村 —— 四个人分散在北京四个方向
- 提任何一个人的位置,其他人可能都要跑很远
- 传统导航只能解决"怎么去",但无法回答"在哪汇合最公平"
- 需要在地图 App、美食 App、微信群之间反复横跳
这个痛点让我想到了用 AI + 地图能力一站式解决这个问题。
创意的诞生
在 WorkBuddy 的帮助下,我从一开始的模糊想法逐步清晰:
“我想做一个多人聚会地点推荐的应用”
↓ WorkBuddy 引导分析
"建议定位为「AI 驱动的多人智能汇合出行规划平台」,核心功能包括:
- 自然语言交互(用户用说话的方式描述需求)
- 智能汇合点算法(计算最优集合点)
- MCP Tool Calling 可视化(让 AI 的思考过程透明可见)
- 腾讯地图 GL 3D 展示(专业的地图渲染能力)"
最终,「聚点智行」这个项目诞生了。
二、为什么选择 WorkBuddy?AI 辅助开发的真实体验
2.1 WorkBuddy 的核心能力
在整个开发过程中,WorkBuddy 扮演了多重角色:
| 角色 | WorkBuddy 的贡献 |
|---|---|
| 技术顾问 | 推荐腾讯地图 GL、MCP Server 等技术选型 |
| 架构师 | 设计 AI Intent 识别层 → MCP Tool Calling → 地图可视化的三层架构 |
| 全栈工程师 | 生成 1400+ 行高质量 HTML/JS/CSS代码 |
| 文档助手 | 自动生成 README、功能报告、参赛材料 |
2.2 开发效率对比
如果纯手工开发这个项目,我预估需要:
- 架构设计:2-3 天(查阅文档、技术方案设计)
- 前端开发:5-7 天(地图集成、UI 实现、交互逻辑)
- 算法实现:1-2 天(汇合点算法、路线规划)
- 调试优化:2-3 天
- 文档编写:1-2 天
- 总计:11-17 天
使用 WorkBuddy 后:
- 需求沟通 + 架构设计:1 小时(与 WorkBuddy 对话)
- 代码生成 + 集成:2 小时(WorkBuddy 生成主体代码)
- 调试优化:1 小时(本地预览、微调细节)
- 文档生成:30 分钟(WorkBuddy 自动整理)
- 总计:约 4.5 小时 ⏱️
效率提升:约 20-30 倍
使用对话界面如下所示:
三、技术架构演进:从 0 到 1 的设计过程
3.1 初始方案 vs 最终方案
最初的想法(我的原始需求):
用户输入地址 → 后台计算中心点 → 返回结果
WorkBuddy 引导的架构升级:
经过与 WorkBuddy 的多轮对话,我们共同设计了更完善的架构:
┌─────────────────────────────────────────┐
│ 用户交互层 (UI) │
│ 自然语言输入框 + 快捷按钮 + 地图视图 │
└──────────────┬──────────────────────────┘
│ 用户输入:"帮 4 个人找汇合点"
▼
┌─────────────────────────────────────────┐
│ AI Intent 识别层 (Agent) │
│ 意图分类:汇合/搜索/导航/热力/行程规划 │
└──────────────┬──────────────────────────┘
│ Tool Calling (MCP 协议)
▼
┌─────────────────────────────────────────┐
│ 腾讯位置服务 MCP Server │
│ ┌──────────┐ ┌──────────────────┐ │
│ │ geocoder │ │ placeSearchNearby│ │
│ └──────────┘ └──────────────────┘ │
│ ┌──────────────────┐ ┌─────────┐ │
│ │ directionDriving │ │ matrix │ │
│ └──────────────────┘ └─────────┘ │
│ ... 14+ 种地图工具 │
└──────────────┬──────────────────────────┘
│ 结构化数据返回
▼
┌─────────────────────────────────────────┐
│ 腾讯地图 JavaScript API GL (渲染层) │
│ • MultiMarker (高性能标记图层) │
│ • MultiPolyline (路线绘制) │
│ • MultiCircle (范围圆) │
│ • visualization.Heat (热力图) │
│ • InfoWindow (信息弹窗) │
└─────────────────────────────────────────┘
3.2 关键技术决策
在与 WorkBuddy 的对话中,我们做了几个重要的技术决策:
决策 1:为什么选择腾讯地图 GL 而不是普通版?
我的疑问:“腾讯地图有普通版和 GL 版,有什么区别?”
WorkBuddy 的建议:
"GL 版本支持 WebGL 硬件加速,适合以下场景:
- 3D 建筑渲染(俯视视角效果震撼)
- 大量标记点(MultiMarker 性能更好)
- 热力图、矢量图层等高级可视化
- 流畅的缩放、旋转动画
你的项目需要展示多人位置、路线连线、热力图等,强烈建议使用 GL 版本。"
最终选择:https://map.qq.com/api/gljs?v=1.exp
决策 2:MCP Tool Calling 的价值
我的疑问:“为什么要用 MCP 协议?直接调 API 不行吗?”
WorkBuddy 的解释:
"MCP (Model Context Protocol) 是 AI Agent 与外部工具通信的标准协议。使用 MCP 的好处:
- 标准化:所有工具调用都遵循统一格式
- 可追溯:AI 的每一步思考和工具调用都有日志
- 可扩展:新增工具只需注册到 MCP Server,无需修改前端
- 可视化:可以实时展示 AI 调用了哪些工具、返回了什么结果
这正是你项目的创新点:让用户看到 AI 如何思考。"
决策 3:零后端架构的可行性
我的担忧:“纯前端实现会不会不安全?Key 暴露怎么办?”
WorkBuddy 的方案:
"可以通过以下方式降低风险:
- Referer 白名单:在腾讯位置服务控制台设置域名限制
- 配额管理:设置每日调用上限,防止恶意刷量
- 生产环境代理:正式部署时可用云函数做一层代理(CloudBase Function)
对于参赛作品和 Demo,纯前端架构的优势更明显:
- 零运维成本
- 快速迭代
- 便于评委和用户体验"
执行效果如下:

四、核心功能实战:西直门一日行程完整案例
这是整个项目中最让我自豪的功能——AI 智能行程规划。让我用一个真实案例,带你完整体验 AI 是如何像真人管家一样思考的。
4.1 用户需求:一个典型的商务出行场景
我的输入:
“我在西直门附近开会,4 月 1 日晚 -2 日晚住酒店,请帮我安排一天的吃喝住玩行程”
这个需求看似简单,实则需要 AI 理解多个隐含约束:
- ✅ 会议地点在西直门(地理约束)
- ✅ 住宿要在会议地点附近(步行可达)
- ✅ 时间范围:4 月 2 日全天(时间约束)
- ✅ 行程要包含:住宿、三餐、景点、交通(完整性约束)
4.2 AI 的思维链推理过程(10 步完整拆解)
第①步:解析用户需求
AI 思考:
“用户需求:西直门附近开会,4 月 1 日晚 -2 日晚住酒店,需安排一天的吃喝住玩行程。关键约束:① 会议地点在西直门;② 住宿需在西直门附近(步行可达);③ 时间范围:4 月 2 日全天;④ 行程需包含:住宿推荐、三餐、游览景点、出行路线。”
调用工具:geocoder - 解析「西直门」坐标
执行结果:
📍 解析完成:西直门 → 坐标 (39.9434, 116.3497)
位于北京西城区,地铁 2/4/13 号线交汇站
技术解读:
这一步是地理编码(Geocoding),将自然语言中的地名转换为精确的经纬度坐标。西直门作为北京重要交通枢纽,坐标解析精度直接影响后续所有推荐的准确性。
第②步:检索周边住宿选项
AI 思考:
“以西直门为中心,搜索 1km 范围内的酒店。筛选条件:交通便利、近会议地点、多价位覆盖(商务/经济/精品)。优先靠近地铁和主要商圈的选项。”
调用工具:
placeSearchNearby- 周边酒店 POI 检索(radius=1000m)placeDetail- 获取酒店详细信息
执行结果:
🏨 找到 3 家推荐酒店:
1. 凯悦嘉轩 (★★★★★) - 高端商务
2. 如家 (★★★) - 经济型
3. 展览路精品 (★★★★) - 特色民宿
均在步行 5-15 分钟范围内
代码实现思路:
// WorkBuddy 生成的周边搜索逻辑
async function searchNearbyHotels(center, radius = 1000) {
const result = await mcpCall('placeSearchNearby', {
keyword: '酒店',
location: `${center.lat},${center.lng}`,
radius: radius,
page_size: 10,
});
// 过滤和排序:优先高评分、近距离
return result.pois
.filter(poi => poi.rating >= 4.0)
.sort((a, b) => a.distance - b.distance);
}
第③步:推理住宿选择依据
AI 思考:
“综合考虑:① 凯悦嘉轩最近(0.3km),设施最好,适合商务出行;② 如家性价比最高,近地铁 4 号线;③ 展览路精品安静,靠近动物园景区。根据开会场景,推荐凯悦嘉轩——既近会议地点,又方便第二天游览。”
推荐结果:
✅ 推荐住宿:北京西直门凯悦嘉轩酒店
💰 ¥688/晚(含早餐)
📍 距会议地点 0.3km,步行 5 分钟
🚇 近地铁 2/4/13 号线西直门站
推理逻辑:
这是典型的多因素决策问题。AI 构建了一个简单的加权评分模型:
- 距离权重 40%(越近越好)
- 价格权重 30%(性价比)
- 评分权重 20%(用户口碑)
- 设施权重 10%(商务配套)
最终凯悦嘉轩综合得分最高。
第④步:规划早餐方案
AI 思考:
“早餐时间:07:30-08:30。酒店含早餐可直接在酒店用餐;若想体验北京本地早餐,庆丰包子铺(0.4km)是性价比极高的选择,¥15/人,5 分钟步行可达。建议:如赶时间直接酒店早餐;如时间充裕体验庆丰包子。”
调用工具:placeSearchNearby - 早餐 POI 搜索(keyword=早餐/包子)
执行结果:
🥟 早餐方案(二选一):
① 酒店自助早餐(含早,免费)
② 庆丰包子铺 (0.4km, ¥15/人) — 北京人气早餐
人性化设计:
AI 没有武断地只给一个答案,而是提供了弹性选择:
- 商务人士时间紧张 → 酒店早餐(省时)
- 游客想体验当地文化 → 庆丰包子(体验感)
第⑤步:检索上午游览景点
AI 思考:
“西直门附近步行/骑行可达的景点:北京动物园 (1.2km, 熊猫必看)、北京天文馆 (1.5km)、北京展览馆 (0.9km, 免费)。4 月份天气适宜,动物园户外活动最适合。天文馆适合午后球幕影院。规划路线:会议地点→动物园→天文馆,连续游览。”
调用工具:
placeSearchNearby- 景区 POI 搜索(radius=3000m)directionWalking- 步行路线规划:酒店→动物园
执行结果:
🐼 上午行程:
北京动物园 (9:00-11:30, 2.5 小时)
↓ 步行 1.2km 约 15 分钟
北京天文馆 (12:30 参加球幕影院)
路线优化:
这里 AI 运用了贪心算法思想:
- 优先选择知名度最高的景点(动物园熊猫馆)
- 选择邻近景点减少路途时间(天文馆紧邻动物园)
- 考虑开放时间匹配(动物园上午开放,天文馆下午有球幕电影)
第⑥步:安排午餐
AI 思考:
“午餐时间约 12:00。动物园附近选项:园内餐厅(方便但偏贵);园外’胡同里的烤鸭’(1.1km, ¥120/人),正宗北京烤鸭,4 月旺季需提前预约。另一选项:附近便餐(¥40-60/人)节省时间。推荐:正宗北京烤鸭,符合’吃’的打卡感,适合 4 月旅行心情。”
调用工具:placeSearchNearby - 午餐 POI 搜索(烤鸭/中餐厅)
执行结果:
🦆 午餐推荐:胡同里的烤鸭
💰 ¥120/人
📍 动物园附近,步行 10 分钟
💡 正宗北京烤鸭,建议提前预约
推荐策略:
AI 在这里体现了场景化推荐的智慧:
- 不是简单地找"最近的餐厅"
- 而是考虑"来北京旅游必吃烤鸭"的文化属性
- 价格适中(¥120/人),符合一日游预算
第⑦步:规划下午茶与漫游路线
AI 思考:
“下午 14:00-17:00 是最舒适的游览时段。可选路线:① 沿展览路步行回西直门,途经北京展览馆(打卡苏式建筑);② 骑行/地铁南下去白塔寺历史街区(2.8km);③ 凯德购物中心休闲逛街。4 月春日,建议白塔寺文化路线 + 胡同打卡,体验老北京。Manner Coffee 下午茶很适合。”
调用工具:
directionBicycling- 骑行路线:天文馆→白塔寺placeSearchNearby- 咖啡/茶饮 下午茶选项
执行结果:
🚴 下午路线:
天文馆 → 白塔寺街区 (骑行 15min, 2.8km)
↓
胡同漫游 (2 小时)
↓
Manner Coffee 下午茶 (西直门凯德店)
体验设计:
这段行程体现了 AI 对节奏把控的理解:
- 上午体力充沛 → 步行较多(动物园 + 天文馆)
- 午后容易疲劳 → 骑行减少体力消耗
- 傍晚需要休息 → 咖啡厅小憩
第⑧步:安排晚餐
AI 思考:
“晚餐时间 18:30-20:00。回到西直门附近,选项:① 海底捞 (凯德店,0.6km, ¥150/人)——服务好,适合放松;② 眉州东坡 (西四,1.8km, ¥90/人)——品质川菜;③ 西直门老北京涮肉 (0.2km, ¥80/人)——最近、本地特色。综合考虑:一日游后宜选安静舒适的涮肉,符合北京特色,且距酒店最近(步行 5 分钟)。”
调用工具:
placeSearchNearby- 晚餐 POI 搜索(涮肉/火锅/中餐)directionWalking- 步行:白塔寺→西直门涮肉
执行结果:
🍲 晚餐推荐:西直门老北京涮肉
💰 ¥80/人
📍 距酒店步行 5 分钟
💡 本地人推荐,正宗老北京味道
决策智慧:
经过一天游玩,AI 选择了:
- 最近(0.2km):减少最后一段路程负担
- 最特色(老北京涮肉):强化旅行记忆点
- 最舒适(非网红店):避免排队等待
第⑨步:计算全日行程路线总览
AI 思考:
“汇总全天行程路线:酒店→动物园→天文馆→午餐→白塔寺→Manner→晚餐→回酒店。总步行/骑行距离约 8.5km,公交/地铁约 3 站,全程可步行 + 骑行 + 地铁混合出行。明天离店时,地铁 4 号线西直门站直达北京南站/首都机场等交通枢纽。”
调用工具:
matrix- 多点距离矩阵计算directionDriving- 全日路线汇总规划
执行结果:
🗺️ 全日路线汇总:
总距离:约 8.5km
出行方式:步行 + 共享单车 + 地铁
预计总出行时间:1.5 小时
技术亮点:
这里使用了距离矩阵 API,一次性计算多个点之间的距离和耗时,避免了多次单独调用的开销。
第⑩步:生成结构化行程单
AI 思考:
“将所有规划结果整合为结构化行程单,包含时间节点、地点、费用估算、交通方式。确保行程时间合理(不过于紧凑),留有弹性时间。总费用估算:住宿 688 + 餐饮约 310 + 景点 75 + 其他 50 ≈ ¥1,123/人。”
最终输出:




📋 西直门一日行程单 · 4 月 1 日晚 -2 日晚
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
预计总费用:¥1,123/人
【4 月 1 日】
晚 🏨 入住酒店
北京西直门凯悦嘉轩酒店 · ¥688/晚
📍 距会议地点步行 5 分钟 · 含早餐
【4 月 2 日】
07:30 🥟 早餐
庆丰包子铺 (0.4km) 或 酒店自助早餐
💰 ¥15-60/人
09:30 🐼 北京动物园
步行 15 分钟 (1.2km) · 游览 2 小时
🎫 门票¥20 · 熊猫馆必去
12:00 🦆 午餐:北京烤鸭
胡同里的烤鸭 (动物园旁 · 步行 10 分钟)
💰 ¥120/人 · 提前预约
13:30 🔭 北京天文馆
步行 5 分钟 (0.3km) · 球幕影院 1.5 小时
🎫 门票¥35 · 建议预约场次
15:00 🚴 骑行至白塔寺
共享单车骑行 15 分钟 (2.8km)
⛩️ 白塔寺历史街区·胡同漫游 2 小时
16:30 ☕ 下午茶
Manner Coffee(西直门凯德) · ¥35/杯
步行返回西直门途中
18:30 🍲 晚餐:老北京涮肉
西直门老北京涮肉 (步行 5 分钟)
💰 ¥80/人 · 本地特色
【4 月 2 日】
晚 🌙 继续住宿 / 离店
酒店休息 · 4 号线西直门站可达北京南站/机场
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💰 全日费用明细:
住宿:¥688
餐饮:¥310(早餐 15+ 午餐 120+ 下午茶 35+ 晚餐 80+ 其他 60)
景点:¥75(动物园 20+ 天文馆 35+ 其他 20)
交通:¥50(共享单车 + 地铁)
总计:¥1,123/人
技术实现:
// WorkBuddy 生成的行程单结构化数据
const itinerary = {
title: '西直门一日行程单',
dateRange: '4 月 1 日晚 -2 日晚',
totalCost: 1123,
items: [
{
time: '4 月 1 日 晚',
type: 'accommodation',
title: '入住酒店',
name: '北京西直门凯悦嘉轩酒店',
cost: 688,
distance: '0.3km',
tags: ['商务', '近地铁', '含早'],
},
{
time: '07:30',
type: 'meal',
title: '早餐',
options: [
{ name: '酒店自助早餐', cost: 0 },
{ name: '庆丰包子铺', cost: 15, distance: '0.4km' },
],
tags: ['北京特色'],
},
// ... 更多节点
],
costBreakdown: {
accommodation: 688,
meals: 310,
attractions: 75,
transport: 50,
},
};
4.3 地图可视化效果
当 AI 完成上述 10 步推理后,腾讯地图 GL 引擎会自动执行以下渲染操作:
可视化元素:
- 酒店标记(蓝色图钉):西直门凯悦嘉轩酒店位置
- 景点标记(绿色五角星):动物园、天文馆、白塔寺
- 餐厅标记(橙色刀叉图标):早餐、午餐、晚餐地点
- 路线连线:
- 步行路线(绿色实线)
- 骑行路线(青色虚线)
- 全程轨迹(蓝色箭头线)
- 信息窗口:点击每个标记显示详情(名称、费用、时间)
交互效果:
- 地图自动
fitBounds()所有标记点,确保全部可见 - 按时间顺序依次弹出标记动画,形成"故事线"
- 右侧同步显示思维链推理过程卡片
当我第一次看到这个完整的行程规划时,真的被惊艳到了:
"这哪里是 AI,简直就是个贴心的私人旅行管家!
- 不仅考虑了地理位置的合理性
- 还考虑了时间节奏的舒适性
- 甚至考虑了预算控制和文化体验
最重要的是,我能清楚看到 AI 是如何一步步思考的,这种透明感让我完全信任它的推荐。"
五、核心技术实现:WorkBuddy 如何帮我写代码
5.1 多人最优汇合点算法
这是项目的核心算法,需要找到一个位置使得所有人的出行距离之和最小。
我的原始想法:
“取所有人位置的经纬度平均值?”
WorkBuddy 的实现:
// WorkBuddy 生成的加权地理重心算法
function calcMeetingPoint(people) {
// 基础版:几何中心
const lat = people.reduce((sum, p) => sum + p.location.getLat(), 0) / people.length;
const lng = people.reduce((sum, p) => sum + p.location.getLng(), 0) / people.length;
return new TMap.LatLng(lat, lng);
}
// 进阶版:Haversine 球面距离(考虑地球曲率)
function haversineKm(a, b) {
const R = 6371; // 地球半径 (km)
const dLat = (b.getLat() - a.getLat()) * Math.PI / 180;
const dLng = (b.getLng() - a.getLng()) * Math.PI / 180;
const x = Math.sin(dLat/2)**2 +
Math.cos(a.getLat()*Math.PI/180) * Math.cos(b.getLat()*Math.PI/180) *
Math.sin(dLng/2)**2;
return R * 2 * Math.atan2(Math.sqrt(x), Math.sqrt(1-x));
}
六、总结
做完这个项目,我最大的感受是:AI 让地图从「工具」进化为能思考、会对话的「大脑」。当用户输入"帮 4 个人找汇合点"时,腾讯地图 JavaScript API GL 不再只是被动渲染坐标,而是通过 MCP Tool Calling 主动理解需求、调用 geocoder 解析地址、用 matrix 计算距离矩阵、最后驱动 MultiMarker 和 MultiPolyline 在地图上绘制出最优方案。这种从"你点什么它显示什么"到"你说需求它给方案"的转变,才是 AI Native 地图应用该有的样子。
技术实现上,我深度结合了腾讯位置服务 Map Skills 体系下的多个工具:tencentmap-jsapi-gl-skill负责 3D 地图渲染和高性能图层管理,tencentmap-webservice-skill提供 POI 搜索、路线规划、逆地理编码等能力,而MCP Server则作为 AI Agent 与这些工具通信的标准协议。当 AI 接收到用户需求后,它会像人类一样思考——先解析意图(汇合/搜索/导航),再决定调用哪些工具(geocoder/placeSearchNearby/direction),最后综合结果生成结构化行程单。这种"感知→思考→行动"的闭环,让地图真正拥有了"大脑"。
如果你也在探索 AI+ 地图的可能性,我的建议是:别把 MCP 当噱头,要让它真正解决用户的焦虑。我的这款旅行地图智能体应用解决了行程规划问题,之所以打动人,不是因为调用了多少高大上的 API,而是它像一个真正的旅行管家那样思考——考虑时间节奏、控制预算分配、甚至预判体力消耗。技术的终极价值,永远在于它能给多少人带来便利和温暖。
AI+ 地图的智能进化之路,才刚刚开始。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)