GSExamProj/static/newMap.html

156 lines
6.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body,html {width: 100%;height: 800px; margin: 0;}
#allmap {height: 800px; width: 100%;overflow: hidden;}
</style>
<!-- 引入百度地图api 携带 AK -->
<script type="text/javascript"
src="https://api.map.baidu.com/getscript?v=3.0&&type=webgl&ak=PGWaYTMyboEEQGINvL1Oi9qpFlwKbFGB">
</script>
<!-- 引入搜索功能 -->
<!-- 引入 uni-app 的 SDK -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
<title>获取位置中,请稍后</title>
</head>
<body>
<!-- 顶部搜索栏 -->
<!-- <div id="search">
<div id="r-result"><input type="text" id="suggestId" size="20" placeholder="位置搜索" value="百度"
style="width:100%;height:40px;" /></div>
<div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div>
</div> -->
<!-- 地图 -->
<div id="allmap"></div>
<!-- 选中的位置回显 -->
<!-- <div id="result">
<div id="resultText"></div>
<div class="btn">重新定位</div>
</div> -->
<script type="text/javascript">
var map = new BMapGL.Map('allmap');
var poi = new BMapGL.Point(116.307852, 40.057031); //罗马的坐标
var addressPost; //存储附近信息数据
var CURRENT_LNG; //记录坐标
var CURRENT_LAT; //记录坐标
var lng, lat; //记录坐标
map.centerAndZoom(poi, 18); //设置地图中心点 和 缩放等级
map.enableScrollWheelZoom();//开启鼠标滚轮
function G(id) {
return document.getElementById(id);
}
//获取当前位置附近地址信息 --- geoc.getLocation
var geoc = new BMapGL.Geocoder();
var getCurrentLocation = function (lg, lt) {
//geoc.getLocation 获取到 坐标 以及 包含附近地址信息的数组
geoc.getLocation(new BMapGL.Point(lg, lt), function (rs) {
//取数组第一个地址信息为选中的位置,也可现为地址列表
var nearbyAddeessArr = rs.surroundingPois[0];
// document.getElementById('resultText').innerText = '当前位置 ' + nearbyAddeessArr.title + '——' + nearbyAddeessArr.address;
addressPost = nearbyAddeessArr.title + '——' + nearbyAddeessArr.address;
CURRENT_LNG = lg;
CURRENT_LAT = lt;
});
}
//通过浏览器获取当前定位的坐标
let getCurrent = () => {
var geolocation = new BMapGL.Geolocation();
geolocation.getCurrentPosition(function (r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMapGL.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
lng = r.point.lng
lat = r.point.lat
getCurrentLocation(lng, lat)
}
else {
alert('failed' + this.getStatus());
}
}, { enableHighAccuracy: true })
}
getCurrent()
//给地图添加点击事件 标记 marker
map.addEventListener("touchstart", function (e) {
map.clearOverlays();//清除地图上所有覆盖物 marker
//获取坐标
var lng = e.point.lng;
var lat = e.point.lat;
//创建marker标注位置
var pt = new BMap.Point(lng, lat);
//new BMap.Icon("本地marker图标路径",图标的尺寸,{marker偏移量,窗口的偏移量})
var myIcon = new BMapGL.Icon("本地marker图标路径", new BMap.Size(20, 25), { anchor: new BMap.Size(5, 20), infoWindowAnchor: new BMap.Size(10, 0) });
var marker2 = new BMapGL.Marker(pt, { icon: myIcon }); // 创建标注实例
map.addOverlay(marker2); //将标注添加到地图中
getCurrentLocation(lng, lat)
});
// 以下是地点检索功能
//创建一个search实例
// var ac = new BMapGL.Autocomplete(
// {
// "input": "suggestId",
// "location": map
// });
// var myValue;//存储地址检索结果
// ac.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件
// var _value = e.item.value;
// myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
// G("searchResultPanel").innerHTML = "onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
// setPlace();
// });
// 地图移动到检索的位置,并且标记
// function setPlace() {
// map.clearOverlays(); //清除地图上所有覆盖物
// function myFun() {
// var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
// map.centerAndZoom(pp, 18);
// map.addOverlay(new BMapGL.Marker(pp)); //添加标注
// getCurrentLocation(pp.lng, pp.lat)
// }
// var local = new BMapGL.LocalSearch(map, { //智能搜索
// onSearchComplete: myFun
// });
// local.search(myValue);
// }
//确定地址 将数据传输到 uniapp 的 webview内
document.addEventListener('UniAppJSBridgeReady', function () {
if (addressPost != undefined) {
uni.postMessage({
data: {
position: addressPost,
jd: CURRENT_LNG,
wd: CURRENT_LAT
}
});
}
//uniapp 挂载完毕在内部可以使用uniapp 部分 api,具体看 官方文档 webview
// document.querySelector('.btn').addEventListener('touchstart', function () {
// map.clearOverlays()
// getCurrent()
// })
});
</script>
</body>
</html>