标签:overlay   显示   坐标   int   func   平台   java   name   添加   
点击页面中的位置,跳转到百度地图,并且根据经纬度定位到具体位置
打开   百度地图开放平台 | 百度地图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
          }
       } 
    }
 }
 
以上是放位置的页面,跳转到百度地图,需要再新建一个页面   (就是上面写的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>
 
这也是第一次做地图之类的页面,简单实现下,以后再做改善
vue、百度地图
标签:overlay   显示   坐标   int   func   平台   java   name   添加   
原文地址:https://www.cnblogs.com/yd-MM/p/10031806.html