vue+element中引入百度地图

❤️❤️❤️ Topology可视化绘图引擎 ❤️❤️❤️

前言: 您好,我是csdn-尔嵘,如果您需要雨伞,可以去TaoBao搜:华,诚,荣,邦,百,货  谢谢您的支持!

1.首先你需要下载npm模块,个人推荐:cnpm install vue-baidu-map --save 这样你的package.json文件就有了配置信息;

2.然后在index.html文件中直接引用:

 <script type="text/javascript" src="http://api.map.baidu.com/getscript?v=3.0&ak=密钥"></script>

百度地图ak密匙申请:送你直达

例如:

<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=自己申请的密钥"></script>

3.去除左下角没有百度地图的logo和版本信息,可以在index.html的样式中引入:

.BMap_cpyCtrl, .anchorBL {
      display: none;
}

4.开始进入你需要引入百度地图的组件:

(1)首先引入百度地图:

import BMap from 'BMap'

注意:vue 2.0 和3.0 的差异本来就很大,import BMap from 'BMap'  是2.0用的,当然在3.0也可以用,而

externals: {
    "BMap": "BMap"
}

是3.0用的,方式不一样。

(2)组件的template中,添加地图容器,记得设置宽高额,不然你是看不到的:

   <div id="map"></div>

(3)在methods中添加方法:

可参考百度地图API:请点击

//创建地图实例
createMap() {
    // 创建Map实例
    var map = new BMap.Map("map");
    var geolocation = new BMap.Geolocation();
    //调用百度地图api 中的获取当前位置接口
    geolocation.getCurrentPosition(function (r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
            //获取当前位置经纬度
            let myGeo = new BMap.Geocoder();
            myGeo.getLocation(new BMap.Point(r.point.lng, r.point.lat), function (result) {
                if (result) {
                    console.log(result);
                    // 初始化地图,设置中心点坐标和地图级别
                    map.centerAndZoom(new BMap.Point(result.point.lng, result.point.lat), 11);//设置中心点
                    map.setCurrentCity("北京");        //由于有3D图,需要设置城市哦
                    //开启鼠标滚轮缩放,默认关闭
                    map.enableScrollWheelZoom(false)
                    //添加缩略图控件
                    map.addControl(new BMap.OverviewMapControl({isOpen:false,anchor:BMAP_ANCHOR_BOTTOM_RIGHT}));
                    //添加缩放平移控件
                    map.addControl(new BMap.NavigationControl());
                    //添加比例尺控件
                    map.addControl(new BMap.ScaleControl());
                    //添加地图类型控件
                    map.addControl(new BMap.MapTypeControl());
                    //设置标记点的icon图标、大小
                    var icon = new BMap.Icon("https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg",new BMap.Size(100,100));
                    //设置地图标记点的位置(坐标)、icon
                    var marker = new BMap.Marker(new BMap.Point(result.point.lng, result.point.lat),{icon:icon});
                    //把标注添加到地图上
                    map.addOverlay(marker);
                    //给标记点添加鼠标移入浮窗浮窗和内容
                    var content = "<ul style='list-style-type: none; padding: 10px; background: rgba(20, 30, 40, 0.75); font-size: 14px; color: #fff;'><li style='display: flex; justify-content: space-between;'>站点名称: <span>" +华侨城壹号院 +
"</span></li>"+"<li style='display: flex; justify-content: space-between;'>站点状态: <span>" + 正在运行 +"</span></li>" +"<li style='display: flex; justify-content: space-between;'>设备总数: <span>" +200 +"</span></li>" +"<li style='display: flex; justify-content: space-between;'>告警数: <span>"+0+"</span></li>" +"<li style='display: flex; justify-content: space-between;'>电话: <span>" +178866668086 +"</span></li></ul>";
                    var infowindow = new BMap.InfoWindow(content);
                    // 图标点击的时候显示标注
                    marker.addEventListener("click",function(){
                        map.openInfoWindow(infoWindow, new BMap.Point(result.point.lng, result.point.lat)); //开启信息窗口
                    });

                    //同理,可设置监听鼠标移入事件-图标鼠标移入显示标注onmouseover 
                }
            });
        }
    });
}

(4)在生命周期函数mounted中(与methods同级)

mounted() {
    this.createMap();
}

(5)最后给地图宽高:

#map {
      margin-top: 20px;
      height: 700px;
}

(6)效果图:

那么,vue中怎么使用高德地图呢?==》》vue中引入高德地图

### 如何在Element UI项目中引入和配置百度地图 #### 创建并获取百度地图API密钥 前往百度地图开放平台控制台,登录百度账号,创建应用以获得API密钥(AK)[^2]。 #### 修改`index.html`文件引入百度地图脚本 编辑项目的`public/index.html`文件,在`<head>`标签内加入如下代码片段来加载百度地图JavaScript API,并替换其中的`your_ak_here`为你自己的AK: ```html <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=your_ak_here"></script> ``` 此操作确保了整个应用程序都可以访问到百度地图的服务。 #### 使用Vue插件封装百度地图组件 为了更便捷地管理地图实例以及其上的交互逻辑,建议通过编写一个基于Vue.js的地图组件来进行集成。这里给出一个简单的示例供参考: ```javascript // components/BaiduMap.vue <template> <div id="mapContainer" ref="mapRef"></div> </template> <script> export default { name: 'BaiduMap', mounted() { const BMapGL = window.BMapGL; let map = new BMapGL.Map(this.$refs['mapRef']); // 初始化地图对象 let point = new BMapGL.Point(116.404, 39.915); // 设置中心点坐标 map.centerAndZoom(point, 15); map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放 } } </script> <style scoped> #mapContainer{ width: 100%; height: 400px; /* 可根据实际需求调整 */ } </style> ``` 上述代码展示了如何利用挂载钩子函数(`mounted`)初始化百度地图实例,并设置了基本参数如视图中心位置、缩放级别等。同时定义了一个固定大小的容器用于显示地图界面。 #### 将新创建的地图组件添加至页面布局 最后一步是在适当的位置注册并使用这个新的地图组件。假设当前正在构建的是一个单页应用(SPA),那么可以在任意路由对应的视图组件里导入它: ```vue <!-- views/SomeView.vue --> <template> <el-container style="height: 100%"> <!-- ...其他元素... --> <baidu-map></baidu-map> <!-- 插入自定义的地图组件 --> <!-- ...更多内容... --> </el-container> </template> <script> import BaiduMap from '@/components/BaiduMap'; export default { components: { BaiduMap }, }; </script> ``` 这样就完成了在一个采用Element UI作为前端框架的应用程序中成功集成了百度地图的功能模块。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尔嵘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值