hybird app中使用百度地图定位并获得详细地址(逆地址解析)

背景:最近在使用hbuilder mui做的一个hybird app,其中使用到百度地图去定位并且获得详细地址

解决思路:首先,mui中提供了百度地图和高德地图的sdk,但是我觉得需求还没必要去配置sdk的程度,直接使用了浏览器的定位,如果你需要配置sdk的不妨看看这篇文章

http://www.bcty365.com/content-146-5084-1.html,我没有配置sdk直接用的浏览器的定位 参考:

http://www.54gcs.cn/program/javascript/30225.html             百度地图api:http://developer.baidu.com/map/jsdemo.htm#i8_1

上代码:html的很简单

<div id="allmap"></div>

下面js代码:

1.这段代码是在mui中使用的,如果你是纯网页jq的话直接在$(function(){});中写吧,把plus换成navigator即可                 

mui.plusReady(function() {
			//切记preload要在plusReady加载完之后调用
			plus.geolocation.getCurrentPosition(translatePoint, function(e) {
				mui.toast("异常:" + e.message);
			});
});
2.

/*
		 * 创建地图并且转换坐标
		 */
		function translatePoint(position) {
			var currentLon = position.coords.longitude;
			var currentLat = position.coords.latitude;
			var gpsPoint = new BMap.Point(currentLon, currentLat);
			//开始地址逆解析,显示自己当前的地点
			var geoc=new BMap.Geocoder();
			geoc.getLocation(gpsPoint,function(rs){
				var addComp=rs.addressComponents;
				//alert(addComp.province+","+addComp.city+","+addComp.district+","+addComp.street+","+addComp.streetNumber);
			    var userLocation=addComp.province+" "+addComp.city+" "+addComp.district+" "+addComp.street+" "+addComp.streetNumber+"  ";
			    document.getElementById("currentLocation").innerText=userLocation;
			    document.getElementById("probleminfo").innerText=userLocation;
			});
			//结束地址逆解析
			BMap.Convertor.translate(gpsPoint, 2, initMap); //坐标转换
		}

		function initMap(point) {
			map = new BMap.Map("allmap"); //创建地图
			map.addControl(new BMap.NavigationControl());
			map.addControl(new BMap.ScaleControl());
			map.addControl(new BMap.OverviewMapControl());
			map.centerAndZoom(point, 15);
			map.addOverlay(new BMap.Marker(point));

		}

3.效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值