Last active
December 19, 2015 08:18
-
-
Save RickCarlino/5924362 to your computer and use it in GitHub Desktop.
Cleaner interface to the HTML5 geolocation API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Compass | |
constructor: (options = {enableHighAccuracy: yes, maximumAge: 10000, timeout: 100000}) -> | |
@lat = 0 | |
@lng = 0 | |
@alt = 0 | |
@acc = 0 | |
@altAcc = 0 | |
@hdg = 0 | |
@spd = 0 | |
@_grabGPS(options) | |
_grabGPS: (options) -> | |
navigator.geolocation.watchPosition(@_parseGPS, @_parseErr, options) | |
_parseGPS: (position) => | |
@lat = position.coords.latitude | |
@lng = position.coords.longitude | |
@alt = position.coords.altitude | |
@acc = position.coords.accuracy | |
@altAcc = position.coords.altitudeAccuracy | |
@hdg = position.coords.heading | |
@spd = position.coords.speed | |
_parseErr: (err) -> | |
switch err.code | |
when 1 | |
@error = 'Permission denied by user' | |
when 2 | |
@error = 'Cant fix GPS position' | |
when 3 | |
@error = 'GPS is taking too long to respond' | |
else | |
@error = 'Well, this is embarassing...' | |
console.log @error | |
stop: -> | |
#Special thanks to Miha Rekar for this fix. | |
navigator.geolocation.clearWatch _grabGPS | |
window.compass = new Compass() | |
$ -> | |
setInterval -> | |
message = "LAT: #{compass.lat} LNG: #{compass.lng} ALT: #{compass.alt} ACC: #{compass.acc} ALTACC: #{compass.altacc} HDG: #{compass.hdg} SPD: #{compass.spd} " | |
console.log message | |
, 2500 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
According to API you should give the ID to clearWatch() so: