HTML5中可以通过IP,WIFI信息,GPS,来实现地理定位,当然相关精度也是有所不同,所以如果要精确导航就得使用GPS信息。
下面是一段HTML5结合百度地图API来获取位置的代码:
<div id="allmap"></div>当前定位地址:<a id="du-gps"></a><span></span></div><script>
var map = new BMap.Map("allmap")
var geolocation = new BMap.Geolocation()
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
map.panTo(r.point)
//alert('您的位置:'+r.point.lng+','+r.point.lat)
var pt = r.point
var geoc = new BMap.Geocoder()
geoc.getLocation(pt, function(rs){
var addComp = rs.addressComponents
//alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber)
$("#du-gps").text(addComp.district+addComp.street+addComp.streetNumber)
})
}
else {
alert('failed'+this.getStatus())
}
},{enableHighAccuracy: true})
</script>
<!DOCTYPE html><html>
<body>
<p id="demo">点击这个按钮,获得您的坐标:</p>
<button onclick="getLocation()">试一下</button>
<script>
var x=document.getElementById("demo")
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition)
}
else{x.innerHTML="Geolocation is not supported by this browser."}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br />Longitude: " + position.coords.longitude
}
</script>
</body>
</html>
1、检测是否支持地理定位
2、如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
3、如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象
4、showPosition() 函数获得并显示经度和纬度
希望对你有帮助,望采纳!
function getLocation() {//检查浏览器是否支持地理位置获取
if (navigator.geolocation) {
//若支持地理位置获取,成功调用showPosition(),失败调用showError
// alert("正在努力获取位置...")
var config = { enableHighAccuracy: true, timeout: 5000, maximumAge: 30000 }
navigator.geolocation.getCurrentPosition(showPosition, showError, config)
} else {