Ian*_*ger 5 javascript iphone google-maps geolocation iphone-web-app
查看Web GeoLocation API文档,有两种获取位置的方法 - getCurrentPosition
快速读取位置并watchPosition
监视位置的变化.
我正在寻找的是一种尽可能快地获得非常准确的位置读数的方法.我认为理想的做法是在getCurrentPosition
调用时使用精度阈值- 当达到阈值或超出超时时(尽可能准确地得到结果),将调用成功处理程序.
这还不存在,对吧?据推测,通过将watchPosition
方法包装在超时或达到阈值后停止检查来实现它是相当简单的.如果没有人知道内置方法来执行此操作,我将使用此方法(并打算发布代码)...
没有内置功能。我发现超时比设定的精度更好。通常,iPhone 上的精度不会超过 100 米左右,因此继续检查是否有更好的结果是浪费的。使用watchPosition()
效果最好,而且似乎是三角测量的,所以在读了三遍之后,它很少会变得更好。我只等了五秒钟就停下来。
演示: http: //jsfiddle.net/ThinkingStiff/3k859/
HTML:
<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)
脚本:
function setGeolocation() {
var geolocation = window.navigator.geolocation.watchPosition( function ( position ) {
document.getElementById( 'result' ).innerHTML +=
'lat: ' + position.coords.latitude + ', '
+ 'lng: ' + position.coords.longitude + ', '
+ 'accuracy: ' + position.coords.accuracy + '<br />';
},
function () {
//error
},
{
maximumAge: 250,
enableHighAccuracy: true
}
);
window.setTimeout( function () {
window.navigator.geolocation.clearWatch( geolocation )
}, 5000 );
};
setGeolocation();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1388 次 |
最近记录: |