cquavui/public/assets/streetscape.html
2025-09-15 22:41:07 +08:00

86 lines
2.8 KiB
HTML

<!DOCTYPE html>
<html class="no-js css-menubar" lang="zh-cn">
<head>
<title>弹窗子页面</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 移动设备 viewport -->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui" />
<meta name="author" content="火星科技 http://mars3d.cn " />
<!-- 360浏览器默认使用Webkit内核 -->
<meta name="renderer" content="webkit" />
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=qObioeG8HeeQVrOVAGScPVhDzlmv6rL9"></script>
<style type="text/css">
body,
html {
width: 100%;
height: 100%;
margin: 0;
font-family: "微软雅黑";
}
#streetscapeMap {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="streetscapeMap"></div>
<!--页面js-->
<script>
var panorama
window.onload = function () {
var request = getRequest()
var baiduMpt = new BMap.Point(request.lng, request.lat)
var map = new BMap.Map("streetscapeMap") // mars3d.Map三维地图对象
map.centerAndZoom(baiduMpt, 15)
map.addTileLayer(new BMap.PanoramaCoverageLayer())
panorama = new BMap.Panorama("streetscapeMap")
panorama.setPosition(baiduMpt) //根据经纬度坐标展示全景图
panorama.setPov({ heading: -40, pitch: 6 })
panorama.addEventListener("position_changed", function (e) {
//全景图位置改变后,普通地图中心点也随之改变
var pos = panorama.getPosition() //街景变换返回触发的回调函数
if (parent) {
pos = parent.mars3d.PointTrans.bd2wgs([pos.lng, pos.lat])
parent.postMessage({ lng: pos[0], lat: pos[1] })
}
// var pov = panorama.getPov()
})
}
//外部传入坐标,更新街景
function setPosition(point) {
let bdPoint = parent.mars3d.PointTrans.wgs2bd([point.lng, point.lat])
panorama.setPosition(new BMap.Point(bdPoint[0], bdPoint[1])) //根据经纬度坐标展示全景图
}
//url参数获取
function getRequest(target) {
var theRequest = new Object()
try {
//屏蔽跨域时报错
target = target || window
var url = target.location.search //获取url中"?"符后的字串
if (url.indexOf("?") != -1) {
var str = url.substr(1)
var strs = str.split("&")
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1])
}
}
} catch (e) {}
return theRequest
}
</script>
</body>
</html>