h5(jq)对接高德地图,获取当前详细位置

649 阅读1分钟

第一、注册高德地图账号,获取key(注意Key必须为 Web端(JS API)这个类型)

image.png 第二、页面中引入js

image.png

第三、js代码

function maps() {

  //加载地图,调用浏览器定位服务
  let map = new AMap.Map('map', {
    resizeEnable: true
  });

  AMap.plugin('AMap.Geolocation', function () {

    let 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) {

  lnglatXY = [data.position.getLng(), data.position.getLat()]; //已知点坐标

  regeocoder(lnglatXY);

}

//解析定位错误信息

function onError(data) {   alert('定位失败') }

function regeocoder(loc) {

//逆地理编码

  var geocoder = new AMap.Geocoder({

    radius: 1000,

    extensions: "all"

  });

  geocoder.getAddress(loc, function (status, result) {

    if (status === 'complete' && result.info === 'OK') {

      geocoder_CallBack(result);

    } else {

      alert('获取定位失败')

    }

  });

}

function geocoder_CallBack(data) {

//获取地址描述

  var address = data.regeocode.formattedAddress;

}