vue 使用 Vue Baidu Map使用 选择坐标、设置范围 百度地图

官方文件:

Vue Baidu Map

  百度地图开放平台:逆地理编码 gc | 百度地图API SDK

百度地图示例中心:地图JS API示例 | 百度地图开放平台

 参考文献:百度地图JSAPI 2.0类参考

1. 安装

$ npm install vue-baidu-map --save

在main.js注册 使用

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

 2. 简单使用

<template>
    <baidu-map :center="center" :zoom="zoom" :dragging="true" @ready="handler" class="map"     @moving="syncCenterAndZoom" @moveend="syncCenterAndZoom" @zoomend="syncCenterAndZoom">
    </baidu-map>
</template>
 
export default {
    data() {
        return {
            center: {lng: 0, lat: 0}, // 设置中心点信息
            zoom: 3, // 地图初始放大倍数
        }
    },
    methods: {
        // 创建地图
        handler({BMap, map}) {
          this.center.lng = 118.7995
          this.center.lat = 31.9663
          this.zoom = 16
        },
        
        // 拖拽地图时触发此事件
        syncCenterAndZoom(event) {
            // console.log(event);
        }
    }
}
 
 

dragging属性为是否允许拖拽

3. 使用自定义坐标点bm-marker

<template>
    <baidu-map :center="center" :zoom="zoom" :dragging="true" @ready="handler" class="map" @moving="syncCenterAndZoom" @moveend="syncCenterAndZoom" @zoomend="syncCenterAndZoom">
        <bm-marker :position="markerPoint" :dragging="dragging" :raiseOnDrag="raiseOnDrag" animation="BMAP_ANIMATION_BOUNCE"  :icon="{url: pointIcon, size: {width: 30, height: 30}}">        </bm-marker>
    </baidu-map>
</template>
 
export default {
    data() {
        return {
            center: {lng: 0, lat: 0}, // 设置中心点信息
            zoom: 3, // 地图初始放大倍数
            markerPoint: {lng: 118.7995, lat: 31.9663}, // 点的位置
            dragging: true, // 是否可以拖拽点
            raiseOnDrag: true, // 拖拽时是否有动画效果
            pointIcon: require('自定义的点的图片地址')
        }
    },
    methods: {
        // 创建地图
        handler({BMap, map}) {
          this.center.lng = 118.7995
          this.center.lat = 31.9663
          this.zoom = 16
        },
        
        // 拖拽地图时触发此事件
        syncCenterAndZoom(event) {
            // console.log(event);
        }
    }
}
 

animation属性 点拖拽效果动画 BMAP_ANIMATION_BOUNCE为 鼠标按下点抬起,松开点放下

预览效果:

 4. 设置范围圆圈bm-circle

<template>
    <baidu-map :center="center" :zoom="zoom" :dragging="true" @ready="handler" class="map" @moving="syncCenterAndZoom" @moveend="syncCenterAndZoom" @zoomend="syncCenterAndZoom">
    <bm-circle :center="circlePath.center" :radius="circlePath.radius" stroke-color="#EC4141" :stroke-opacity="0.9" :stroke-weight="2" @lineupdate="updateCirclePath"></bm-circle>
    </baidu-map>
</template>
 
export default {
    data() {
        return {
            center: {lng: 0, lat: 0}, // 设置中心点信息
            zoom: 3, // 地图初始放大倍数
            circlePath: { // 圆圈范围信息
                center: {
                  lng: 118.7995,
                  lat: 31.9663
                },
                radius: 300 // 圆圈范围半径
            },
        }
    },
    methods: {
        // 创建地图
        handler({BMap, map}) {
          this.center.lng = 118.7995
          this.center.lat = 31.9663
          this.zoom = 16
        },
        
        // 拖拽地图时触发此事件
        syncCenterAndZoom(event) {
            // console.log(event);
        },
        
        // 设置圆圈范围及半径
        updateCirclePath() {
            this.circlePath.center.lng = 118.7995
            this.circlePath.center.lat = 31.9663
            this.circlePath.radius = 300
        },
    }
}

stroke-color属性: 圆圈的边框颜色

stroke-opacity属性:圆圈内的 透明度

stroke-weight属性:圆圈边框的宽度

预览效果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 引入高德地图API 在vue3项目中,可以通过在index.html中引入高德地图API的方式来使用高德地图。在head标签中添加以下代码: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=你的高德地图key"></script> ``` 其中,key为你在高德开放平台申请的地图应用的key。 2. 在组件中添加地图容器 在组件模板中添加一个div作为地图容器: ```html <template> <div id="map"></div> </template> ``` 3. 初始化地图 在组件中添加一个mounted生命周期钩子,在其中初始化地图: ```javascript mounted() { const map = new AMap.Map("map", { zoom: 13, //地图级别 center: [116.397428, 39.90923], //中心点坐标 }); } ``` 其中,zoom为地图级别,center为地图中心点的经纬度坐标。 4. 添加点标记 在地图上添加点标记,可以通过AMap.Marker类来实现。在mounted生命周期钩子中添加以下代码: ```javascript const marker = new AMap.Marker({ position: [116.397428, 39.90923], //点标记位置 title: "这是一个点标记", //鼠标悬停时的提示信息 }); marker.setMap(map); //将点标记添加到地图中 ``` 其中,position为点标记的经纬度坐标,title为鼠标悬停时显示的提示信息。 完整代码如下: ```html <template> <div id="map"></div> </template> <script> export default { mounted() { const map = new AMap.Map("map", { zoom: 13, center: [116.397428, 39.90923], }); const marker = new AMap.Marker({ position: [116.397428, 39.90923], title: "这是一个点标记", }); marker.setMap(map); }, }; </script> ``` 运行项目后即可在地图上看到一个点标记。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值