Я пишу функцию watchPosition для функции geofencing в Touchgeo MapDotNet (http://www.mapdotnet.com/index.php/component/content/article?id=131). При начальной загрузке все работает превосходно; при обновлении я получаю только одну строку отладочных сообщений, указывая только на один обратный вызов, а GPS на моем телефоне никогда не включается. Вот моя функция watchPosition:watchPosition() срабатывает только один раз
navigator.geolocation.watchPosition(
function success(pos) {
$('#debug')
.prepend(
$('<div></div>').text('accuracy: ' + pos.coords.accuracy)
)
.css({
textAlign: 'right',
color: 'black'
});
var endpoint = isc.touchgeo.dataServicesEndpoint + "Map/mapname/Features/geofence?x={x}&y={y}&role={role}"
.replace("{x}", pos.coords.longitude)
.replace("{y}", pos.coords.latitude)
.replace("{role}", isc.touchgeo.authenticationMgr.getAuthorizationRecord().Role);
$.getJSON(endpoint, function success(data) {
$('#debug')
.prepend(
$('<div></div>').text('features: ' + data.length)
)
.css({
textAlign: 'right',
color: 'black'
});
for (layer in data) {
if (layer in geofencingRules) {
geofencingRules[layer](data[layer]);
}
}
});
},
function error(error) {
$('#debug')
.prepend(
$('<div></div>').text('error: ' + error.code)
)
.css({
textAlign: 'right',
color: 'black'
});
},
{
enableHighAccuracy: true,
maximumAge: 15000,
}
);
Любые идеи?
Установляет ли значение maximumAge в вашем обратном вызове фактически что-либо, кроме изменения локальной переменной? Разве значение не передается как значение, а не как ссылка? – nzjoel
Не уверен, что вы имеете в виду, но внизу я использую переменную как третий аргумент options функции watchPosition. Тем не менее, это 4-летнее путешествие. –