利用html5新增geolocation对象加百度地图API获取用户详细地址

废话不多说,直接上代码


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
		<script>
			(function getAddr() {
			   var geolocation = navigator.geolocation;
			   geolocation.getCurrentPosition(
			   function(position){
					  var coords = [];<span style="font-family: Arial, Helvetica, sans-serif;">//获取用户经纬度</span>
					  var latitude = position.coords.latitude;
					  var longitude = position.coords.longitude;
					  coords.push(latitude);
					  coords.push(longitude);
					  coords = coords.join();
						if(coords != ''){
							//调用百度地图api把经纬度转换成具体地址,由于ajax的同源限制,此处采用jsonp的方式,另外写了一个showAddr
							var api = 'http://api.map.baidu.com/geocoder/v2/?ak=qxVuv98bZnwXqMU3fmmxXSoF&callback=showAddr&location=' + coords + '&output=json&pois=0';
							var script = $('<script/>').appendTo($('body'));
							script.attr('src' , api);
						}
			   }, function(err){
					alert(err.message + ' : ' + err.code);
			   });
			})();

			//百度地图API回调的函数
			function showAddr(obj){
				if(obj.status == 0){
					var result = obj.result;
					var addr = {
						province : result.addressComponent.province,
						city : result.addressComponent.city,
						district : result.addressComponent.district,
						formatted_address : result.formatted_address
					};
					
					alert('province' + ' : ' + addr.province + "\n" + 'city' + ' : ' + addr.city + "\n" + 'district' + ' : ' +addr.district + "\n" + 'formatted_address' + ' : ' + addr.formatted_address);

				}
			}
		
		</script>
	</head>
	
	<body>
	</body>
	
</html>


注意,此代码需要在移动设备上才可正常运行,可以传到服务器上测试,首次运行会向用户请求权限

geolocation的使用介绍:

http://wiki.jikexueyuan.com/project/html5/geolocation.html

百度API的官方手册:

http://developer.baidu.com/map/index.php?title=webapi/guide/webservice-geocoding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值