常见坑
本文回答:常见坑索引 —— 从现象反查解决方案。
按现象 → 文件映射,遇到问题直接跳对应叶子。
症状速查
| 症状 | 原因 / 文件 |
|---|---|
| 首屏黑屏 / 画面未出现 | container-collapse |
vjmapext is not defined |
cdn-order |
| 请求 401 / 403 / CORS | token-cors |
svc.openMap 成功但 res.bounds 取不到 |
bounds-parse |
Node 里 openMap 一直 403 / {reload:true} |
自定义 IRequest 丢了 args.headers → token-cors "Node 环境" 节 |
getEpsgParam 返回 null |
第二参要传带号或 8 位坐标,不是普通经度 → coord/cad-epsg |
| 高德底图上 CAD 坐标偏 100~500 米 | coord-offset-gaode |
| 控件 / Popup 样式不对 | createui-no-theme |
| 批量 addEntity 非常慢 | batch-lag |
| Vue / React 切页面后 Marker 重影 | marker-duplicate |
| 内存一直涨不释放 | listener-leak |
fromJSON 后看不见图 |
fromjson-fit |
| 组件卸载后地图未销毁 | vue-react-dispose |
Top 10 红旗
- 容器
<div>没有宽高 / 没有position: relative→ 首屏塌陷 <script>把 vjmapext 放在 vjmap 前面 → 加载失败openMap成功后没检查res.error- 高德底图上 CAD 坐标没做 GCJ02 转换
- 批量
addEntity循环里每条都setDirty() - Vue 组件卸载时没
map.remove()→ Marker 残留 map.on('click', handler)没对应off→ 内存泄漏new vjmap.Service(url, token)的服务地址和后端域名协议不一致 → 混合内容(注意:Service 构造是位置参数(url, token);配套后端 SDK 也是位置参数new Vjmap(baseUrl, token)/Vjmap(base_url, token))DomUtil / createUI之前没加主题 CSSfromJSON后忘zoomExtents()→ 看不到加载的图
排查流程
1. 看浏览器 Console 有没有红字 → 拷关键字搜本目录
2. 看 Network 面板 → 401/403/CORS → token-cors.md
3. 容器元素检查 → 宽高 0 / display none → container-collapse.md
4. 没错也不显示 → fromjson-fit / bounds-parse
5. 都没问题但画面重影 / 泄漏 → marker-duplicate / listener-leak / vue-react-dispose
相关
- 初始化 → setup/overview
- 卸载 → setup/dispose
- 事件清理 → event/cleanup
- 性能 → perf/overview