CrowlKit - IPS en stappenteller
Met de geolocatie-sensor kan je perfect bepalen en onthouden waar iemand zich bevindt. Echter, binnen een gebouw kan dit problematisch zijn. Veel hangt af van de graad van nauwkeurigheid van de GPS-chip van de smartphone zelf. Moderne toestellen zijn tot binnen de meter nauwkeurig, maar het is ook mogelijk dat de ontvangst van data wordt belemmerd door het gebouw zelf (bijvoorbeeld de hoogte, beton....).
Daarom kan een Indoor Positioning Systemhelpen. Het app-walker-element probeert te achterhalen wat de initiële geolocatie is van de gebruiker en probeert dan te achterhalen aan de hand van een stappenteller in welke "richting" de gebruiker beweegt en hoeveel hij beweegt.
Libraries toevoegen
Zorg dat de onderstaande libraries aanwezig zijn in de pagina:
<script src="https://cdn.publihub.media/lib/app.js"></script>
<script src="https://cdn.publihub.media/lib/crowl.walker.js"></script>
Een walker-element toevoegen
Vervolgens voeg je een app-walker-element toe.
Opgelet: het heeft geen zin dit element meer dan één keer in een pagina op te nemen.
<app-walker id="wandelaar" stepThreshold="1.3" stepCooldown="500" requiredConsistentMovements="3"></app-walker>
Het element kent vier attributen:
- id: een uniek id voor het element.
- stepThreshold: Een soort drempelwaarde om de gevoeligheid van de stappenteller in te stellen. Dit attribuut kan in real time aangepast worden.
- stepCooldown: De tijdsduur tussen 2 metingen. Standaard 500 milliseconden (halve seconde)
- requiredConsistentMovements: Aantal stappen dat vereist is om de registratie te "bewaren". Immers: soms registreert hij al met een kleine beweging van de smartphone een stap. Als je echt begint te wandelen, heb je al snel meer dan 2 stappen. Die waarde stel je hier in.
Data weergeven
Je kan vervolgens de data opvragen:
id("wandelaar").after("positionchange").do(function(data){
var data = data.detail;
});
In data.detail zitten meerdere waarden:
id("wandelaar").after("positionchange").do(function(data){
var data = data.detail;
var lengteligging = data.latitude.toFixed(6);
var breedtegraad = data.longitude.toFixed(6);
var xrichting = data.distanceX.toFixed(2) + "m";
var yrichting = data.distanceY.toFixed(2) + " m";
var steps = data.steps;
});
Demo
Bekijk de demo. https://cdn.publihub.media/demos/app/indoor.html?vdsd
Opgelet: werkt enkel op een smartphone!