只要手机有GPS模块,可以用HTML5的Geolocation接口获取
在HTML5中,geolocation作为navigator的一个属性出现,它本身是一个对象,拥有三个方法:
getCurrentPosition
watchPosition
clearWatch
1.简单
function
getLocation(){
if(navigator
.geolocation
){
navigator
.geolocation
.getCurrentPosition(function(pos
){
console
.log("经度:"+pos
.coords
.longitude
+
"纬度:"+pos
.coords
.latitude
)
})
}else{
console
.log("当前系统不支持GPS API")
}
}
2.比较全面的,其实没必要
function
getLocation(){
var options
={
enableHighAccuracy
:true,
maximumAge
:1000
}
if(navigator
.geolocation
){
navigator
.geolocation
.getCurrentPosition(onSuccess
,onError
,options
);
}else{
alert("浏览器不支持geolocation");
}
}
获取成功时
function
onSuccess(pos
){
console
.log("经度:"+pos
.coords
.longitude
+
"纬度:"+pos
.coords
.latitude
)
}
获取失败时,这个错误故意写得详细点,让你明白为什么失败
function
onError(error
){
switch(error
.code
){
case 1:
alert("位置服务被拒绝");
break;
case 2:
alert("暂时获取不到位置信息");
break;
case 3:
alert("获取信息超时");
break;
case 4:
alert("未知错误");
break;
}
}
other
if(navigator
.geolocation
){
var getOptions
= {
enableHighAccuracy
:true,
timeout
:5000,
maximumAge
:0
};
navigator
.geolocation
.getCurrentPosition(getSuccess
, getError
, getOptions
);
function
getSuccess(position
){
console
.log(position
.timeStamp
);
console
.log(position
.coords
.latitude
);
console
.log(position
.coords
.longitude
);
console
.log(position
.coords
.altitude
);
console
.log(position
.coords
.accuracy
);
console
.log(position
.coords
.altitudeAccuracy
);
console
.log(position
.coords
.heading
);
console
.log(position
.coords
.speed
);
if(position
.address
){
console
.log(position
.address
.country
);
console
.log(position
.address
.province
);
console
.log(position
.address
.city
);
}
}
function
getError(error
){
switch(error
.code
){
case error
.TIMEOUT
:
console
.log('超时');
break;
case error
.PERMISSION_DENIED
:
console
.log('用户拒绝提供地理位置');
break;
case error
.POSITION_UNAVAILABLE
:
console
.log('地理位置不可用');
break;
default:
break;
}
}
var watcher_id
= navigator
.geolocation
.watchPosition(getSuccess
, getError
, getOptions
);
clearWatch(watcher_id
);
}