Geolocation

无意间看见h5新api关于浏览器地理位置定位
所以了解了一下,关于Geolocation在工作上的应用

注意:

  • 1.Geolocation(地理定位)对于拥有 GPS 的设备,比如 iPhone,地理定位更加精确。

  • 2.在微信的WebView中可以获取位置,QQ的WebView中 Geolocation不可用。

  • 3.在移动终端的watchPosition()监听触发间隔比PC端短很多。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52


/* 普通获取用户坐标 */
if (navigator.geolocation) {
//获取地理位置需要等比较长的一段时间
//尤其是在PC段,根据IP获取的
navigator.geolocation.getCurrentPosition(successCB, errorCB);
} else {
console.log('你的浏览器不支持地理定位');
}

/* 使用精确模式获取用户坐标 */
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(locationSuccess, locationError,{
// 指示浏览器获取高精度的位置,默认为false
enableHighAccuracy: true,
// 指定获取地理位置的超时时间,默认不限时,单位为毫秒
timeout: 5000,
// 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
maximumAge: 3000
});
}else{
alert("Your browser does not support Geolocation!");
}

//获取地理位置成功
function successCB(position) {
console.info(position);
console.log('位置精度:' + position.coords.accuracy);
console.log('维度:' + position.coords.latitude);
console.log('经度:' + position.coords.longitude);
}
//获取地理位置失败
function errorCB(error) {
console.error(error);
var msg = '';
switch (error.code) {
case error.PERMISSION_DENIED:
msg = "用户拒绝对获取地理位置的请求。"
break;
case error.POSITION_UNAVAILABLE:
msg = "位置信息是不可用的。"
break;
case error.TIMEOUT:
msg = "请求用户地理位置超时。"
break;
case error.UNKNOWN_ERROR:
msg = "未知错误。"
break;
}
console.error(msg);
}
-------------本文结束感谢您的阅读-------------
来而不往,非礼也!
分享到: 更多