ITPub博客

首页 > 应用开发 > IT综合 > 实现定位,直播商城源码如何接入地图

实现定位,直播商城源码如何接入地图

IT综合 作者:云豹科技晓彤 时间:2021-09-10 15:52:04 0 删除 编辑

直播商城源码,为了方便用户分享位置,通过第三方地图实现了定位的功能。

方法一 :使用第三方工具

vue-baidu-map
安装命令:

yarn add vue-baidu-map --save

为了页面流畅,建议还是局部引用(觉得这三个满足一般的需求了),如下:

import { BaiduMap, BmScale, BmGeolocation } from 'vue-baidu-map'

HTML代码,在直播商城源码需要引入百度地图的地方加入下面代码

<!--接入百度地图-->
<baidu-map style=" height: 600px;" :center="map_center" :zoom="my_zoom"
:scroll-wheel-zoom="my_scroll_wheel_zoom"
class="baidu-map-view"
@ready="map_handler" ak="分配给你的百度key">
</baidu-map>

如果没有百度地图key就去申请一个
如果直播商城源码需要对地图进行事件处理,必须要在ready事件之后,否者取不到BMap对象!

ready 是在地图组件渲染完毕时触发,返回一个百度地图的核心类和地图实例——{BMap, map}。百度地图组件是异步加载,不要在组件的生命周期中访问 BMap 核心类和 map 实例,如有需要,请在所需组件的 ready 事件回调函数的参数中获取。
看代码:

// 地图初始化回调
map_handler({ BMap, map }) {
this.BMap = BMap
this.map = map
},

其中,BMap是百度地图的对象,直接new出来跟原始的百度地图API一样使用,map是地图对象,可以调用对应的地图方法,比如添加坐标点等。

直播商城源码获取到地图的BMap和map之后,剩下的操作就可以直接参照百度地图官方api接口了,对,就是这样子。

小案例(给地图设置点击获取经纬度坐标并标点):

this.map.addEventListener('click', (e) => {
const point = new this.BMap.Point(e.point.lng, e.point.lat)
const marker = new this.BMap.Marker(point) // 设置点击位置
map.clearOverlays() // 清空地图上其他红色位置标识
map.addOverlay(marker) // 添加指定点
})

希望对你有用!

方法二:引入百度地图JS

在 index.html 添加百度地图的 script

<script src="http://api.map.baidu.com/api?v=3.0&ak=你的百度地图秘钥(ak)&callback=bMapInit"></script>

webpack.base.conf.js添加externals配置,内容如下,与entry平级:

entry: {
app: ['babel-polyfill', './src/main.js']
},
externals: {
'BMap': 'BMap'
},

直播商城源码在调用百度地图的组件中引用:

import BMap from 'BMap'

在需要接入地图的界面引入地图

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

然后就可以写方法进行逻辑操作

this.map = new BMap.Map('map-core')
this.map.centerAndZoom(new BMap.Point(113.275, 23.117), 10)

然后直播商城源码就可以根据百度地图官方api进行逻辑编写。

希望对你有用!

声明:本文由云豹科技转发自weixin_30642869博客,如有侵权请联系作者删除


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2791477/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
音视频软件开发相关知识科普账号

注册时间:2021-06-11

  • 博文量
    163
  • 访问量
    60341