getLocation 获取地理位置

优质
小牛编辑
132浏览
2023-12-01
Since 8.1

getLocation

该接口已经不建议使用, 请调用新接口getCurrentLocation
getLocation用来获取用户当前的地理位置信息

使用方法

AlipayJSBridge.call('getLocation', function (result) {
  alert(JSON.stringify(result));
});

代码演示

获取用户详细地理位置信息

<h1>点击获取详细地理位置信息</h1>
<p>一般情况下还会返回周围兴趣点</p>
<a href="#" class="btn read">点击获取定位信息</a>
<script>
function ready(callback) {
  // 如果jsbridge已经注入则直接调用
  if (window.AlipayJSBridge) {
    callback && callback();
  } else {
    // 如果没有注入则监听注入的事件
    document.addEventListener('AlipayJSBridgeReady', callback, false);
  }
}
ready(function() {
  document.querySelector('.read').addEventListener('click', function() {
    AlipayJSBridge.call('getLocation', function(result) {
      if (result.error) {
        alert(result.errorMessage);
        return;
      }

      alert(JSON.stringify(result));
    });
  });
});
</script>
查看演示 扫码查看 用支付宝扫码运行

获取用户地址经纬度

<h1>点击获取用户所在地经纬度</h1>
<a href="#" class="btn read">点击获取定位信息</a>
<script>
function ready(callback) {
  // 如果jsbridge已经注入则直接调用
  if (window.AlipayJSBridge) {
    callback && callback();
  } else {
    // 如果没有注入则监听注入的事件
    document.addEventListener('AlipayJSBridgeReady', callback, false);
  }
}
ready(function() {
  document.querySelector('.read').addEventListener('click', function() {
    AlipayJSBridge.call('getLocation', { requestType: 2 }, function(result) {
      if (result.error) {
        alert(result.errorMessage);
        return;
      }

      alert(JSON.stringify(result));
    });
  });
});
</script>
查看演示 扫码查看 用支付宝扫码运行

API

AlipayJSBridge.call('getLocation', {
  cacheTimeout, requestType, reGeocodeServiceType, timeout, horizontalAccuracy
}, fn)
名称类型描述必选默认值版本
cacheTimeoutfloat钱包经纬度定位缓存过期时间,单位秒,例如:钱包上一次定位时间是10:00:00,当前调用cacheTimeout=5,当前时间是10:00:06,则判断缓存过期不可用,会重新定位N30s9.0
requestTypeint0:详细逆地理编码,带周边信息(当使用MobileLBS服务时,当遇到流量巨大时可能会做降级处理,届时可能没有poi周边信息)
1:逆地理编码到城市
2:仅获取经纬度
N09.0.1
timeoutfloat定位超时失败回调时间,单位秒N10s9.0.1
horizontalAccuracyfloat定位精度,默认是不限制精度。当超过误差精度时,会继续等待位置更新,直到超时,超时处理使用最后一次定位的经纬度。N9.0.1
fnfunction定位完成后被调用的回调函数N9.0.1

出参

回调函数带入的参数result: {error, extError, latitude, longitude, country, countryCode, city, province, citycode, adcode, streetNumber, pois}

名称类型描述版本
errorint错误码(12:请确认定位相关权限已开启; 13:定位失败,请稍后再试; 14:网络异常,请稍后再试; 15:定位失败,请稍后再试)10.0.18
extErrorint扩展错误码(android上由高德SDK导出)8.6
latitudedouble纬度8.1
longitudedouble经度8.1
countrystring国家(requestType为0,1时生效)9.6.6
countryCodestring国家编号(requestType为0,1时生效)9.6.6
citystring城市,建议result.city?result.city:result.province这样来获取city)8.1
provincestring省份8.1
citycodestring城市编码8.2
adcodestring区域编码8.2
streetNumberobject门牌信息,结构是:{street, number}8.2
poisarray周边兴趣点8.2

使用注意

  • getLocation不能获取provinceCode。
  • getLocation不能获取district信息,比如 中国浙江省杭州市西湖区万塘路18号 这个地址,getLocation不会返回西湖区这个信息。