UI 组件 · 数据展示
地图
Map
也叫:地图组件、地图控件、位置地图、Map View、Map Embed、Interactive Map
在页面里嵌入一块可以拖动、缩放的地图,用标记点显示门店、地址或配送位置,点击标记弹出详情。
点「标注」看每个部分叫什么。
怎么跟 AI 说
改成你的业务内容再发做一个门店查询页:左侧 360px 宽的门店列表,顶部是搜索框和「附近 / 全部城市」切换,每项显示门店名、地址、营业时间和距离;右侧用高德地图(或 Leaflet)铺满剩余空间,用品牌色图钉标出所有门店,标记太多时聚合成带数字的圆点。点击列表项,地图平移到对应门店并弹出信息窗(门店名、地址、电话、「导航」按钮);点击地图上的标记,列表滚动到对应项并高亮。右下角放「+ / −」缩放和「定位到我」按钮。地图先显示灰色占位,进入视口后再加载脚本;页面滚动时滚轮不缩放地图,按住 Ctrl 才缩放。手机上改成上面地图(高 240px)、下面列表。
发给
01判断
你的内容是这样吗?
对照两列,确认地图是不是你要找的。
02避坑
常见坏用法
看起来能用,其实会给用户添麻烦。
- 01
页面滚到地图时,滚轮被地图截住开始缩放,页面再也滚不下去
- 02
只放了一个地图标记,没有文字地址,用户想复制地址都做不到
- 03
一进页面就加载好几张大地图,首屏卡顿,流量也浪费
03识别
怎么认出它
先看整体结构,再对照几个一眼能认出的特征。
结构
由可以拖动缩放的地图画布、位置标记(可以聚合)、点击标记弹出的信息窗、缩放和定位按钮组成,常和一侧的地点列表或搜索框搭配。
组成部分点一下,在上面的线框里标出来
识别特征
- 1一块带街道、河流、绿地的地图画面,上面有水滴形的图钉标记
- 2角落里有「+ / −」缩放按钮和地图服务商的标志
- 3点击标记后在它上方弹出一个带名称和地址的小白框
04解释
详细解释
地图组件把高德、百度、腾讯、Google Maps 或开源的 Leaflet、Mapbox 地图嵌进页面:可以拖动,用滚轮或双指缩放,角落里有「+ / −」缩放按钮和「定位到我」,上面用图钉一样的标记点表示位置。点击标记弹出一个小信息窗,写着名称、地址、营业时间和「导航」按钮。常见用法有:「联系我们」页标出公司地址,门店查询页左边列表、右边地图,外卖和打车显示配送轨迹,房源和酒店显示位置分布。
它和 图片 的区别:一张静态地图截图只能看,不能拖动和点击,适合只需要示意位置的地方(邮件、打印页);真正的地图组件可以交互,但要加载地图服务商的脚本和 API Key。门店查询这类页面常用「列表 + 地图」的 主从布局:点击列表里的一项,地图移到对应的标记;拖动地图,列表刷新成当前可视范围内的门店。
地图很重,只在需要的页面加载,先用灰色占位或静态图,进入视口或用户点击后再加载可交互的地图。页面滚动时滚轮不要被地图截住(改成按住 Ctrl 才缩放,或者点击后才能拖动),手机上单指要能正常滚动页面。标记太多时聚合成带数字的圆点。地址一定要有文字,不能只靠地图表达位置;API Key 要限制域名,避免被盗用。国内项目注意坐标系(高德、腾讯用 GCJ-02,百度用 BD-09)。
开发者信息术语 ID、DOM 线索、识别优先级
- 术语 ID
component-map- DOM 选择器
插件在本地识别时匹配这些 CSS 选择器(标签、ARIA role、常见组件库 class)。
.leaflet-container.mapboxgl-map.maplibregl-map.gm-stylegmp-map.amap-container.ol-viewport.cesium-viewer.esri-viewiframe[src*="google.com/maps"]iframe[src*="maps.google."]iframe[src*="openstreetmap.org"]iframe[src*="map.baidu.com"]iframe[src*="amap.com"]iframe[src*="map.qq.com"]
- 类名关键词
类名、id、data-testid 拆成单词后连续匹配,例如 page-header、PageHeader_root__x7a、pageHeader 都拆成 page、header。
mapmap-viewmap-canvasmap-embedlocation-mapstore-mapgoogle-mapgmap
- 组件名
React / Vue 开发模式下读到的组件名,不区分大小写,会去掉 El、Ant、Mui 这类组件库前缀。
MapMapContainerMapViewGoogleMapBaiduMapMapboxMap
- 优先级
- 2 · 同一层有多条命中时,优先级高的胜出
- 版本
- v2 · 更新于 2026/09/30