我在浏览器应用中有一些非常基本的GeoLocation代码,它必须为纬度/经度和TimeStamp报告准确的GPS值。
这一直适用于Android设备,iPhone适用于iOS 5.1.1。
现在我们的一个用途已升级到iOS 6.0.1,并且返回的时间戳现在都无效。
javascript代码的基本形式为:
navigator.geolocation.getCurrentPosition(foundLocation, noLocation, { enableHighAccuracy: accuracyVal, timeout: timeoutVal, maximumAge: maxageVal }
function foundLocation(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
var gps_ts = position.timestamp;
}
Android设备继续返回与实时匹配的gps_ts UNIX时间戳,但是对于iOS 6,我们得到的时间戳转换为1958年到1969年间的奇数日期时间。它们似乎是按时间顺序测量的,因为值随着连续使用而增加,但它们不再是当前时间的UNIX时间戳。
对此的帮助将不胜感激。我看到有其他报告支持iOS 6地理位置(请参阅https://discussions.apple.com/thread/4313850?start=0&tstart=0),但没有具体说明javascript使用和时间戳功能。
答案 0 :(得分:2)
我今天一直在尝试这个。据我所知,iOS中的timestamp
基本上比其他浏览器的分辨率高1000倍(微秒而不是毫秒)。我写了一个像这样的辅助函数来解决它:
function getGeoTimestampDate(timestamp) {
if (timestamp > 14000000000000) { timestamp = Math.floor(timestamp / 1000); }
return new Date(timestamp);
}
我只能在几台设备上测试(原装iPad和iPhone 4,都在iOS 6.0.1上),所以如果有人能确认它是否适用于其他设备,我会很感激。