Код: Выделить всё
const subscription = await Location.watchPositionAsync(
{
accuracy: Location.Accuracy.High,
distanceInterval: 30, // Update every 30 meters
timeInterval: 15000 // Or every 15 seconds
},
(location) => {
// Calculate distance if we have previous coordinates
if (previousCoords) {
const newDistance = calculateDistance(
previousCoords.latitude,
previousCoords.longitude,
location.coords.latitude,
location.coords.longitude
);
setDistance(prevDistance => prevDistance + newDistance);
updateJourneyData({
currentLocation: {
latitude: location.coords.latitude,
longitude: location.coords.longitude
},
distance: distance + newDistance
});
}
// Update previous coordinates
setPreviousCoords({
latitude: location.coords.latitude,
longitude: location.coords.longitude
});
}
);
Подробнее здесь: https://stackoverflow.com/questions/796 ... tion-watch