Географическое положение Chrome игнорирует параметр MaximumAge. - PullRequest
9 голосов
/ 23 ноября 2011

Я пытаюсь использовать параметр MaximumAge в геолокации HTML.То, как он работает в Chrome, похоже, не соответствует спецификации.

Я прочитал спецификацию API геолокации и из того, что я могу понять, если вы устанавливаете MaximumAge на ноль, вы всегда должны получить новую позицию.

Атрибут MaximumAge указывает, что приложение готово принять кэшированную позицию, возраст которой не превышает указанное время в миллисекундах.Если MaximumAge установлен в 0, реализация должна немедленно попытаться получить новый объект позиции.Установка MaximumAge в Бесконечность должна определять реализацию для возврата кэшированной позиции независимо от ее возраста.Если у реализации нет доступной кэшированной позиции, возраст которой не превышает указанный MaximumAge, тогда она должна получить новый объект позиции.В случае watchPosition (), MaximumAge ссылается на первый объект позиции, возвращаемый реализацией.

Однако, это мой код:

function gpsSuccess(pos) {
   var positionDate = new Date(pos.timestamp);
   var currentDate = new Date();
   console.log(positionDate.toLocaleString(), currentDate.toLocaleString());
}
watchId = navigator.geolocation.watchPosition(gpsSuccess,
    gpsFail, {
        enableHighAccuracy: true,
        maximumAge: 0,
        timeout: 27000
});

И явидя следующее:

Wed Nov 23 2011 10:25:43 GMT+0000 (GMT), Wed Nov 23 2011 10:52:16 GMT+0000 (GMT)

Так что это разница получаса между полученной позицией и текущим временем.

Я думал, что это может быть просто разница между временем спутника и местным временем, но я неоднократно нажимал на обновление, и positionDate не меняется, даже если currentDate есть.

Почему повторно используется та же самая кэшированная позиция, даже если MaximumAge установлен на ноль?

Это в Chrome, кстати.

1 Ответ

0 голосов
/ 12 декабря 2013

Это невозможно. То же самое происходит с некоторыми тегами html5, такими как речь webkit, которые нельзя активировать с помощью кода. Извините, у вас нет особого контроля над этим.

...