vue在线地图使用百度地图

引入百度地图api

在index.html中引用

<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

在组件中展示地图

<template>

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

</template>

<script>

export default {

data() {

return {}

},

methods: {

initMap() {

var map = new BMap.Map('map',{minZoom: 10, maxZoom: 19}) //初始化地图并设置最小与最大层级

var point = new BMap.Point(116.403927, 39.913268) // 此处根据坐标点传入

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

map.disableInertialDragging();

map.centerAndZoom(point, 17)//中心点和地图级别

this.fangfa(map, point, 116.403927, 39.913268);

},

//此方法为设置设备辐射范围(所有参数可根据实际情况设置)

fangfa(map, point, lat, lng) {

function Sector1(point2, radius, sDegree, eDegree, strokeColour, strokeWeight, Strokepacity, fillColour, fillOpacity, opts) {

var points = [];

var step = ((eDegree - sDegree) / 30) || 30;

points.push(point2);

for (var i = sDegree; i < eDegree + 0.01; i += step) {

points.push(EOffsetBearing(point2, radius, i));

}

points.push(point2);

var polygon = new BMap.Polygon(points, { strokeColor: strokeColour, strokeWeight: strokeWeight, strokeOpacity: Strokepacity, fillColor: fillColour, fillOpacity: fillOpacity });//远点扇形绘制

return polygon;

}

function Sector2(point2, radius, sDegree, eDegree, strokeColour, strokeWeight, Strokepacity, fillColour, fillOpacity, opts) {

var points = [];

var step = ((eDegree - sDegree) / 30) || 30;

points.push(point2);

for (var i = sDegree; i < eDegree + 0.01; i += step) {

points.push(EOffsetBearing(point2, radius, i));

}

points.push(point2);

var polygon = new BMap.Polygon(points, { strokeColor: strokeColour, strokeWeight: strokeWeight, strokeOpacity: Strokepacity, fillColor: fillColour, fillOpacity: fillOpacity });//近点扇形绘制

return polygon;

}

function EOffsetBearing(point3, dist, bearing) {

var latConv = map.getDistance(point3, new BMap.Point(point3.lng + 0.1, point3.lat)) * 17;

var lngConv = map.getDistance(point3, new BMap.Point(point3.lng, point3.lat + 0.1)) * 10;

var lat = dist * Math.cos(bearing * Math.PI / 180) / latConv;

var lng = dist * Math.sin(bearing * Math.PI / 180) / lngConv;

return new BMap.Point(point3.lng + lng, point3.lat + lat);

}

var points = new BMap.Point(lat, lng);

console.log(points)

var polygon2 = Sector1(points, 200, 25, 100, "#00FCFC", 1, 0.4, "#00FCFC", 0.4);

var polygon3 = Sector2(points, 80, 25, 100, "#000", 0.5, 0.4, "#000", 0.6);

map.addOverlay(polygon2);

map.addOverlay(polygon3);

let imgUrl = require('@/assets/image/camera/camera.png');

var marker = new BMap.Marker(point, { icon: new BMap.Icon(imgUrl, new BMap.Size(22, 19)) });

map.addOverlay(marker);

},

},

mounted() {

this.initMap()

},

}

</script>

<style lang="scss" scoped>

#map {

width: 800px;

height: 500px;

}

</style>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值