手機(jī)H5想要獲取地理位置需要的工具,或者API:
百度地址api
手機(jī)H5獲取地理位置圈膏,直接上代碼塔猾,
<!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,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微軟雅黑";}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的ak密鑰"></script>
<title>地址解析</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(
function(p){
var latitude=p.coords.latitude;//獲取坐標(biāo)點(diǎn)緯度
var longitude=p.coords.longitude;//獲取坐標(biāo)點(diǎn)經(jīng)度
//以指定的經(jīng)度與緯度創(chuàng)建一個(gè)坐標(biāo)點(diǎn)
var po=new BMap.Point(longitude,latitude);
//創(chuàng)建一個(gè)地理解析器
var geocoder=new BMap.Geocoder();
//獲取位置
geocoder.getLocation(po,function(rs){
//獲取地理組件
var addComp=rs.addressComponents;
//獲取省份
var province=addComp.province;
//獲取城市
var city=addComp.city;
//獲取區(qū)縣
var district=addComp.district;
//獲取街道
var street=addComp.street;
//獲取街道號(hào)
var streetNumber=addComp.streetNumber;
alert(latitude);
alert(longitude);
alert(province+city+district+street+streetNumber);
});
},function(e){
switch (e.code) {
case e.TIMEOUT:
alert("定位失敗,請(qǐng)求獲取用戶(hù)位置超時(shí)");
break;
case e.PERMISSION_DENIED:
alert("您拒絕了使用位置服務(wù)功能稽坤,查詢(xún)已取消");
break;
case e.POSITION_UNAVAILABLE:
alert("抱歉丈甸,暫時(shí)無(wú)法為您所在的星球提供位置服務(wù)");
break;
case e.UNKNOWN_ERROR:
alert("發(fā)生一個(gè)位置錯(cuò)誤");
break;
}
},{
//指示瀏覽器獲取高精度的位置,默認(rèn)false
enableHighAcuracy: true,
//指定獲取地理位置的超時(shí)時(shí)間尿褪,默認(rèn)不限時(shí)睦擂,單位為毫秒
timeout:5000,
//最長(zhǎng)有效期,在重復(fù)獲取地理位置時(shí)杖玲,此參數(shù)指定多久再次獲取位置
maximumAge:2000
}
);
}else{
alert("不支持");
}
</script>