watchposition() update php sessie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

12/03/2017 12:59:58
Quote Anchor link
Ik heb een google map waarbij gebruikers hun positie tonen op de kaart d.m.v navigator.geolocation.getCurrentPosition
Ik wil met watchposition ALLEEN als de positie wijzigd, een PHP sessie updaten, of in mijn database de huidige locatie updaten.

De vraag is wanneer weet ik wanneer een positie gewijzigd word, zodat ik alleen dan een updatefunctie kan aanroepen?
Is dit handig of is het beter om elke min bijv de huiige positie te updaten?

Ik wil dus dat op mijn map de actuele posities van gebruikers staan, maar wil geen overload creeren met overbodige api calls.
 
PHP hulp

PHP hulp

27/11/2024 06:00:03
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2017 00:10:19
Quote Anchor link
zodra een gebruiker zijn positie wijzigt (UPDATE) kun je direct je updatefunctie aanroepen. Behalve wanneer je dat op de achtergrond wil laten gebeuren dmv een cronjob. In dat geval zul je een extra kolom aan je tabel moeten toevoegen waarin je bijhoudt of een positie gewijzigd is. Als de gebruiker zijn positie aanpast dan zet je deze kolom op 0.
 
Daniel van Seggelen

Daniel van Seggelen

13/03/2017 11:49:36
Quote Anchor link
Bedankt voor je antwoord, dit is mijn code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<script>
var id, target, options;

function success(pos) {

            setTimeout(function() {

                  var crd = pos.coords;
                  alert(crd.latitude+'-->'+crd.longitude);
                  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
                    console.log('Congratulations, you reached the target');
                 navigator.geolocation.clearWatch(id);
                  }
    
            }, 10000);  
              

}

function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
}

target = {
  latitude : 0,
  longitude: 0
};

options = {
  enableHighAccuracy: false,
  timeout:10000,
   frequency : 2,
   distanceFilter:5,
  maximumAge: 0
};

id = navigator.geolocation.watchPosition(success, error, options);
</script>


Als ik mijn telefoon gewoon stil leg op tafel, veranderd hij om de seconde. De settemeout lijkt niet te werken, hij blijft nu bij 5 seconde vernieuwen.

Ik wil dus via de google maps api de locatie aangepast hebben, alleen als deze wijzigt en het liefst als er minimaal 10 meter tussen de nieuwe en laatste locatie is.

Ik gebruik een ajax call waarbij ik alle markers via een mysql db ophaal.
Als ik 1000 gebruikers heb en er word om de 5 seconden bekeken wat de locaties zijn, dan word op dat moment een ajax call uitgevoerd die de nieuwe locaties binnenhaalt. Is dit geen overload voor de server?

Je had het over een cronjob op de achtergrond, maar snap niet op welke manier, want dat gebeurd toch allemaal clientside?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.