map-integration / 与地图融合总览
文档:
vjcad/doc/tutorial/map-overlay.mdvjcad/doc/tutorial/web-map-overlay.md示例:vjcad/example/basic/05mapoverlay.js—CadMapOverlayvjcad/example/tile/06webmapoverlay.js— 互联网地图叠加
1. 三种"CAD + 地图"组合
vjcad 与地图集成的方式不只一种,按"谁是底、谁是顶"区分:
| 组合 | API / 场景 | 适用 |
|---|---|---|
| CAD 上叠地图 | Engine.enableWebMap(...) 把高德 / 天地图 / 自定义 XYZ 当 底图 |
设计图与现实位置对照 |
| 地图上叠 CAD | CadMapOverlay 把整个 vjcad 视图当 图层 叠到 vjmap 地图 |
GIS 系统中嵌入图纸 |
| 瓦片渲染 | enableWmsTileLayer + 服务端 WMS 瓦片 |
大图纸 / 多端访问 |
本目录聚焦前两种"融合"。瓦片渲染见 tile/。
2. 子文档结构
| 主题 | 文档 |
|---|---|
| CadMapOverlay 实战 | cad-map-overlay.md |
| 互联网底图叠加 | web-map-overlay.md |
| 坐标系桥接(EPSG / 四参数 / 经纬度) | coords-bridge.md |
3. 心智模型
flowchart LR
subgraph CAD 上叠地图
DWG1[(CAD 图)] -->|底图| WebMap[高德/天地图<br/>XYZ 瓦片]
end
subgraph 地图上叠 CAD
Map[(vjmap 地图)] -->|图层| CadOL[CadMapOverlay<br/>vjcad 全功能视图]
end
4. 共同的红旗
- 坐标系是核心 — 三种坐标会同时存在:CAD 内部坐标、CAD 投影坐标(如 CGCS2000)、Web Mercator (3857)、地理经纬度(4326 / GCJ02)。集成前先想清楚转换路径
- GCJ02 偏移 — 高德坐标是 GCJ02("火星坐标"),与 WGS84 有 100~500m 偏移;混用国家平台 / Google 时差异更明显
- 对齐依据:
CadMapOverlay的位置由 vjmapmap.attach(svc, prj)的投影决定(cadToLngLat即map.toLngLat),bounds只影响缩放比取样和zoomToExtents();enableWebMap的对齐只看srs/fourParameterBefore,mapbounds不参与 - token / appkey 集成阶段要分清楚 vjcad token、vjmap token、地图供应商 key(高德 / 天地图)三者
- 加载顺序 —— 必须
await map.onLoad()后再cadOverlay.addTo(map);必须await cadView.onLoad()后再Engine.enableWebMap(...)
参考(官方文档 MCP)
- 文档:
vjcad/doc/tutorial/map-overlay.mdvjcad/doc/tutorial/web-map-overlay.md- 示例:
vjcad/example/basic/05mapoverlay.js—CadMapOverlayvjcad/example/tile/06webmapoverlay.js— 互联网地图叠加