Я работаю над WebApp для мобильных пользователей, которые доходят до предопределенного местоположения и поначалу могут видеть <div>
(текст, изображение или что-то еще). Итак, у меня есть предопределенное местоположение и текущее местоположение пользователя. Если оба места равны, я что-то покажу. Как я могу это сделать? Этот код не работает:Geolocation watchPosition. Как получить одно событие при достижении местоположения?
var id, ziel, options;
//Verfolgen beginnen
id = navigator.geolocation.watchCurrentPosition(verfolgePosition);
function verfolgePosition(pos) {
var aktuell = pos.coords;
if (ziel.latitude === aktuell.latitude && ziel.longitude === aktuell.longitude) {
console.log('Sie haben Ihr Ziel erreicht');
//Verfolgen beenden
navigator.geolocation.clearWatch(id);
}
}
ziel = {
latitude : 0,
longitude: 0
};
options = {
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 0
};
, кстати, цель может быть:
ziel = {
latitude : 52.514971,
longitude: 13.369172
};
Нет метода 'watchCurrentPosition()'. То, что вы ищете, это '.watchPosition()' [w3] (https://dev.w3.org/geo/api/spec-source.html#watch-position)/[mdn] (https: // developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition) – Andreas
Да, это правда. Я изменил его на «.watchPosition», но он работал только один раз. Возможно, потому что подвижное местоположение (мобильное устройство) меняется на быстрое, чтобы получить точную фиксированную позицию, также если я тестирую этот скрипт в том же положении. Как я могу это исправить? – kubus1234
Из ссылки w3 в моем комментарии: «В шаге 5.2.2 процесса просмотра ** successCallback вызывается только ** при получении новой позиции и эта позиция ** значительно отличается от ранее сообщенной позиции **. Определение того, что представляет собой существенную разницу, остается для реализации. ** Кроме того, в шагах 5.2.2 и 5.2.3 реализации могут налагать ограничения на частоту обратных вызовов, чтобы избежать непреднамеренного потребления непропорционального количества ресурсов ** ._ " – Andreas