Nuxt.js使用百度地图vue-baidu-map

vue-baidu-map文档:https://dafrok.github.io/vue-baidu-map/#/zh/start/usage

安装vue-baidu-map

npm i vue-baidu-map -D

在plugins新建map.js:

import BaiduMap from 'vue-baidu-map'
import Vue from 'vue'
Vue.use(BaiduMap, {
  ak: '申请的百度地图密匙'
})

在nuxt.config.js中引入:

  plugins: [
    { src: "~plugins/map.js", ssr: false },
  ],

在页面中使用:

<template>
  <div>
    <baidu-map class="bdwindow" :dragging="dragging" :center="center" :zoom="zoom" style="height:500px" :scroll-wheel-zoom='scroll'>
          <bm-info-window :position="center" :title="title" :show="show">
              <p class="bdwtext" v-html="contents"></p>
          </bm-info-window>
    </baidu-map>
  </div>
</template>
<script>
export default {
  data () {
        return {
            jump_path:"",
            center: {lng: 120.4373010751, lat: 23.1095638170},
            zoom: 15,  //缩放级别
            title:"标题",
            contents: '地址:具体地址信息',  //标签内容
            show: true,  //显示标签
            scroll:true,  //地图缩放
            dragging:true,  //地图拖拽
        }
    }
}
</script>

展现效果:

 

vue-baidu-map文档:https://dafrok.github.io/vue-baidu-map/#/zh/start/usage

### Vue 项目中集成百度地图的示例教程 #### 安装依赖 为了在 VueNuxt 项目中集成百度地图并实现其功能,首先需要安装必要的依赖包。如果使用的是 Web SDK,则可以通过 npm 进行安装。 ```bash npm install baidu-map-sdk --save ``` 此命令会将百度地图的 Web SDK 添加到项目的依赖列表中[^3]。 #### 创建地图容器 创建一个用于展示百度地图的 `div` 容器,并设置合适的样式使其能够正常显示。通常情况下,可以将其设为全屏模式以便更好地观察地图效果。 ```html <div id="map-container" style="width: 100%; height: 100vh;"></div> ``` 上述代码片段定义了一个名为 `map-container` 的 HTML 元素,它占据了整个浏览器窗口的高度和宽度[^2]。 #### 初始化百度地图实例 在 Vue 组件的方法部分初始化百度地图对象,并配置初始参数如中心位置、缩放级别等。 ```javascript export default { data() { return { map: null, }; }, mounted() { this.initMap(); }, methods: { initMap() { const BMapGL = window.BMapGL; // 引入百度地图 WebGL 版本类库 this.map = new BMapGL.Map('map-container'); // 创建 Map 实例 const point = new BMapGL.Point(116.404, 39.915); // 设置坐标点 this.map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和比例尺大小 this.map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放支持 } } }; ``` 以上 JavaScript 代码展示了如何在一个标准 Vue 单文件组件 (SFC) 中完成基本的地图初始化操作[^1]。 #### 切换至 3D 地图视角 要启用三维立体视图效果,需进一步调用相关 API 方法调整相机角度以及开启倾斜模式等功能。 ```javascript methods: { toggle3DView() { if (!this.is3DEnabled) { this.map.setTilt(45); // 倾斜角度设定为 45 度模拟 3D 效果 this.map.setRotation(-15); // 可选旋转一定角度增强真实感 } else { this.map.setTilt(0); this.map.setRotation(0); } this.is3DEnabled = !this.is3DEnabled; } } ``` 通过该方法可以根据当前状态动态切换二维与三维之间的表现形式。 #### 解决常见问题 - **WebGL 报错或无效**: 确认目标设备是否具备硬件加速能力;尝试更新显卡驱动程序或者更换最新版本浏览器测试兼容情况。 - **3D 加载速度较慢/卡顿现象严重**: 减少不必要的标记物数量,优化数据传输效率,合理规划请求频率避免频繁刷新页面引起性能下降。 - **跨域访问失败(CORS)**: 如果遇到此类错误提示,请联系服务器管理员确认资源路径已开放公共读取权限,并确保服务端返回正确的 Access-Control-Allow-Origin 头部字段值。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值