唯杰地图 logo唯杰地图
VJMAP
EN

地图叠加总览

vjmap/references/overlay/overview.md 2.5 KB43 行
原文

本文回答:多图 / DeckGL / L7 / Leaflet / OpenLayers / Cesium / 批注 / 比较 —— 各种叠加与融合技术的选型总览。

分类

类别 目的 子文件
多 vjmap 地图比较 同一页面放 2~N 张 vjmap,视图同步、卷帘对比 multi-map / sync-view
Deck.GL 集成 在 vjmap 上加 Deck.GL 高级可视化(轨迹 / 弧线 / 热力) deckgl

| Leaflet 集成 | 在 Leaflet 里叠加 CAD WMS / GeoJSON | leaflet | | OpenLayers 集成 | 在 OL 里叠加 CAD | openlayers | | Cesium 3D 集成 | 2D CAD ↔ 3D Cesium 相互叠加 | cesium | | Three.js 自定义图层 | vjmap CustomLayer + Three.js(三维需求直接用 vjmap3d) | vjmap3d skill references/advance/render2d.md | | 图纸批注 | SVG 批注叠加在地图上 | annotation | | 图例 / 指北针 / 比例尺 | 常见控件叠加 | legend-north-scale | | 地图比较 | CAD 新旧图对比 | 见 multi-map("地图比较"一节)|

选型速查

场景 推荐
轨迹、弧线、3D 柱 Deck.GL(业界最全)
光柱、流动线、雷达动画 L7
已有 Leaflet 项目 Leaflet + svc.wmsTileUrl
已有 OL 项目 OpenLayers + svc.wmsTileUrl(传 bbox: "",用 ol/source/TileWMS 加载);svc.webMapUrl 是把互联网瓦片重投影到 CAD 瓦片网格(CAD 为底图时用)
3D 地球 / 3D 建筑 / 倾斜摄影 Cesium
Three.js 模型 / 车辆 CustomLayer
简单 SVG 箭头 / 批注 vjmap 的 DivOverlay
同一页面两张图比对 多 vjmap.Map + vjmap.syncMaps(map1, map2);卷帘用 new vjmap.Compare(map1, map2, container)

前提

  • 多数集成方案都是在 CAD 为底图(GeoProjection)或 互联网为底图(LnglatProjection)的 vjmap 实例之上叠加。
  • 集成时坐标系必须一致(把 CAD 坐标用 map.toLngLat(...) 转成渲染经纬度后传给其他库)。

主题级 Top 3 陷阱

  1. Deck.GL / L7 拿到 CAD 原始坐标 → 画面偏移到地图范围外。必须 map.toLngLat 转换。
  2. Leaflet / OpenLayers 的坐标系未对齐 → 请用 WMS 叠加并指定正确 EPSG。
  3. Cesium 2D ↔ 3D 同步视角抖动 → Cesium 相机的 pitch/heading 和 vjmap 的 pitch/bearing 定义不同;需要转换。