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! 
Volgende pagina