Basically geolocation (position) data is provided by GPS sensor or location web service (client provides the WIFI, Cell or IP, server returns position).
In practice, GPS sensor is used for high accuracy, and the location web service is used for devices without GPS (such as desktop), for in-door usage or even for power saving.
As diagram [1] shows, Content/Blink uses different location providers (backends) on different platforms.
There are three types of providers implemented in Content/Blink: 1) GPS sensor based; 2) web service based,; 3) Platform/OS API based (the platform/OS API itself depends on web service or GPS sensor).
Summary
Cameo CAN reuse GPS sensor based provider for general Linux distribution and Windows 7.
Cameo CANNOT use location web service based provider unless purchasing the API key from Google.
Cameo CAN reuse the platform/OS location API based provider for Android and Windows 8. But the position data availability depends on underlying platform/OS.
Cameo NEEDS to implement platform/OS location API based provider for Tizen.
GpsLocationProviderLinux:
It is used on Linux to get position data from gpsd (http://www.catb.org/gpsd/)
LocationProviderAndroid:
It is used for Android solely (without NetworkLocationProvider). It is based on Android Location API (http://developer.android.com/reference/android/location/LocationManager.html).
Android system arbitrates the position data from GPS_PROVIDER and NETWORK_PROVIDER. Please note the availability of NETWORK_PROVIDER depends on Android distribution and service.
According to current implementation, validation points are:
On Linux with GPS sensor, navigator.geolocation.getCurrentPosition should invoke successCallback with meaningful Position value. (when sensor is working, for example out-door)
On Linux without GPS sensor, navigator.geolocation.getCurrentPosition should invoke errorCallback with POSITION_UNAVAILABLE error.
On Windows 7 with GPS sensor, navigator.geolocation.getCurrentPosition should invoke successCallback with meaningful Position value. (when sensor is working, for example out-door)
On Windows 7 without GPS sensor, navigator.geolocation.getCurrentPosition should invoke errorCallback with POSITION_UNAVAILABLE error.
On Windows 8, navigator.geolocation.getCurrentPosition should invoke successCallback with meaningful Position value.
I investigated the geolocation API (http://dev.w3.org/geo/api/spec-source.html ) support in Content/Blink which Cameo depends on.
Background
Basically geolocation (position) data is provided by GPS sensor or location web service (client provides the WIFI, Cell or IP, server returns position). In practice, GPS sensor is used for high accuracy, and the location web service is used for devices without GPS (such as desktop), for in-door usage or even for power saving.
As diagram [1] shows, Content/Blink uses different location providers (backends) on different platforms. There are three types of providers implemented in Content/Blink: 1) GPS sensor based; 2) web service based,; 3) Platform/OS API based (the platform/OS API itself depends on web service or GPS sensor).
Summary
Cameo CAN reuse GPS sensor based provider for general Linux distribution and Windows 7. Cameo CANNOT use location web service based provider unless purchasing the API key from Google. Cameo CAN reuse the platform/OS location API based provider for Android and Windows 8. But the position data availability depends on underlying platform/OS. Cameo NEEDS to implement platform/OS location API based provider for Tizen.
Details
[1] Content geolocation components diagram