Hallo Mede-devvers,
Ik zit al een aantal weken te stoeien met de location services binnen de mobiele browsers (vooral iPad/Safari).
Ik ben bezig met het bouwen van een kilometer registratie module binnen een webapp. En daarvoor wil ik de GPS locatie gebruiken van het device.
Daar voorzien de meeste browsers gelukkig wel in, maar niet helemaal zoals ik het wens.
De precisie (accuracy) die wordt gemeld vanuit de api, is ronduit slecht en veel te hoog. Met enige regelmaat zijn er waarden met een afwijking van 1KM tot wel 20KM.
Bijvoorbeeld; met de iPad met 3g/4g ongeveer 3000 locatie requests totaal, met een gemiddelde accuracy van 1240. (dat is dus 1240 afwijking)
Heb mijn eigen wrapper functie gebouwd, om het wat makkelijker te maken te loggen and such.
De timeout is inmiddels van 5000 naar 20000 verhoogd, met 0 resultaat.
Wie o Wie kan mij uit de brand helpen?
Ik zit al een aantal weken te stoeien met de location services binnen de mobiele browsers (vooral iPad/Safari).
Ik ben bezig met het bouwen van een kilometer registratie module binnen een webapp. En daarvoor wil ik de GPS locatie gebruiken van het device.
Daar voorzien de meeste browsers gelukkig wel in, maar niet helemaal zoals ik het wens.
De precisie (accuracy) die wordt gemeld vanuit de api, is ronduit slecht en veel te hoog. Met enige regelmaat zijn er waarden met een afwijking van 1KM tot wel 20KM.
Bijvoorbeeld; met de iPad met 3g/4g ongeveer 3000 locatie requests totaal, met een gemiddelde accuracy van 1240. (dat is dus 1240 afwijking)
Heb mijn eigen wrapper functie gebouwd, om het wat makkelijker te maken te loggen and such.
De timeout is inmiddels van 5000 naar 20000 verhoogd, met 0 resultaat.
Wie o Wie kan mij uit de brand helpen?
JavaScript:
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
| var locationServices = { options: { enableHighAccuracy: true, timeout: 20000, maximumAge: 0 }, getLocation: function(success, error){ $('.location-service:not(:disabled)').prop('disabled', true).prop('disabled-by-location-services', true); navigator.geolocation.getCurrentPosition( function (loc) { /* Re-enable diabled fields */ $('.location-service').filter(function(){ return $(this).prop('disabled-by-location-services') == true; }).prop('disabled', false).prop('disabled-by-location-services', '') /* Log the accuracy and such */ var message = '[LocationServices] Accuracy: ' + loc.coords.accuracy + ', latitude: ' + loc.coords.latitude + ', longitude: ' + loc.coords.longitude + ' <iframe style="width: 100%; height: 300px; border: 1px solid #5e5e5e;" src="http://maps.google.com/maps?q=' + loc.coords.latitude + ',' + loc.coords.longitude + '&output=embed" /> [UserAgent] ' + navigator.userAgent; locationServices.log(message); success.call(this, loc); }, function (e) { locationServices.log('[LocationServices] Failed getting location. [UserAgent] ' + navigator.userAgent) error.call(this, e); }, locationServices.options ); }, log: function(message){ $.post(basehref + '/log/message', {message : message }); } }; |