Waar is de gebruiker?

Crowl.sensors.js

SensorManager-class

Met de SensorManager-class kan je opvragen waar de gebruiker zich bevindt. De class kan de huidige locatie opvragen op een ingesteld interval. 

const sensorManager = new SensorManager();
sensorManager.startGeoLocationUpdates((data) => {
    if (data.error) {
        console.error('Geolocation Error:', data.error);
    } else {
        console.log(data);
    }
}, {
    maximumAge: 60000, // Accepteer een gecachte locatie die niet ouder is dan 60 seconden
    timeout: 15000, // Time-out na 15 seconden als er geen nieuwe data is
    enableHighAccuracy: true // Vraag om de hoogst mogelijke nauwkeurigheid
});

calculateDistances-functie 

Met de functie calculateDistances kan je de afstand tussen die locatie en een lijst van vooraf opgevraagde locaties berekenen. De class geeft de afstand tot de andere locaties terug, evenals de meest nabije locatie.   

Je kan ook opvragen of er een locatie ligt binnen een bepaalde straal (radius).

  • coordList: een object met waardes voor latitude en longitude en eventuele andere waarden. 
  • data: de opgevraagde huidige locatie.
  • radius: de straal in meter
const distances = calculateDistances(coordList, data, 60);

Demo coordList

[
    {
        "name": "Lammes",
        "latitude": 50.7937,
        "longitude": 4.98392,
        "id": 1,
        "cover": "prent1.jpg"
    },
    {
        "name": "Klares",
        "latitude": 50.7932,
        "longitude": 4.98092,
        "id": 2,
        "cover": "foto1.jpg"
    },
    {
        "name": "Rikus van den Aas",
        "latitude": 50.7934,
        "longitude": 4.98095,
        "id": 3,
        "cover": "foto2.jpg"
    }
}]

Afstanden weergeven

if (Object.keys(distances).length > 0) {
   distances.allDistances.map(distance => {
       console.log(distance.name);
       console.log(distance.distance.toFixed(2));
   });
   console.log(distances.nearest.name);
   console.log(distances.nearest.distance.toFixed(2));
}
Volgende pagina