window.navigator.geolocation对象 返回经纬坐标等元数据信息
console.log( window.navigator.geolocation )
返回空对象,对象的原型上有三个方法:
clearWatch() // 停止获取位置
getCurrentPosition() // 获取位置
watchPosition() // 定期自动获取位置
navigator.geolocation.getCurrentPosition(suc, err)
function suc(position) {
console.log(position)
}
function err() {
console.log('err')
}
获取位置方法需要三个参数:
参数1: 成功回调:
如果成功得到(从浏览器底层得到,不管什么方法)执行成功回调函数,失败执行失败函数。成功函数中默认有一个position参数,打印一下看看
accuracy:经纬度的精度
altitude:null海拔
altitudeAccuracy:null海拔的精度
heading:null设备前进方向
latitude:34.0653347纬度
longitude:-118.24389099999999经度
speed:null设备前进速度
timestamp: 获取地理位置信息的时间
我们可以根据获取经纬度来判断城市所在的位置。
参数2: 失败回调:
失败的错误信息:
function err(positionError) {
console.log(positionError)
}
描述: 用户拒绝位置定位
code属性:
1 用户拒绝了位置服务
2 获取不到位置信息
3 获取信息超时
var obj = {
timeout: 1000
}
navigator.geolocation.getCurrentPosition(suc, err, obj)
function suc(position) {
console.log(position)
}
function err(positionError) {
console.log(positionError)
}
如果1s以后还不能获取到则报3的错误,timeout是固定的写法。
参数3:obj 可选参数
enableHighAccuracy:是否要求高精度的地理位置信息
timeout: 超时限制
maximumAge: 缓存有效时间,若为0则无条件重新获取新地理信息
监事位置信息
var id = navigator.geolocation.watchPosition(suc, err, obj);
// 同样也是三个参数
持续定期的自动获取用户的当前地理位置信息,并同计时器一样有个位置标识。
可以连续获取,利用canvas点连线做成图,做成运动轨迹。
停止获取位置信息
navigator.geolocation.clearWatch(id);
总结: 只是了解了一下,有兴趣可以调用百度地图API, 申请密钥捣鼓捣鼓。