Axure 原型落地 HTML:基于 Trae Solo 实现 GIS 多级行政区划切换全流程实践

目录

一、前言

[1. Axure产品设计介绍](#1. Axure产品设计介绍)

[2. 从设计到界面实现](#2. 从设计到界面实现)

二、实际需求是什么

[1. 行政区划切换场景](#1. 行政区划切换场景)

[2. 可参考的界面](#2. 可参考的界面)

[三、基于Trae Solo的实现](#三、基于Trae Solo的实现)

[1. 系统提示词](#1. 系统提示词)

[2. 细节的完善](#2. 细节的完善)

[3. 源码简介](#3. 源码简介)

[4. 关键代码解析](#4. 关键代码解析)

(1)地图初始化

(2)区划切换核心逻辑

四、成果展示

[1. 整体展示](#1. 整体展示)

[2. 省份动态切换](#2. 省份动态切换)

五、总结

六、写在最后


一、前言

1. Axure产品设计介绍

在政企类GIS项目或者常规软件项目团队中,Axure RP基本是产品经理的标配工具。相比于墨刀、Figma这类轻量化工具,Axure的功能上限更高,除了常规的页面布局、样式排版之外,还支持动态面板、自定义变量、条件交互等高级功能,完全足以制作高保真的可交互原型。日常项目里,我们团队的协作模式很固定:产品通过Axure绘制整套GIS系统页面,包含地图容器、区划选择器、数据统计面板、弹窗提示等模块,同时提前定义好下拉联动、地图点击下钻等交互逻辑。这样做最大的好处就是统一全员认知,从需求源头确定UI样式和交互规则,减少后期反复改需求、来回扯皮的问题。

但Axure的局限性也非常明显。它导出的HTML文件只能用来做需求演示,代码杂乱冗余、内联样式满天飞,耦合程度极高,完全没办法直接接入正式项目。最关键的一点,Axure本身不具备地理信息处理能力,没法完成地图渲染、行政区划加载、坐标解析这类GIS专属操作,做不了真实可用的交互功能。

2. 从设计到界面实现

聊聊传统开发模式的痛点,相信各位同行都能感同身受。常规流程简单来说就是:产品输出Axure原型→前端手动拆解页面组件、重写HTML和CSS→独立开发地图区划功能→反复调试样式适配原型。光是复刻页面布局和样式,就要耗费大半天时间,后续还要对接GIS功能、调试兼容问题。一个简单的多级区划页面,从零开发至少需要1~2个工作日,大量时间都浪费在重复性的基础工作上,性价比极低。

这次借助Trae Solo打通Axure设计到代码落地的链路,彻底舍弃手动复刻页面的老旧模式,核心优势主要有三点:

  • 直接复用原型UI:上传Axure导出的截图,AI会自动解析页面布局、配色、组件尺寸,还原原型样式,无需再编写基础布局与样式代码;

  • 针对性补齐GIS能力:依托Trae Solo智能编码能力,直接集成Leaflet地图与GeoJSON行政区划数据,补充Axure缺失的地图渲染、多级下钻、区域高亮等核心地理交互功能;

  • 产出高质量可维护代码:自动清理Axure自带的无效冗余代码,输出结构分层清晰、命名规范的前端代码。我们只需要微调少量交互参数,就能直接上线,实测开发效率能提升70%以上。

二、实际需求是什么

1. 行政区划切换场景

多级行政区划切换几乎是所有GIS数据可视化项目的标配功能,不管是政务数据大屏、区域资源监控,还是点位统计、权限管理,基本都会用到省市区三级联动、地图下钻能力。下面以天地图应用为例:

本次开发基于团队真实业务需求,我把需求拆解为三个简单直白的要点:

  • 页面结构:沿用Axure原型设计,上层放置行政区划联选择器,底层为地图展示区域;

  • 双向联动:支持两种操作方式,一是下拉选择区划自动定位高亮对应地图区域,二是点击地图行政区划,自动同步更新左侧下拉框选项;

2. 可参考的界面

结合当前主流的在线地图网站、业内主流政务大屏、后台GIS系统的设计风格,同时参考产品给出的Axure原型,最终敲定界面设计规范,整体偏向政企项目通用风格,不做花里胡哨的多余装饰:

  • 整体色调:深色背景搭配蓝色高亮主题,这也是GIS大屏最常用的配色方案,既能弱化视觉干扰,也能更好凸显地图层级;

  • 交互细节:鼠标悬浮区域展示Tooltip提示,显示地区名称与行政编码;层级切换时加入渐变缩放动画,规避生硬跳转的问题。

整体设计以实用性为主,适配内部管理系统、政务可视化项目的使用场景,符合常规GIS项目的审美与使用习惯。

三、基于Trae Solo的实现

本节即将重点介绍如何基于Trae Solo来实现这个需求,众所周知,Trae Solo是一款字节跳动下的AI编辑器。我们可以基于Trae Solo来实现以上的需求。提供公共效率,本节将实际介绍具体的开发过程。

1. 系统提示词

用过AI编程工具的朋友都知道,提示词直接决定最终代码质量。直白来说,提示词描述越精准,后期我们修改调试的工作量就越少。下面分享我本次实操用到的完整提示词,大家可以直接复制使用,在填写提示词之前,首先我们来准备一下Axure的原型图,如下图:

然后在Trae Solo中输入以下提示词:

基于Leaflet和jquery实现在地图上进行行政区划切换,筛选的组件。可以悬浮于界面右上角,支持打开和关闭。

页面操作逻辑:

1、行政区划层次展示条,默认显示中国,下面的行政区划列表默认展示所有省份。

2、下面的行政区划需要携带层级概念,比如1表示省,2表示市,下面行政区划点击时,自动查询下级行政区信息列表。同时将点击的行政区添加到层次展示条中。点击层次展示条时,下面同样支持自动更新。

3、行政区划信息可以动态扩展。

在Trae中输入以上提示词后,可以看到编辑器就开始了一下输出:

经过Trae自己的思考之后,就进行以下的操作:

bash 复制代码
eate distinctive, production-grade frontend interfaces with high design quality. 
Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI).
 Generates creative, polished code and UI design that avoids generic AI aesthetics.

最后Trae会得到一个初稿,能够初始化一个初始界面。但是还存在一些问题,下面我们来进行解决。

功能 说明
悬浮面板 右上角圆形按钮控制面板的打开/关闭,支持点击外部自动关闭
层级展示条 面包屑形式展示当前路径(如 中国 / 广东省 / 广州市),点击可回退到任意层级
行政区划列表 以标签(Chip)形式展示下级区划,带层级数字徽章(1=省, 2=市, 3=区县)
地图联动 点击区划后地图自动飞行定位到对应坐标,并按层级调整缩放级别
动态扩展 提供 window.extendRegionData()window.addRegionChild() 接口,可在运行时动态增删区划数据

程序交互逻辑如下:

  1. 默认显示 中国,下方列出省份
  2. 点击任意区划 → 加载其下级列表 → 添加到层级条 → 地图定位
  3. 点击层级条中的任意节点 → 回退到该层级 → 下方列表同步更新
  4. 到达最底层时显示"已到达最底层行政区划"

直接打开 index.html 即可在浏览器中预览效果。

2. 细节的完善

Trae Solo一次性就帮我完成了页面还原和基础区划功能,但AI生成的代码无法适配所有业务场景,我结合项目实际情况,做了几处细节微调,也是整个开发流程中最核心的手动优化步骤:

  • 样式统一优化:清理Axure残留的多余内联样式,统一下拉框圆角、阴影、悬浮样式;微调地图容器内边距,解决部分场景下地图边界被组件遮挡的问题;

  • 地图参数调优:默认的地图底图的加载使用OSM的底图,这明显不符合要求,这里我们替换成高德地图在线地图;

    bash 复制代码
    `#L460-460` 默认加载在线瓦片地址修改为高德地图
  • 窗口适配优化:优化小尺寸浏览器窗口适配逻辑,当窗口宽度低于阈值时,页面实现自适应,适配小屏设备预览。

除此之外,还可能遇到界面无法切换的问题,如果遇到这种问题,我们可以使用自然语言进行交互,让编辑器进行调整优化。

3. 源码简介

最终产出的项目源码结构很简单,纯前端项目、无需后端接口、无需额外搭建运行环境,零基础就能直接运行,我简单梳理下目录结构:

javascript 复制代码
/workspace/
├── index.html           # 中国行政区划版(保留)
├── css/
│   └── index.css       # 全部样式(含详细区块注释)
├── js/
│   └── index.js        # 全部逻辑(含详细函数注解)
└── README.md            # 项目文档

运行方式也十分简单:下载源码解压后,用VSCode、HBuilder直接打开index.html启动预览即可;也可以直接部署到Nginx、静态托管平台,全程零配置。根据个人的技术栈和储备合理选择。

4. 关键代码解析

我把项目里最核心的三段代码拆解出来,大家可以直接复制复用,省去自己重复编写的时间,下面逐一讲解:

(1)地图初始化

初始化地图实例,加载全国地图数据,配置tooltip、地图底色、边框样式等基础参数,同时监听窗口大小变化实现自适应:

javascript 复制代码
 $(function() {
            // ==================== 数据层 ====================
            // 行政区划数据(可动态扩展)
            const regionData = {
                '中国': {
                    level: 0,
                    code: '100000',
                    children: ['北京市', '上海市', '天津市', '重庆市', '河北省', '河南省', '湖北省', '湖南省', '浙江省', '江苏省', '广东省', '广西壮族自治区', '西藏自治区']
                },
                '北京市': {
                    level: 1,
                    code: '110000',
                    latlng: [39.9042, 116.4074],
                    children: ['东城区', '西城区', '朝阳区', '丰台区', '石景山区', '海淀区', '门头沟区', '房山区', '通州区', '顺义区', '昌平区', '大兴区', '怀柔区', '平谷区', '密云区', '延庆区']
                }
            };
            // 层级名称映射
            const levelNames = {
                0: '国',
                1: '省',
                2: '市',
                3: '区/县'
            };
            // ==================== 状态管理 ====================
            let currentPath = ['中国']; // 当前路径
            let isPanelOpen = false;
            // ==================== 地图初始化 ====================
            const map = L.map('map', {
                center: [35.8617, 104.1954],
                zoom: 4,
                zoomControl: false
            });
            L.tileLayer('https://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}', {
                attribution: '© 高德地图',
                subdomains: ['1', '2', '3', '4'],
                maxZoom: 18
            }).addTo(map);
            L.control.zoom({ position: 'bottomright' }).addTo(map);
            // 当前标记
            let currentMarker = null;
}

(2)区划切换核心逻辑

监听地图点击事件,根据当前区域行政编码动态加载下级行政区划数据,实现从全国到区县的层级下钻,区县层级暂时禁止继续下钻:

javascript 复制代码
// 显示/隐藏加载
function showLoading() {
    $('#loadingOverlay').addClass('show');
}

function hideLoading() {
    $('#loadingOverlay').removeClass('show');
}

// 切换面板
function togglePanel() {
    isPanelOpen = !isPanelOpen;
    $('#regionPanel').toggleClass('open', isPanelOpen);
    $('#regionToggleBtn').toggleClass('active', isPanelOpen);
}

function openPanel() {
    isPanelOpen = true;
    $('#regionPanel').addClass('open');
    $('#regionToggleBtn').addClass('active');
}

function closePanel() {
    isPanelOpen = false;
    $('#regionPanel').removeClass('open');
    $('#regionToggleBtn').removeClass('active');
}
// ==================== 事件绑定 ====================
$('#regionToggleBtn').on('click', togglePanel);
$('#closePanelBtn').on('click', closePanel);

四、成果展示

1. 整体展示

最终交付的页面为深色大屏风格、上下分栏布局、组件样式都全部具备。从性能层面来看,页面无冗余无效代码,首次加载耗时不足300ms,运行十分流畅;同时完美适配Chrome、Edge两大主流浏览器,窗口缩放时所有组件自动适配布局。最直观的提升就是开发周期,借助Trae Solo之后,从原型导入、代码生成到细节调优,整体耗时仅2小时左右,提效效果肉眼可见。

2. 省份动态切换

这里简单说下最终实现的区划切换效果,方便大家直观参考:

  • 全国层级:页面初始化默认展示全国地图,鼠标悬浮任意省份,弹出提示框展示地区名称与对应行政编码;

  • 省份层级:支持两种操作方式,点击地图省份,或左侧下拉框选择省份,地图会平滑缩放并自动居中定位,高亮当前省份全域,同时自动加载该省份下辖城市;

  • 市/区县层级:逐级选择市级、区级区划,地图持续下钻定位,动画过渡流畅,不存在卡顿、白屏、数据加载失败等问题;

  • 重置回退:内置层级回退逻辑,可一键返回上一级视图或全国总览,适配多场景切换需求。

整体交互逻辑完全贴合政企GIS后台、数据大屏的业务标准,直接稍作修改就能接入正式生产项目。更多完整的演示效果可以参看视频:

基于Leaflet和JQuery的行政区划切换源码

五、总结

这篇文章完整分享了整套Axure原型结合Trae Solo落地GIS多级区划页面的实操流程,从需求分析、提示词编写、代码生成,到细节优化、功能验收,形成了一套可直接复用的标准化开发方案。经过这次实操我最大的感受是:AI编程工具不是用来替代开发者,而是帮我们解放双手。对于GIS前端开发来说,重复复刻UI页面、编写基础样式是最枯燥且无价值的工作,借助Trae Solo可以直接跳过这一步,让我们把精力集中在地图交互、数据处理、业务逻辑开发等高价值工作上。

后续我还会持续更新Trae Solo在GIS大屏、图层管理、轨迹分析等场景的实战案例,感兴趣的小伙伴可以点赞收藏,一起交流学习AI赋能GIS开发的相关技巧。

六、写在最后

现在AI赋能前端开发已经不是噱头,而是行业常态。尤其是GIS这种同时涉及UI设计、前端编码、地理数据处理的细分领域,合理利用AI编程工具,能极大降低重复工作成本。也希望通过这篇实战博文,帮助各位同行跳出传统老旧的开发模式,学会用AI衔接产品设计与前端开发,轻松搞定各类GIS可视化页面开发,提升日常工作效率!行文仓促,定有不足之处,欢迎各位朋友在评论区批评指正,不胜感激。

相关推荐
阿泽·黑核2 天前
表驱动 + 回调分发:大规模按键模块的工程实践
c语言·嵌入式软件·vibe coding·trae solo
测试修炼手册12 天前
[测试工具] Axhub MCP:把 Axure PRD 变成测试用例
测试工具·测试用例·axure
梓贤Vigo13 天前
【Axure原型分享】AI自动回复机器人
交互·产品经理·axure·原型
xy345315 天前
Axure9.0中继器-初识篇
产品经理·axure·原型
Chensay.19 天前
Axure RP安装(已汉化)附下载地址
axure·结构设计
招风的黑耳20 天前
Axure动态柱状图设计指南:从静态到交互的完整实现
交互·axure·柱状图
招风的黑耳20 天前
Axure动态折线图设计指南:从静态到交互的完整实现
交互·axure·photoshop
招风的黑耳20 天前
智慧社区可视化平台:构建“现实-数字“双生社区的智能中枢
axure·原型·可视化
夜郎king24 天前
基于 Trae Solo 的 Ant 遗留项目编译方案 —— 以 BaseformEpanet 为例
人工智能·trae solo·水力模型·java水力模型编译