高德地图获取地理位置经纬度并将经维度转化为详细地址信息
<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> <title>浏览器定位</title> <link rel="stylesheet" href="https://cache.amap.com/lbs/static/main1119.css"/> <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.6&key=8a1b9d2eb62671c0b1b5f06e5effd81b&plugin=AMap.Geocoder"></script> <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script> <body> <div id='container'></div> <div id="tip"></div> <div id="tip"> <b>经纬度 116.396574, 39.992706 的地理编码结果:</b> <span id="result"></span> </div> <script type="text/javascript"> /*************************************** 由于Chrome、IOS10等已不再支持非安全域的浏览器定位请求,为保证定位成功率和精度,请尽快升级您的站点到HTTPS。 ***************************************/ var map, geolocation; //加载地图,调用浏览器定位服务 map = new AMap.Map('container', { resizeEnable: true }); map.plugin('AMap.Geolocation', function() { geolocation = new AMap.Geolocation({ enableHighAccuracy: true,//是否使用高精度定位,默认:true timeout: 10000, //超过10秒后停止定位,默认:无穷大 buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false buttonPosition:'RB' }); map.addControl(geolocation); geolocation.getCurrentPosition(); AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息 AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息 }); //解析定位结果 function onComplete(data) { var str=['定位成功']; str.push('经度:' + data.position.getLng()); str.push('纬度:' + data.position.getLat()); lnglatXY = [data.position.getLng(),data.position.getLat()]; //已知点坐标 regeocoder(lnglatXY); if(data.accuracy){ str.push('精度:' + data.accuracy + ' 米'); }//如为IP精确定位结果则没有精度信息 str.push('是否经过偏移:' + (data.isConverted ? '是' : '否')); document.getElementById('tip').innerHTML = str.join('<br>'); } //解析定位错误信息 function onError(data) { document.getElementById('tip').innerHTML = '定位失败'; } function regeocoder(loc) { //逆地理编码 var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" }); geocoder.getAddress(loc, function(status, result) { if (status === 'complete' && result.info === 'OK') { console.dir(result); geocoder_CallBack(result); } }); var marker = new AMap.Marker({ //加点 map: map, position: loc }); map.setFitView(); } function geocoder_CallBack(data) { var address = data.regeocode.formattedAddress; //返回地址描述 document.getElementById("result").innerHTML = address; } </script> </body> </html>