1.HTML
<div id="container"></div>
2.高德地图webapi引入
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.13&key=在高德地图开放平台获取到的key"></script>
3.js详细代码奉上,若有问题可留言 亲测可用
function getmap(){
var map = new AMap.Map('container', {
resizeEnable: true
});
AMap.plugin('AMap.Geolocation', function() {
var geolocation = new AMap.Geolocation({
enableHighAccuracy: true,//是否使用高精度定位,默认:true
timeout: 10000, //超过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) {
localStorage.setItem('ptLat',data.position.lat);
localStorage.setItem('ptLng',data.position.lng);
geocoder(data.position.lng, data.position.lat);//已获取到的经纬度传入参数即可
}
//解析定位错误信息
function onError(data) {
document.getElementById('status').innerHTML='定位失败'
document.getElementById('result').innerHTML = '失败原因排查信息:'+data.message;
}
//经纬度转换为地址
function geocoder(lnglatX, lnglatY, cityCode) {
var geocoder = new AMap.Geocoder({
city : cityCode, //城市,默认:“全国”
radius : 1000 //范围,默认:500
});
geocoder.getAddress([lnglatX, lnglatY], function(status, result) {
if (status === 'complete' && result.info === 'OK') {
geocoder_CallBack(result);
}
});
}
function geocoder_CallBack(data) {
var geocode = data.regeocode;
$('span.address_z').html(geocode.formattedAddress);//获取到的详细地址
}
}