watchposition() update php sessie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Innovatieve, nauwkeurige Senior PHP Developer voor

Eind jaren ’90 is dit bedrijf opgericht. Ze hebben zich altijd beziggehouden met het ontwikkelen van software voor overheidsinstanties. Dit zijn instanties waaronder bijvoorbeeld ook onder andere : de belastingdienst, burgerszaken, verschillende bedrijven, notarissen, incassobureau’s en ook nog bewindvoerders. Momenteel tellen ze 20 medewerkers, waarvan 2/3 deel allemaal developers zijn. Doordat ze de enigste aanbieder van dit soort software op de markt zijn, groeien ze erg hard. Door de enorme groei, hebben ze dan ook concrete groeiplannen in het verschiet. Functie-omschrijving Het bedrijf wordt door allerlei instanties ingeschakeld. Tegenwoordig wordt alles digitaal geregeld en gezien de essentie van dit soort

Bekijk vacature »

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

17/12/2018 21:45:13
 
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.