<!-- 加载地图JSAPI脚本 --> <script src="https://webapi.amap.com/maps?v=1.4.11&key=申请的高德地图的key"></script> <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<div id="container"></div> <div class="info"> <h4 id='status'></h4><hr> <p id='result'></p><hr> <p id='result1'>地址信息:</p><hr> </div> <script type="text/javascript"> var lnglatXY=''; var map = new AMap.Map('container', { resizeEnable: true }); map.plugin('AMap.Geolocation', function() { var geolocation = new AMap.Geolocation({ enableHighAccuracy: true,//是否使用高精度定位,默认:true timeout: 40000, //超过10秒后停止定位,默认:5s buttonPosition:'RB', //定位按钮的停靠位置 buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) zoomToAccuracy: true, //定位成功后是否自动调整地图视野到定位点 }); map.addControl(geolocation); geolocation.getCurrentPosition(function(status,result){ if(status=='complete'){ onComplete(result) }else{ onError(result) } }); }); //解析定位结果 function onComplete(data) { document.getElementById('status').innerHTML='定位成功' var str = []; str.push('定位结果:' + data.position); lnglatXY=data.position; str.push('定位类别:' + data.location_type); if(data.accuracy){ str.push('精度:' + data.accuracy + ' 米'); }//如为IP精确定位结果则没有精度信息 str.push('是否经过偏移:' + (data.isConverted ? '是' : '否')); document.getElementById('result').innerHTML = str.join('<br>'); //获取定位之后,调用逆地址解析 regeocoder(); } //解析地理编码结果 function regeocoder() { var geocoder = new AMap.Geocoder({ //构造函数,提供地理编码或逆地理编码功能 radius: 1000, //逆地理编码时,以给定座标为中心点 extensions: "all" //逆地理编码时,返回信息的详略,默认值:base,返回基本地址信息;取值为:all,返回地址信息及附近poi、道路、道路交叉口等信息 }); geocoder.getAddress(lnglatXY, function(status, result) { if(status === 'complete' && result.info === 'OK') { geocoder_CallBack(result); } }); var marker = new AMap.Marker({ //加点 map: map, position: lnglatXY }); map.setFitView(); } function geocoder_CallBack(data) { //返回地址描述, // regeocode:逆地理编码结果,仅逆地理编码返回, // formattedAddress:格式化地址,规则:地址信息=基本行政区信息+具体信息;基本行政信息=省+市+区+乡镇 var address = data.regeocode.formattedAddress; document.getElementById("result1").innerHTML = address; } //解析定位错误信息 function onError(data) { alert(JSON.stringify(data)); document.getElementById('status').innerHTML='定位失败' document.getElementById('result').innerHTML = '失败原因排查信息:'+data.message; } </script>