
目录
本文以长沙市青年人才公寓项目为实战背景,基于腾讯位置服务(Tencent Maps)与 Trae AI 开发框架,完整实现集空间数据可视化、公寓地图标注、实时天气叠加、动态交互分析于一体的 GIS 可视化平台。文章从需求分析、技术架构、核心代码实现到系统效果全流程拆解,为 WebGIS、智慧城市、AI + 地图开发提供可直接复用的工程实践方案。
长沙作为长江中游重要的区域中心城市,近年持续推进 “强省会” 战略与青年人才集聚工程。截至 2026 年最新数据,全市已建成103 个青年人才公寓项目、34168 套房源,面向 35 周岁以下、全日制专科及以上学历青年人才开放,并配套 “租 6 免 1、最高免 6 个月” 租金优惠政策。

海量公寓房源分布于岳麓、天心、雨花、芙蓉、望城、开福、浏阳、宁乡等各区县及产业园区,传统 Excel 表格、静态图片展示模式存在空间位置不直观、查询效率低、数据联动弱、决策支撑不足等痛点。青年人才难以快速匹配 “区位 — 房源 — 配套”,管理部门也缺乏全局化、可视化的房源监控与规划工具。
GIS(地理信息系统)的核心价值是 “空间 + 属性” 一体化管理与可视化 。将青年人才公寓数据与 GIS 深度融合,可实现三大核心价值:
本项目以腾讯位置服务为地图底座,结合 Trae AI 低代码开发能力,快速构建轻量化、高可用的青年人才公寓 GIS 可视化平台,打通 “数据 — 地图 — 交互 — 分析” 全链路。
构建一个基于腾讯地图的长沙市青年人才公寓可视化平台,实现以下核心目标:

平台数据分为空间数据、业务数据、第三方数据三类,全流程遵循 “采集→清洗→转换→入库→服务→可视化” 标准 GIS 数据链路:

层级 | 名称 | 职责 | 核心组件 |
|---|---|---|---|
第四层 | 展示层 | 用户界面与交互 | 腾讯地图 GL、项目列表、ECharts 图表、天气组件 |
第三层 | 服务接口层 | 外部 API 调用 | Geocoder 地理编码、Search POI 搜索、Weather API |
第二层 | 数据处理层 | Excel 解析与转换 | 大模型Excel 解析器、数据清洗管道、统计聚合引擎、JSON 序列化 |
第一层 | 数据源层 | 原始数据存储 | Excel 文件(12列 × 200+ 行,多级合并单元格) |



Trae 作为字节跳动 AI 编辑器,支持通过Skill(技能) 快速集成第三方服务。本项目通过配置腾讯地图 Skill,实现 AI 直接调用地图能力,大幅降低开发成本。
这里我们首先将腾讯地图的地图SKILL下载到本地,将包含SKILL.MD的文件包含依赖的包压缩成一个压缩包。如下所示:

这里以Trae solo为例,首先在solo中上传并上传SKILL,

将刚才打包的SKILL内容上传后,可以看到如下配置:

当然,不仅可以在这里使用腾讯地图的SKILL,根据我们的需要,还可以添加其他的技能。如下图:

选好趁手的兵器后,接下来就进入实战环节,后续的内容我们大多数都是使用自然语言描述的方式对系统进行交互,让ai调用技能来实现我们的需求。在系统会话界面,首先将我们搜集的人才公寓excel信息上传到系统,然后输入以下提示词:
`invoke_command:/tencentmap-jsapi-gl-skill` 用这个技能帮我: 使用上传的excel文件作为基础数据,基于腾讯地图开发一个长沙市青年人才公寓可视化的项目。功能列表:1、整体分布 :综合展示全市的公寓信息 ,要求美观的地图。2、地图列表查询:支持按照名称查询公寓,并在地图上定位 3、调用附近POI,实现附近关注信息展示。4、综合展示今日天气(所属城市为长沙)。5、增加图谱的数据展示(户型和面积) 要求需要注意excel多行合并的情况,一套公寓项目有多带个不同户型房间的项目。
首先可以看到,大模型会根据我们的指令调用相应的技能,在进行自我思考之后,再来看看它的首轮执行怎么操作:

很清楚的看到,它调用了我们上传的skill,并阅读了他们的真实文档。最终它给出了首轮的执行结果。

大模型对青年人才公寓的excel列表解析后,得到的json数据如下:

在首轮交互完成后,我们来验证结果,看以下能否正常输出系统界面。成功的道路是曲折的,肯定不会一下子就顺心,因此肯定会遇到我们的第一个坎,没有构建成功。

