您的位置:首页 > 其它

根据经纬度获取百度地图的详细地址信息

2016-03-16 11:58 781 查看
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestLocation.aspx.cs" Inherits="TestLocation" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="js/jquery-1.9.1.js"></script>
<script>
if (window.navigator.geolocation) {
var options = {
enableHighAccuracy: true,
};
window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options);
} else {
alert("浏览器不支持html5来获取地理位置信息");
}

function handleSuccess(position) {
// 获取到当前位置经纬度  本例中是chrome浏览器取到的是google地图中的经纬度
var lng = position.coords.longitude;
var lat = position.coords.latitude;
//alert(lng + "," + lat);
$("#allmap").html(lng + "," + lat); //121.37460118242566,31.235583274897206
show(lng,lat);
}

function handleError(error) {//获取经纬度失败调用函数 如:用户拒绝授权

}
function show(lng, lat) {

$.ajax({
url: "http://api.map.baidu.com/geoconv/v1/",    //请求的url地址   将获取的经纬度转换为百度地图的经纬度,不转会有误差
dataType: "jsonp",   //返回格式为json
async: true, //请求是否异步,默认为异步,这也是ajax重要特性
data: { "coords": lng + "," + lat, "from": "1", "to": "5", "ak": "申请的百度秘钥" },//参数值coords:纬度,精度
type: "GET",   //请求方式
beforeSend: function () {
//请求前的处理
},
success: function (req) {
//请求成功时处理
var lan_lon = req.result[0].y + "," + req.result[0].x;//精度,纬度
$.ajax({
url: "http://api.map.baidu.com/geocoder/v2/",    //请求的url地址
dataType: "jsonp",   //返回格式为json
async: true, //请求是否异步,默认为异步,这也是ajax重要特性
data: { location: lan_lon, pois: 1, ak: "申请的百度秘钥",output:"json" },    //参数值
type: "GET",   //请求方式
beforeSend: function () {
//请求前的处理
},
success: function (req) {
//请求成功时处理
alert(req.result.formatted_address);
},
complete: function () {
//请求完成的处理
},
error: function () {
//请求出错处理
}
});
},
complete: function () {
//请求完成的处理
},
error: function () {
//请求出错处理
}
});
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div id="allmap"></div>
</form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: