mui引入百度地图js Api 打包后部分手机报延迟问题

烦烦烦,难难难,一通乱干,回头看,怎生合欢啊~
所以在此劝大家,别一颗树上吊死,多试试旁边那些颗。。。。

进入主题:
应用百度地图javascript API本质还是调用的浏览器自身的geolocation进行封装实现的,也就是说如果原本不能wifi+基站定位,用百度、高德的javascript api的效果是一样的。

所以,只能求助咱们伟大的H5api 了。果然,泱泱H5没令我失望,话不多说,呈上代码…

	// 扩展API加载完毕后调用onPlusReady回调函数 
				document.addEventListener('plusready', onPlusReady, false);
				// 扩展API加载完毕,现在可以正常调用扩展API
				function onPlusReady() {
					plus.navigator.setStatusBarStyle('dark');
					mui.init();
					var positions = {
						lat: 0,
						lng: 0
					}
					plus.geolocation.getCurrentPosition(function(p) {

						positions.lat = p.coords.latitude
						positions.lng = p.coords.longitude
						localStorage.setItem("current_position", JSON.stringify(positions))
						localStorage.setItem("current_address", p.addresses)
						localStorage.setItem("current_city", p.address.city)
					}, function(e) {
						alert('Geolocation error: ' + e.message);
					});

这样就获取到了当前位置的所有信息了(省,市,纬度…)

因为此处需配合百度地图,所有此处获取的定位标记点在百度地图中是存在些许偏差的,所有我们需要用它的地址解析百度地图的定位:

// 开启SDK辅助定位
				setTimeout(function(){
				let crpt = JSON.parse(localStorage.getItem("current_position"))
				point = new BMap.Point(crpt.lng, crpt.lat);

				var myGeo = new BMap.Geocoder();
				// 将地址解析结果显示在地图上,并调整地图视野    
				myGeo.getPoint(localStorage.getItem("current_address"), function(point) {
					if(point) {

						var mk = new BMap.Marker(point);
						map.addOverlay(mk);
						localStorage.setItem("current_position", JSON.stringify(point))
						map.panTo(point);
						//点击回到当前位置
						mui('.mui-content').on('tap', '.dingwei', function() {

							map.panTo(point);

						})

					} else {
						alert("获取定位失败")
					}
				}, localStorage.getItem("current_city"));
				},5000)
				

因为百度地图加载存在异步,所以让其加载慢一点,慢一点…

这样的话,我们伟大的H5就解决我的所需了啊!!!!

题外话:各位还在mui阶段的孩子,我建议尽早专uniapp,因为这货真的坑!!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值