html5获取经纬度

本程序需要支持html5的浏览器,如果需要利用经纬度获取地理名称,那么还需要注册成为百度开发者,要申请key,用在ak参数中。

 

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>HTML5获取地理位置定位信息</title>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
</head>

<body>

<div id="main">

<div class="demo">
<p>地理坐标:<span id="latlon"></span></p>
<div class="geo">
<p id="baidu_geo"></p>
</div>

</div>

</div>

<script>
function getLocation(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition,showError);
}else{
alert("浏览器不支持地理定位。");
}
}

function showPosition(position){
$("#latlon").html("纬度:"+position.coords.latitude +',经度:'+ position.coords.longitude);
var latlon = position.coords.latitude+','+position.coords.longitude;

//baidu
var url = "http://api.map.baidu.com/geocoder/v2/?ak=百度开发者key&callback=renderReverse&location="+latlon+"&output=json&pois=0";
$.ajax({
type: "GET",
dataType: "jsonp",
url: url,
beforeSend: function(){
$("#baidu_geo").html('正在定位...');
},
success: function (json) {
if(json.status==0){
$("#baidu_geo").html(json.result.formatted_address);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#baidu_geo").html(latlon+"地址位置获取失败");
}
});

}

function showError(error){
switch(error.code) {
case error.PERMISSION_DENIED:
alert("定位失败,用户拒绝请求地理定位");
break;
case error.POSITION_UNAVAILABLE:
alert("定位失败,位置信息是不可用");
break;
case error.TIMEOUT:
alert("定位失败,请求获取用户位置超时");
break;
case error.UNKNOWN_ERROR:
alert("定位失败,定位系统失效");
break;
}
}

getLocation();
</script>

</body>
</html>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.