Firefox OS/Geolocation: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Dhuseby moved page B2G/Geolocation to FirefoxOS/Geolocation: reorg)
m (API */)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is what I understand to be true about the configuration of Geolocation (A-GPS) on B2G as of my writing. If you find something wrong, or misleading, please fix it. It's wiki after all.
=API=
Firefox OS geolocation API is the W3C Standard API at http://dev.w3.org/geo/api/spec-source.html


As an Application Developer, you should be aware that certain SUPL service providers may have terms of use for their SUPL service - [https://wiki.mozilla.org/Firefox_OS/AGPS_service_provider_terms learn more]”


Mozilla does not produce Firefox OS images -- we provide source code to chip manufacturers and OEMs.  These parties customize various parts and create binary images for devices.  The final Firefox OS image is mostly representative of what we have in the public source repositories.  This is an important distinction because the configuration of some parts (like linux config, device setup, etc) is not in Mozilla's hands.
As an Application developer, you should ask the User permission before storing their location.


There are two well known differences between what is on https://github.com/mozilla-b2g/ and what is on commercial phones. The first difference is the RIL (https://wiki.mozilla.org/B2G/RIL).  Sometimes chip manufacturers replace this code for various reason (Don't ask.  I don't know the details other than it's secret sauce).
=Usage=
The underlying implementation of geolocation can be different per hardware provider. As an Application developer, you should be transparent to the underlying implementation. You should write apps using the APIs which specifies the accuracy requirement of your app. eg:
*A navigation app, which needs accuracy upto a few meters, then enableHighAccuracy=TRUE.  
*A weather app which just needs coarse location, then your app can consume less power by enableHighAccuracy=FALSE.


The second difference is the geolocation componentI also do not understand exactly why some chip manufacturers replace our component.  I also assume that it's because they know how their chips work and have private apis they are not ready to release.
 
=Commercial Implementations=
Mozilla does not produce Firefox OS images for commercial devices-- we provide source code to chip manufacturers and OEMs.  These parties customize various parts and create binary images for devices.  The final Firefox OS image is mostly representative of what we have in the public source repositoriesThis is an important distinction because the configuration of some parts (like linux config, device setup, etc) is not in Mozilla's hands.


So, to recap -- some pieces are NOT under Mozilla's control and one of them is the geolocation configuration.  It is completely up to the chip manufacturers and OEM to correctly configure a-gps.
So, to recap -- some pieces are NOT under Mozilla's control and one of them is the geolocation configuration.  It is completely up to the chip manufacturers and OEM to correctly configure a-gps.
==Details==
The geolocation provider use a few different method to compute location based on the environment:
#Satellite - Uses GPS Receiver  to locate the device.
#Network methods - Uses nearby WiFi Access points and Cell towers
These two methods complement each other to improve geolocation
Availability: GPS works well in open sky, where Network methods are not as accurate. Network methods work well in deep indoor, where GPS does not work well. Having both increases availability.
#Time To First Fix: GPS is accurate, and take some time, while Network is coarse and is faster. Network location can be used by GPS to opti


Next, the configuration of a-gps is in two parts.  The first part is in Gecko.  B2G/gaia currently uses supl 1.0 with cell fallback. We have code in our geolocation provider that informs the modem that an agps server is located at a QC supl1 server.  We do this by calling an API and pass only a FQDN and a port.  The other part that needs to be configured is the “modem”.  The modem needs to be configured with TLS enabled and the certificate of the QC supl1 server.  Mozilla does NOT have any way to configure the modem and OEMs are encouraged to discuss this with their chip manufacturer. (I am using QC here because as of this writing, that is who we are using.  If you are using another chip manufacturer you'll have to work with them on an a-gps service).
===AGPS===
For the Satellite fixes, GPS is used. To shorten the time to search for satellites, methods for assistance are used. Some of them are:
# SUPL: Standardized
# Proprietary Extended Ephemeris solutions: GPS HW providers implement optimizations.


So, to recap – Mozilla does not ship binaries.  Mozilla does not configure Modems.  If you are shipping devices, you must ensure that a-gps is configured properly.  Configuration of a-gps is completely outside of the scope of Firefox OS.
So, to recap – Mozilla does not ship binaries.  Mozilla does not configure Modems.  If you are shipping devices, you must ensure that a-gps is configured properly with the HW provider.  Configuration of a-gps is outside of the scope of Firefox OS.

Latest revision as of 22:15, 18 August 2015

API

Firefox OS geolocation API is the W3C Standard API at http://dev.w3.org/geo/api/spec-source.html

As an Application Developer, you should be aware that certain SUPL service providers may have terms of use for their SUPL service - learn more

As an Application developer, you should ask the User permission before storing their location.

Usage

The underlying implementation of geolocation can be different per hardware provider. As an Application developer, you should be transparent to the underlying implementation. You should write apps using the APIs which specifies the accuracy requirement of your app. eg:

  • A navigation app, which needs accuracy upto a few meters, then enableHighAccuracy=TRUE.
  • A weather app which just needs coarse location, then your app can consume less power by enableHighAccuracy=FALSE.


Commercial Implementations

Mozilla does not produce Firefox OS images for commercial devices-- we provide source code to chip manufacturers and OEMs. These parties customize various parts and create binary images for devices. The final Firefox OS image is mostly representative of what we have in the public source repositories. This is an important distinction because the configuration of some parts (like linux config, device setup, etc) is not in Mozilla's hands.

So, to recap -- some pieces are NOT under Mozilla's control and one of them is the geolocation configuration. It is completely up to the chip manufacturers and OEM to correctly configure a-gps.

Details

The geolocation provider use a few different method to compute location based on the environment:

  1. Satellite - Uses GPS Receiver to locate the device.
  2. Network methods - Uses nearby WiFi Access points and Cell towers

These two methods complement each other to improve geolocation Availability: GPS works well in open sky, where Network methods are not as accurate. Network methods work well in deep indoor, where GPS does not work well. Having both increases availability.

  1. Time To First Fix: GPS is accurate, and take some time, while Network is coarse and is faster. Network location can be used by GPS to opti

AGPS

For the Satellite fixes, GPS is used. To shorten the time to search for satellites, methods for assistance are used. Some of them are:

  1. SUPL: Standardized
  2. Proprietary Extended Ephemeris solutions: GPS HW providers implement optimizations.

So, to recap – Mozilla does not ship binaries. Mozilla does not configure Modems. If you are shipping devices, you must ensure that a-gps is configured properly with the HW provider. Configuration of a-gps is outside of the scope of Firefox OS.