html圆形圆心坐标,Vue利用百度地图画圆并且获取圆心坐标和半径

Vue利用百度地图画圆并且获取圆心坐标和半径

这个东西不好整,既要使用Vue接入百度地图,又要画圆。

Vue接入百度地图

Vue 接入百度地图其实是有插件的,vue-baidu-map 这个插件有官网,直接 npm install 就可以。

然后教程啥的都写的很清晰,包括安装和使用,自己就接进去了,但是画圆获取圆心坐标和半径有点问题,可能不满足这个需求,所以说就得用百度地图官网的API接口,看一眼:

在最后的 “辅助工具” 里面的 “鼠标绘制功能(GL)” 就可以绘制圆形。

所以说我们首先得在Vue项目中引入原生的百度API接口。

引入原生的百度地图API

在 index.html 文件中引入百度地图API连接

在使用地图的组件里面创建一个div用来展示地图,记住,一定要给这个div设置宽和高,不然显示不出来,不要太相信100%的方式设置宽高。

然后写一个方法来初始化百度地图,创建的方法在 created 里面调用

mounted() {

this.init();

},

methods: {

init() {

this.map = new window.BMapGL.Map("container", { enableMapClick: false }); // 创建Map实例,GL版命名空间为BMapGL(鼠标右键控制倾斜角度)

this.map.centerAndZoom(new window.BMapGL.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别

this.map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放

}

}

注意哈,BMap可能找不到,也许是一定找不到,会说没有找到方法之类的错,记住,在BMap这些百度自带的对象前面加 window. 就可以了,就像上面一样。

好了,按照上面的样子,百度地图就引进来了,但是哈,不建议这样用,用插件就可以,特别好,但是呢,因为这个项目需求不能使用插件,因为插件不支持画圆获取坐标的功能,只能这样凑合着用。

画圆获取中心点坐标和半径

然后就是画圆了,这个东西不好整,官网给的demo就是单纯的画一个圆,没有说怎么拿到中心点坐标和半径,尽管给你展示出来了,但好像没有给提供接口拿数据,也是做了很多的准备,查阅了很多的资料才整理出来一个小的demo,但是有瑕疵,一会再说问题出在哪里。

首先在 index.html 文件中引入需要的 js 文件,就写在上一个需要你填key值得那句代码下面就行:

然后在需要使用地图画圈的组件写成下面这样,我懒得一点一点的弄了,直接粘全部的代码:

export default {

data() {

return {

map: "", // 地图对象

drawingManager: "", // 绘制管理器

centerPoint: nu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中使用百度地图API自动获取地址和经纬度,你需要完成以下步骤: 1. 在百度地图开放平台上注册账号并创建应用,获取API密钥。 2. 在Vue项目中引入百度地图API的JS文件,在index.html中添加以下代码: ``` <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=your_api_key"></script> ``` 将 `your_api_key` 替换为你在百度地图开放平台上创建应用后获取的API密钥。 3. 在Vue组件中使用以下代码,创建地图实例: ``` mounted() { var map = new BMap.Map("map-container"); this.map = map; }, ``` 其中,`map-container` 是放置地图的DOM元素的ID。 4. 在Vue组件中使用以下代码,获取用户当前位置的经纬度: ``` mounted() { var map = new BMap.Map("map-container"); this.map = map; var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition((position) => { if (geolocation.getStatus() === BMAP_STATUS_SUCCESS) { this.latitude = position.point.lat; this.longitude = position.point.lng; } else { alert('定位失败'); } }); }, ``` 其中,`geolocation.getCurrentPosition` 方法用于获取用户当前位置的经纬度。如果获取成功,则将经纬度赋值给 `latitude` 和 `longitude` 变量。如果获取失败,则弹出提示框。 5. 在Vue组件中使用以下代码,将经纬度转换成具体的地址: ``` mounted() { var map = new BMap.Map("map-container"); this.map = map; var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition((position) => { if (geolocation.getStatus() === BMAP_STATUS_SUCCESS) { this.latitude = position.point.lat; this.longitude = position.point.lng; var point = new BMap.Point(this.longitude, this.latitude); var geoc = new BMap.Geocoder(); geoc.getLocation(point, (rs) => { this.address = rs.address; }); } else { alert('定位失败'); } }); }, ``` 其中,`BMap.Point` 方法用于创建一个地理位置点的实例,需要传入经度和纬度。`BMap.Geocoder` 方法用于将经纬度转换成具体的地址。`geoc.getLocation` 方法用于获取地址信息,并将地址信息赋值给 `address` 变量。 这样,你就可以在Vue中使用百度地图API自动获取地址和经纬度了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值