腾讯地图 · 异形区域场景覆盖 前端实验交互示例:用腾讯地图 JS API GL 的 ImageGroundLayer,把 AI 生成的场景概念图按多边形遮罩裁剪后,覆盖到地图上的真实异形地块。支持多场景切换、透明度调节、显隐开关与底图样式切换。 实验 地图
← 项目展示
腾讯地图 · 异形区域场景覆盖
前端实验交互示例:用腾讯地图 JS API GL 的 ImageGroundLayer,把 AI 生成的场景概念图按多边形遮罩裁剪后,覆盖到地图上的真实异形地块。支持多场景切换、透明度调节、显隐开关与底图样式切换。
在线预览
全屏打开
简介
一个自包含的「异形区域场景覆盖」前端 Demo:在腾讯地图 JS API GL 上,把一张自定义场景概念图,按多边形遮罩裁剪后,覆盖到地图上的一片真实异形区域。
核心思路:
- 区域用一组
LatLng多边形定义(默认北京·朝阳公园一带,可在源码REGION常量替换)。 - 场景图由 AI 生成(公园插画 / 生态俯视 / 未来街区 三张),运行时用 Canvas 的
globalCompositeOperation = "destination-in"按多边形路径裁剪,只保留区域内像素,再转 base64 作为ImageGroundLayer的src。 bounds取多边形的外包矩形,图片随地图缩放贴合地面。
交互能力
| 控件 | 说明 |
|---|---|
| 场景切换 | 公园插画 / 生态俯视 / 未来街区,三组独立图层用 setVisible 切换 |
| 图层透明度 | 0–100% 滑块,实时 setOpacity |
| 显示覆盖层 | 勾选框 setVisible 开关 |
| 底图样式 | 标准矢量 + style1–5 个性化样式 |
| 飞向覆盖区域 | fitBounds 定位到区域 |
技术要点
- ImageGroundLayer:腾讯地图 GL 的「图片地面层」,图片随地图缩放缩放,按
bounds地理范围贴地。实例方法setVisible/setOpacity/setBounds/setSrc/setZIndex齐备;注意setSrc对相同 url 不更新,故多场景采用独立图层 + 显隐切换。 - 异形区域实现:
ImageGroundLayer.bounds本身只支持矩形,异形靠「透明遮罩」思路——运行时把场景图与多边形路径合成,区域外像素被清除,实现任意形状覆盖。 - CORS:
ImageGroundLayer.src为 base64 时不受跨域限制;远程 url 需服务端允许跨域。 - 区域边界:额外用
MultiPolygon画出多边形轮廓,便于在覆盖层隐藏时仍看清区域位置。
如何测试验证
- 打开 Demo,地图加载后区域上即覆盖当前场景图。
- 右上控制台切换场景、拖透明度、勾选显隐、换底图样式。
- 点「飞向覆盖区域」定位。
- 内置 Key 需在腾讯地图控制台给当前域名(
localhost与www.lilnong.top)加白名单,底图才会加载。