12-09-2018 09:50
- Mark as New
- Bookmark
- Subscribe
- Permalink
- Report this post

12-09-2018 09:50
- Mark as New
- Bookmark
- Subscribe
- Permalink
- Report this post
I am writing a app with using the geolocation interface. I can build and run the app without errors. But after 2-3 minutes run this app my Ionic fails and restart. Anyone have an idea what is wrong in my script?
-------------------------------------------------------------------
import document from "document";
let longitudeData = document.getElementById("longitude-data");
let positionAccuracyData = document.getElementById("positionAccuracy-data");
let headingData = document.getElementById("heading-data");
let speedData = document.getElementById("speed-data");
let altitudeData = document.getElementById("altitude-data");
let altitudeAccuracyData = document.getElementById("altitudeAccuracy-data");
let timestampData = document.getElementById("timestamp-data");
let messageData = document.getElementById("message-data");
enableHighAccuracy: true,
timeout: 10000,
maximumAge: 0
};
function getPosition() {
geolocation.getCurrentPosition(locationSuccess, locationError, locationOptions);
console.log("start loop getCurrentPosition");
}
console.log("Latitude: " + position.coords.latitude,
"Longitude: " + position.coords.longitude,
"Position Accuracy : " + position.coords.accuracy,
"Heading: " + position.coords.heading,
"Speed: " + position.coords.speed,
"Altitude: " + position.coords.altitude,
"Altitude Accuracy: " + position.coords.altitudeAccuracy,
"Time Stamp: " + position.timestamp);
latitudeData.text = (position.coords.latitude);
longitudeData.text = (position.coords.longitude);
positionAccuracyData.text = (position.coords.accuracy);
headingData.text = (position.coords.heading);
speedData.text = (position.coords.speed);
altitudeData.text = (position.coords.altitude);
altitudeAccuracyData.text = (position.coords.altitudeAccuracy);
timestampData.text = (position.timestamp);
}
function locationError(error) {
console.log("Error: " + error.code,
"Message: " + error.message);
messageData.text = (error.message);
}
setInterval(getPosition, 5000);
Answered! Go to the Best Answer.

Accepted Solutions
12-11-2018 15:32
- Mark as New
- Bookmark
- Subscribe
- Permalink
- Report this post


12-11-2018 15:32
- Mark as New
- Bookmark
- Subscribe
- Permalink
- Report this post
You're probably flooding requests to getPosition() because you aren't waiting for success.
You should probably either switch over to watchPosition(), or stop using setInterval(), and use setTimeout() after location success. Something like:
function getPosition() { geolocation.getCurrentPosition(locationSuccess, locationError, locationOptions); console.log("start loop getCurrentPosition"); } function locationSuccess(position) { // ... setTimeout(getPosition, 5000); } // Start getting position getPosition();

12-11-2018 15:32
- Mark as New
- Bookmark
- Subscribe
- Permalink
- Report this post


12-11-2018 15:32
- Mark as New
- Bookmark
- Subscribe
- Permalink
- Report this post
You're probably flooding requests to getPosition() because you aren't waiting for success.
You should probably either switch over to watchPosition(), or stop using setInterval(), and use setTimeout() after location success. Something like:
function getPosition() { geolocation.getCurrentPosition(locationSuccess, locationError, locationOptions); console.log("start loop getCurrentPosition"); } function locationSuccess(position) { // ... setTimeout(getPosition, 5000); } // Start getting position getPosition();

