1.通过浏览器自带的api
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(geoSuccess, geoError)
}else{
alert('浏览器不支持地理定位。')
}
2.处理成功逻辑
function geoSuccess(position) {
var lat = position.coords.latitude
var lng = position.coords.longitude
}
3.处理失败逻辑
geoError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
return alert('定位失败,用户拒绝请求地理定位')
case error.POSITION_UNAVAILABLE:
return alert('定位失败,位置信息是不可用')
case error.TIMEOUT:
return alert('定位失败,请求获取用户位置超时')
case error.UNKNOWN_ERROR:
return alert('定位失败,定位系统失效')
}
}
注意: 这个获取并不稳定,也不怎么准确,唯一的优点就是方便。
获取到经纬度之后, 可以通过调用 百度高德的 api (需注册申请) 获取到用户具体的位置
电脑浏览器很多都不行,反正我的chorme浏览器不行。手机上大部分可以识别到。
另外可以增加配置,设置超时时间,具体可以通过
https://developer.mozilla.org/zh-CN/docs/Web/API/Geolocation/getCurrentPosition
了解