适用版本:ElaneMap H5 API 3.5
前置阅读:7.1-快速入门、7.2-地图引擎基础
适用读者:使用 Vue2 / Vue3 技术栈(vue-cli、Vite 等)的开发接入人员
npm install 后 import,只能通过 <script> 标签远程加载;window 上,暴露 ShipxyAPI、Leaflet 全局对象 L,并依赖其自带的 jQuery;new ShipxyAPI.Map(...),而 Vue 组件的生命周期与脚本异步加载时序需要手动协调;public/index.html(vue-cli / Vite 项目根目录的 index.html)的 <head> 中加入:注意:密钥经后端下发到浏览器后仍然可见,此方式只解决"密钥不硬编码进代码仓库"的问题,不能替代域名绑定等防护措施,详见 08 篇。
onMounted 时已有确定宽高(CSS 显式指定);map.invalidateSize() 强制重算尺寸。onBeforeUnmount(Vue3)/ beforeDestroy(Vue2)中:map.remove() 销毁地图;setInterval 定时器也要一并 clearInterval);window.$。若项目自身也使用 jQuery(较少见),注意加载顺序,必要时用 jQuery.noConflict() 处理。Vue 项目本身不依赖 jQuery,一般无冲突。ShipxyAPI is not defined??k= 和 ak 两处);浏览器控制台是否有瓦片请求 403(密钥无效或未绑定域名)。remove(),同一容器重复初始化导致。检查 5.3 节的资源释放逻辑。map.invalidateSize()(Leaflet 原生方法)刷新。activated 中 map.invalidateSize() 恢复显示,deactivated 中可选择暂停船位自动刷新等业务定时器。