html5经纬度定位源码_h5实现获取⽤户地理定位的实例代码最近做的⼀个项⽬中有⼀个获取周围商户的功能,需要⽤到地理定位系统,
html导航源码于是便想到了⽤ h5 的地理定位,查阅了下资料后,简单封装了下代码。
const getPosition = (
timeout = 10000,
maximumAge = 60000,
enableHighAcuracy = false) => new Promise((resolve, reject) => {
if (!navigator && !location) {
return reject(new Error('geolocation api not supported'))
}
const success = (loc) => {
const location = {
latitude: ds.latitude, // 纬度
longitude: ds.longitude, // 经度
accuracy: ds.accuracy // 精确度
}
resolve(location)
}
const error = () => reject('出错了')
enableHighAcuracy, // 指⽰浏览器获取⾼精度的位置,默认为false
timeout, // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
maximumAge // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
})
})
// 使⽤⽰例
getPosition()
.then(pos => pos)
.catch(err => console.log(err))
h5 的获取地理位置的 api 确实是很好⽤,不过由于获取⽤户的地理位置是属于⽤户的隐私,所以需要经过⽤户的授权才可以。
⽆论⽤户拒绝还是允许授权,该站点都会被浏览器缓存下来,下次访问的时候就不会再次询问⽤户了,除⾮⽤户⼿动移除该规定。在chrome 中移除规则的地址在设置⾥⾯,如下图:
另外如果⽤户拒绝了,则可以通过选择 ip 来获取经纬度,⼀般误差会⽐较⼤
ipip是⼀个可以通过ip获取⽤户地理位置信息的⽹站。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持脚本之家。