先在static 文件下 建立 map.js文件
map.js
ak:自己去百度申请
export function mymap(ak) {
return new Promise(function(resolve, reject) {
window.init = function() {
resolve(mymap)
}
var script = document.createElement('script')
script.type = 'text/javascript'
script.src = `http://api.map.baidu.com/api?v=1.0&type=webgl&ak=${ak}&callback=init`
script.onerror = reject
document.head.appendChild(script)
})
}
在建立一个 baiduMap.vue 文件
<!-- 地图 -->
<template>
<view class="global">
<!-- <view id="allmap" class="map"></view> -->
<view :prop="markerList" :change:prop="allmap.updateEcharts" id="allmap"></view>
</view>
</template>
<script>
export default {
data() {
return {
markerList: [],
}
},
mounted() {
},
methods: {
}
}
</script>
<script module="allmap" lang="renderjs">
import { mymap } from '@/util/map.js';
export default {
data() {
return {
map: null,
ak: 'DMabCVRC8Im8HUWLC6epbkQKz83wCuq0' //申请方法网上很多自行百度
}
},
mounted() {
this.$nextTick(() => {
let _this = this;
mymap(_this.ak).then((mymap) => {
var map = new BMapGL.Map("allmap");
console.log(map, 'this.map ')
var point = new BMapGL.Point(116.404, 39.915);
map.centerAndZoom(point, 10); //设置缩放级别
map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
map.setTilt(43);//设置倾斜角度
map.setHeading(24.5); //设置地图旋转角度
// 创建点标记
var marker1 = new BMapGL.Marker(new BMapGL.Point(116.404, 39.925));
var marker2 = new BMapGL.Marker(new BMapGL.Point(116.404, 39.915));
var marker3 = new BMapGL.Marker(new BMapGL.Point(116.395, 39.935));
var marker4 = new BMapGL.Marker(new BMapGL.Point(116.415, 39.931));
// 在地图上添加点标记
map.addOverlay(marker1);
map.addOverlay(marker2);
map.addOverlay(marker3);
map.addOverlay(marker4);
})
})
}
}
</script>
<style>
/* <style lang="scss"scoped>.map {
width: 100vw;
height: 500px;
}
.global {
width: 100vw;
height: calc(100vh - 150px);
}
#allmap {
width: 100vw;
height: calc(100vh - 150px);
} */
#allmap {
width:100%;
height: 80vh;
}
</style>