它并没有按照我们的预期,对项目成果进行直观的展示。然后AI会根据自己的验证来进行调整,进入第二轮对话,它依然没有正常展示页面,
修改生成的index.html,页面报错。错误如下:1、draw buffers not supported 2、自定义信息窗体解析错误: content内容无法被解析为DOM,将自动转为默认样式。 3、类型错误: InfoWindow.position参数类型错误,应为TMap.LatLng。4、Uncaught TypeError: Cannot read properties of null (reading 'x')。
接着系统根据我们的提示进行自我修复,最终成功完成系统页面的开发,如下图:

在右侧的编辑窗口中,我们不仅可以预览网页效果,还能查看系统源码,点击源码可以打开如下页面:

其中就可以看到具体的代码,在网页中定义行政区划及其颜色,具体如下:
var districtColors = {
'湘江新区': '#409eff', '芙蓉区': '#67c8ff', '天心区': '#f0a040',
'开福区': '#e06060', '雨花区': '#50d080', '望城区': '#c084fc',
'长沙县': '#f472b6', '宁乡市': '#fbbf24', '浏阳市': '#34d399'
};公寓项目详情展示是一个很重要的功能,除了功能展示还需要实现地理的定位。代码不复杂,就是对获取的数据进行循环,然后输出具体的项目信息。核心代码如下:
// ========== Project List ==========
function renderProjectList(data) {
var container = document.getElementById('projectList');
document.getElementById('listCount').textContent = '共 ' + data.length + ' 个项目';
if (data.length === 0) {
container.innerHTML = '<div class="no-result"><div class="no-result-icon">🔍</div><div>未找到匹配的公寓项目</div></div>';
return;
}
var html = '';
data.forEach(function(p) {
var totalUnits = p.rooms.reduce(function(s, r) { return s + (r.units || 0); }, 0);
var types = [];
p.rooms.forEach(function(r) { if (r.house_type && types.indexOf(r.house_type) === -1) types.push(r.house_type); });
var color = districtColors[p.district] || '#409eff';
html += '<div class="project-item" onclick="selectProject(' + p.id + ')" id="item-' + p.id + '">' +
'<div class="project-name"><span class="project-district" style="background:' + color + '22;color:' + color + ';border:1px solid ' + color + '44">' + p.district + '</span>' + escapeHtml(p.name) + '</div>' +
'<div class="project-address">📍 ' + escapeHtml(p.address) + '</div>' +
'<div class="project-meta">' +
'<span class="project-units">🏠 ' + totalUnits + '套</span>' +
'<span class="project-types">📐 ' + types.join('、') + '</span>' +
(p.policy ? '<span class="project-policy">⏰ ' + p.policy + '</span>' : '') +
'</div></div>';
});
container.innerHTML = html;
}我们不仅可以在地图上展示项目列表,还可以点击项目信息,实现详细信息的查看,实现代码如下:
function showInfoWindow(p) {
if (!p.latLng || !infoWindow) return;
var totalUnits = p.rooms.reduce(function(s, r) { return s + (r.units || 0); }, 0);
var color = districtColors[p.district] || '#409eff';
var content = '<div style="padding:8px 4px;min-width:200px;">' +
'<div style="font-size:15px;font-weight:bold;color:#333;margin-bottom:6px;border-left:3px solid ' + color + ';padding-left:8px;">' + escapeHtml(p.name) + '</div>' +
'<div style="font-size:12px;color:#666;margin-bottom:4px;">📍 ' + escapeHtml(p.address) + '</div>' +
'<div style="font-size:12px;color:#888;margin-top:6px;">' +
'🏠 ' + totalUnits + '套 ⏰ ' + (p.policy || '-') +
'</div></div>';
infoWindow.setPosition(p.latLng);
infoWindow.setContent(content);
infoWindow.open();
}平台采用 “左侧菜单 + 右侧地图” 经典 GIS 布局,底部为版权与数据更新时间。整体风格简洁专业,配色以蓝色(科技)+ 绿色(宜居)为主,适配智慧城市视觉调性。


从建设套数来看,宁乡市以6,127套位居首位,占总量的18.1%;开福区以5,268套紧随其后,占比15.6%;湘江新区以4,922套排名第三,占比14.6%。三个辖区合计贡献了全市近一半的房源供给。芙蓉区建设套数最少,为1,396套,占比4.1%。

单间公寓是绝对主力户型,占总量的64.2%,充分体现了青年人才公寓以小户型为主的定位。宿舍类产品(含宿舍单间、4/6/8/14床位)合计6,208套,占比18.4%,主要面向产业园区企业员工。一室一厅户型2,807套,占比8.3%,为追求独立生活空间的青年提供了更多选择。两室及以上户型合计1,692套,占比5.0%,主要满足已婚青年人才或家庭居住需求。

本项目基于腾讯位置服务 + Trae AI,成功实现长沙市青年人才公寓 GIS 可视化平台,达成以下目标,完整系统演示:
后续可迭代方向:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。