标签: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