打开图总览
本文回答:打开图主题的总览与所有子项索引;3 种打开方式的选型速查。
选型速查
| 场景 | 用哪种 | 文档 |
|---|---|---|
| 打开已上传 DWG 图进行查看/叠加 | svc.openMap({ mapid, mapopenway: GeomRender }) |
open-dwg |
| 第一次把 dwg 文件挂到服务端并取 mapid | 传 fileid 或 filedoc |
open-dwg |
| 临时查看(只用内存,不保存至空间库) | mapopenway: Memory |
map-open-way |
| 新建一张空白图(程序化绘制) | svc.rasterBlankStyle(0, 24) + 自己定坐标范围 |
blank-map |
| 从前端数据生成一张 DWG | svc.updateMap({ filedoc }) |
blank-map + backend/upload-create-map |
| 切换成另一张图但保留 map 对象 | map.switchMap({ mapid }) |
switching |
| 切换成另一张图并重建 map | 先 map.destory(),再 new vjmap.Map(...) |
switching |
子项索引
| 子文件 | 回答什么 |
|---|---|
| open-dwg | svc.openMap 完整参数、fileid 的 4 种形态、res.error 处理 |
| map-open-way | vjmap.MapOpenWay.Memory / GeomRender 的差异、优劣、选型 |
| blank-map | 空白地图、rasterBlankStyle / 自定义 style |
| bounds-and-projection | res.bounds → GeoBounds → GeoProjection 的链路 |
| switching | 三种切图方式:switchMap / 重建 / 新 div |
主题级 Top 3 陷阱
res.error没检查就 new GeoProjection → 后续操作全部失败,错误难溯源。res.bounds是字符串,直接传new GeoProjection(res.bounds)是 OK 的(内部会 parse),但你若先vjmap.GeoBounds.fromString则要保证值不是undefined。- 切图后忘了
map.fitMapBounds()→ 视图留在旧图的中心点。