作者: 熊猫钓鱼>_> 发布时间: 已于 2026-05-09 16:47:24 修改
来源: https://blog.csdn.net/ailuloo/article/details/159731331
作为一名经常组织朋友聚会的"社交达人",我遇到了一个看似简单却让人头疼的问题:每次约饭,大家都在问"在哪见?"
这个痛点让我想到了用 AI + 地图能力一站式解决这个问题。
在 WorkBuddy 的帮助下,我从一开始的模糊想法逐步清晰:
“我想做一个多人聚会地点推荐的应用”↓ WorkBuddy 引导分析"建议定位为「AI 驱动的多人智能汇合出行规划平台」,核心功能包括:自然语言交互(用户用说话的方式描述需求)智能汇合点算法(计算最优集合点)MCP Tool Calling 可视化(让 AI 的思考过程透明可见)腾讯地图 GL 3D 展示(专业的地图渲染能力)"
最终,「聚点智行」这个项目诞生了。
在整个开发过程中,WorkBuddy 扮演了多重角色:
如果纯手工开发这个项目,我预估需要:
使用 WorkBuddy 后:
效率提升:约 20-30 倍
使用对话界面如下所示:

最初的想法(我的原始需求):
用户输入地址 → 后台计算中心点 → 返回结果
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 (信息弹窗) │
└─────────────────────────────────────────┘
在与 WorkBuddy 的对话中,我们做了几个重要的技术决策:
我的疑问:“腾讯地图有普通版和 GL 版,有什么区别?”
WorkBuddy 的建议:
“GL 版本支持 WebGL 硬件加速,适合以下场景:3D 建筑渲染(俯视视角效果震撼)大量标记点(MultiMarker 性能更好)热力图、矢量图层等高级可视化流畅的缩放、旋转动画你的项目需要展示多人位置、路线连线、热力图等,强烈建议使用 GL 版本。”
最终选择:https://map.qq.com/api/gljs?v=1.exp
我的疑问:“为什么要用 MCP 协议?直接调 API 不行吗?”
WorkBuddy 的解释:
“MCP (Model Context Protocol) 是 AI Agent 与外部工具通信的标准协议。使用 MCP 的好处:标准化:所有工具调用都遵循统一格式可追溯:AI 的每一步思考和工具调用都有日志可扩展:新增工具只需注册到 MCP Server,无需修改前端可视化:可以实时展示 AI 调用了哪些工具、返回了什么结果这正是你项目的创新点:让用户看到 AI 如何思考。”
我的担忧:“纯前端实现会不会不安全?Key 暴露怎么办?”
WorkBuddy 的方案:
“可以通过以下方式降低风险:Referer 白名单:在腾讯位置服务控制台设置域名限制配额管理:设置每日调用上限,防止恶意刷量生产环境代理:正式部署时可用云函数做一层代理(CloudBase Function)对于参赛作品和 Demo,纯前端架构的优势更明显:零运维成本快速迭代便于评委和用户体验”
执行效果如下:

