vue、百度地图

点击页面中的位置,跳转到百度地图,并且根据经纬度定位到具体位置

打开   百度地图开放平台 | 百度地图API SDK | 地图开发   获取 密钥ak

页面中在位置的地方添加一个点击事件

<div class="lxdz_nr" @click = "baidu(116.442208,39.922129)">  //具体的经纬度,可以直接写在这里,也可以写给地址的位置
    <p>xx公司</p>
    <p>北京市xxxxxx</p> 
<p>400-665-0265</p>
</div>
<div class="lxdz_nr" @click = "baidu(116.442208,39.922129)">  //具体的经纬度
    <p>xx公司</p>
    <p>北京市xxxxxx</p> 
<p>400-665-0265</p>
</div>

<script>
  export default {
   methods: {
     baidu (lng, lat) {
        sessionStorage.setItem('bddt', 1)
        this.$router.push({path: '/Lxdt', query: {lng: lng, lat: lat}})    //path下指的是需要到的另外一个Lxdt页面,传两个值lng,lat
          }
       } 
    }
 }
  </script>

以上是放位置的页面,跳转到百度地图,需要再新建一个页面   (就是上面写的path:/Lxdt)

<template>
<div class="dt">
    <div id="bddt">
    </div>
</div>
</template>

<script>
export default {
  name: 'lxdt',
  mounted () {
    if (sessionStorage.getItem('bddt') - 0 === 1) {
      sessionStorage.setItem('bddt', 0)
      setTimeout(_ => {
        window.history.go(0)
      }, 0)
    }
  }
}
</script>

<style scoped>
.dt{
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
#bddt{
    height:100%
}
</style>

本来想直接在vue页面中显示出来或者写成组件,但是看百度api和看一些文档,写在里面也是各种报错,只好把代码写在html里,代码如下:

先在html里引入   <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=百度获取的密钥"></script>

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=百度获取的密钥"></script>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="shortcut icon" href="./static/img/bitbug_favicon.ico" type="image/x-icon" />
<title>北京xxxx有限公司</title>
</head>

<body>
  <div id="app"></div>
<!-- built files will be auto injected -->
</body>

</html>
<script>
 function getUrlData() {
   var url = location.hash
   var arr = []
   var obj = {}
   if (url.indexOf('?') === -1) {
     return
    } else {
       url = url.split('?')[1]
       arr = url.split('&')
       arr.forEach(function (k) {
       obj[k.split('=')[0]] = k.split('=')[1]
        })
       }
       return obj
     }
     var XY = {
     lng: getUrlData().lng,
     lat: getUrlData().lat
     }
     var opts = {
     width: 250, // 信息窗口宽度
     height: 100, // 信息窗口高度
     title: "Hello" // 信息窗口标题
     }
      var map = new BMap.Map("bddt"); // 创建地图实例
     var point = new BMap.Point(XY.lng, XY.lat); // 创建点坐标
     map.centerAndZoom(point, 15);
     map.enableScrollWheelZoom(); // 开启滚轮缩放
     var marker = new BMap.Marker(point);  //创建一个标志物圆点
     map.addOverlay(marker);        //以上如果还有需要的内容都可以在百度地图文档里添加

</script>

这也是第一次做地图之类的页面,简单实现下,以后再做改善

猜你喜欢

转载自www.cnblogs.com/yd-MM/p/10031806.html