[whatwg] Popular Background Geolocation question on StackOverflow

Roger Hågensen rh_whatwg at skuldwyrm.no
Sat Mar 24 14:12:26 PDT 2018

On 2018-03-24 21:15, Philipp Serafin wrote:
> If this problem is specific to the "track a route" use-case, and the
> use-case is sufficiently widespread, would a dedicated "route recording"
> API make sense?
> E.g., a web page could ask the browser to continously record location
> changes and - at some time at the browser's discretion - push a list of
> recorded changes to the page.

Hmm! It might.
certainly it makes sense to cache location coords since the device may 
not have a internet connection during the entire time.

In practice it would only need a internet connection at the time of data 
submission to the site of the webapp, the rest of the time it could be 

> This would allow the browser to record locations changes with reasonably
> accuracy *without* waking up service workers.

THis part I'm unsure of. Should it be a webapp or a client feature with 
a API for webapps?

> It would also provide some hooks for privacy controls: A browser could show
> a status indicator whenever it's in "GPS recording" mode. It could also
> notify the user when it's about to push the recorded route to the page and
> possibly even show the route for confirmation.

I certainly see the charm and practicality in a webapp asking the client 
(browser) to start logging GPS coords (it must be user initiated at some 
point though, like a button/link click).
And then the same when stopping it.

A _start function and a _stop function and a _get function would be all 
that is needed.

The _stop function should be self explanatory. The _start function would 
allow a argument of milliseconds (or is seconds enough granularity?), 
which specifies the interval the client should use to record the current 
GPS and other info.

The _get function of such a API would just return a JSON array of GPS 
objects, with cords, height and timestamp of the reading, with future 
expandability for including stats like pressure and moisture and 
temperature (can't think of anything else).
For a cyclist/runner/driver/boater the coords might be useful (to get 
distance and route traveled). For a camper or woodsman or farmer or who 
knows what else the moisture and temperature and pressure and elevation 
may be valuable (the GPS coords would be almost identical for each 
reading though).

I'm not sure if this would fit under a geolocation API though, perhaps 
more under a environmental API (where GPS/elevation is just one of many 

Since the user explicitly (or implicitly) press start there is no need 
to ask permission.
But there should be a possibility to ask for site permisssion and have 
the webapp autostart, this would allow to run the wwebapp in a browser 
24/7 and have it send "live" data to a server. This could make a 
smartphone a temporary weather station (a smartphone could have a 
external "weather sensor box" connected for example, providing the 
sensor input for this API, the browser would just see it as OS provided 
sensor data).

Sure a Raspberry Pi or some other IOT with some scripting can do this 
better, but just plopping a smart device to a large battery pack or 
mains power and leaving it over the night sending live data to a server 
could be useful. Hundreds if not thousands of these round the world 
could supplement weather research/sites with that data.

I'd suggest this as a way to detect if such a API is available
if ("environment" in navigator) {
   /* environment API is available */
} else {
   /* environment API IS NOT available */
It would really need to be it's own thing instead of adding to the 
geolocation, there should be no issues with both coexisting.

Unless specified otherwise, anything I write publicly is considered 
Public Domain (CC0). My opinions are my own unless specified otherwise.
Roger Hågensen,
Freelancer, Norway.

More information about the whatwg mailing list