这是整个项目中最让我自豪的功能——AI 智能行程规划。让我用一个真实案例,带你完整体验 AI 是如何像真人管家一样思考的。
我的输入:
“我在西直门附近开会,4 月 1 日晚 -2 日晚住酒店,请帮我安排一天的吃喝住玩行程”
这个需求看似简单,实则需要 AI 理解多个隐含约束:
AI 思考:
“用户需求:西直门附近开会,4 月 1 日晚 -2 日晚住酒店,需安排一天的吃喝住玩行程。关键约束:① 会议地点在西直门;② 住宿需在西直门附近(步行可达);③ 时间范围:4 月 2 日全天;④ 行程需包含:住宿推荐、三餐、游览景点、出行路线。”
调用工具:geocoder- 解析「西直门」坐标
执行结果:
📍 解析完成:西直门 → 坐标 (39.9434, 116.3497)
位于北京西城区,地铁 2/4/13 号线交汇站
技术解读: 这一步是地理编码(Geocoding),将自然语言中的地名转换为精确的经纬度坐标。西直门作为北京重要交通枢纽,坐标解析精度直接影响后续所有推荐的准确性。
AI 思考:
“以西直门为中心,搜索 1km 范围内的酒店。筛选条件:交通便利、近会议地点、多价位覆盖(商务/经济/精品)。优先靠近地铁和主要商圈的选项。”
调用工具:
执行结果:
🏨 找到 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 构建了一个简单的加权评分模型:
最终凯悦嘉轩综合得分最高。
AI 思考:
“早餐时间:07:30-08:30。酒店含早餐可直接在酒店用餐;若想体验北京本地早餐,庆丰包子铺(0.4km)是性价比极高的选择,¥15/人,5 分钟步行可达。建议:如赶时间直接酒店早餐;如时间充裕体验庆丰包子。”
调用工具:placeSearchNearby- 早餐 POI 搜索(keyword=早餐/包子)
执行结果:
🥟 早餐方案(二选一):
① 酒店自助早餐(含早,免费)
② 庆丰包子铺 (0.4km, ¥15/人) — 北京人气早餐
人性化设计: AI 没有武断地只给一个答案,而是提供了弹性选择:
AI 思考:
“西直门附近步行/骑行可达的景点:北京动物园 (1.2km, 熊猫必看)、北京天文馆 (1.5km)、北京展览馆 (0.9km, 免费)。4 月份天气适宜,动物园户外活动最适合。天文馆适合午后球幕影院。规划路线:会议地点→动物园→天文馆,连续游览。”
调用工具:
执行结果:
🐼 上午行程:
北京动物园 (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 在这里体现了场景化推荐的智慧:
AI 思考:
“下午 14:00-17:00 是最舒适的游览时段。可选路线:① 沿展览路步行回西直门,途经北京展览馆(打卡苏式建筑);② 骑行/地铁南下去白塔寺历史街区(2.8km);③ 凯德购物中心休闲逛街。4 月春日,建议白塔寺文化路线 + 胡同打卡,体验老北京。Manner Coffee 下午茶很适合。”
调用工具:
执行结果:
🚴 下午路线:
天文馆 → 白塔寺街区 (骑行 15min, 2.8km)
↓
胡同漫游 (2 小时)
↓
Manner Coffee 下午茶 (西直门凯德店)
体验设计: 这段行程体现了 AI 对节奏把控的理解:
AI 思考:
“晚餐时间 18:30-20:00。回到西直门附近,选项:① 海底捞 (凯德店,0.6km, ¥150/人)——服务好,适合放松;② 眉州东坡 (西四,1.8km, ¥90/人)——品质川菜;③ 西直门老北京涮肉 (0.2km, ¥80/人)——最近、本地特色。综合考虑:一日游后宜选安静舒适的涮肉,符合北京特色,且距酒店最近(步行 5 分钟)。”
调用工具:
执行结果:
🍲 晚餐推荐:西直门老北京涮肉
💰 ¥80/人
📍 距酒店步行 5 分钟
💡 本地人推荐,正宗老北京味道
决策智慧: 经过一天游玩,AI 选择了:
AI 思考:
“汇总全天行程路线:酒店→动物园→天文馆→午餐→白塔寺→Manner→晚餐→回酒店。总步行/骑行距离约 8.5km,公交/地铁约 3 站,全程可步行 + 骑行 + 地铁混合出行。明天离店时,地铁 4 号线西直门站直达北京南站/首都机场等交通枢纽。”
调用工具:
执行结果:
🗺️ 全日路线汇总:
总距离:约 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,
},
};
当 AI 完成上述 10 步推理后,腾讯地图 GL 引擎会自动执行以下渲染操作:
可视化元素:
交互效果:
当我第一次看到这个完整的行程规划时,真的被惊艳到了:
“这哪里是 AI,简直就是个贴心的私人旅行管家!不仅考虑了地理位置的合理性还考虑了时间节奏的舒适性甚至考虑了预算控制和文化体验最重要的是,我能清楚看到 AI 是如何一步步思考的,这种透明感让我完全信任它的推荐。”
这是项目的核心算法,需要找到一个位置使得所有人的出行距离之和最小。
我的原始想法: “取所有人位置的经纬度平均值?”
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+ 地图的智能进化之路,才刚刚开始。
在移动互联网与智能终端普及的今天,地图SDKSoftware Development Kit,软件开
在智慧城市建设物流路径规划零售选址分析等场景中,高清晰度的卫星地图数据已成为关键支撑。腾讯位置服务提
在数字地图应用中,L4建筑即Level 4建筑层级,对应缩放级别1620的精准渲染直接影响用户体验与