Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
be3c7b0a42
commit
8a81c7ee33
|
@ -0,0 +1,279 @@
|
|||
<!---
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
# org.apache.cordova.geolocation
|
||||
|
||||
This plugin provides information about the device's location, such as
|
||||
latitude and longitude. Common sources of location information include
|
||||
Global Positioning System (GPS) and location inferred from network
|
||||
signals such as IP address, RFID, WiFi and Bluetooth MAC addresses,
|
||||
and GSM/CDMA cell IDs. There is no guarantee that the API returns the
|
||||
device's actual location.
|
||||
|
||||
This API is based on the
|
||||
[W3C Geolocation API Specification](http://dev.w3.org/geo/api/spec-source.html),
|
||||
and only executes on devices that don't already provide an implementation.
|
||||
|
||||
__WARNING__: Collection and use of geolocation data
|
||||
raises important privacy issues. Your app's privacy policy should
|
||||
discuss how the app uses geolocation data, whether it is shared with
|
||||
any other parties, and the level of precision of the data (for
|
||||
example, coarse, fine, ZIP code level, etc.). Geolocation data is
|
||||
generally considered sensitive because it can reveal user's
|
||||
whereabouts and, if stored, the history of their travels.
|
||||
Therefore, in addition to the app's privacy policy, you should
|
||||
strongly consider providing a just-in-time notice before the app
|
||||
accesses geolocation data (if the device operating system doesn't do
|
||||
so already). That notice should provide the same information noted
|
||||
above, as well as obtaining the user's permission (e.g., by presenting
|
||||
choices for __OK__ and __No Thanks__). For more information, please
|
||||
see the Privacy Guide.
|
||||
|
||||
## Installation
|
||||
|
||||
cordova plugin add org.apache.cordova.geolocation
|
||||
|
||||
### Firefox OS Quirks
|
||||
|
||||
Create __www/manifest.webapp__ as described in
|
||||
[Manifest Docs](https://developer.mozilla.org/en-US/Apps/Developing/Manifest).
|
||||
Add permisions:
|
||||
|
||||
"permissions": {
|
||||
"geolocation": { "description": "Used to position the map to your current position" }
|
||||
}
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
- Amazon Fire OS
|
||||
- Android
|
||||
- BlackBerry 10
|
||||
- Firefox OS
|
||||
- iOS
|
||||
- Tizen
|
||||
- Windows Phone 7 and 8
|
||||
- Windows 8
|
||||
|
||||
## Methods
|
||||
|
||||
- navigator.geolocation.getCurrentPosition
|
||||
- navigator.geolocation.watchPosition
|
||||
- navigator.geolocation.clearWatch
|
||||
|
||||
## Objects (Read-Only)
|
||||
|
||||
- Position
|
||||
- PositionError
|
||||
- Coordinates
|
||||
|
||||
## navigator.geolocation.getCurrentPosition
|
||||
|
||||
Returns the device's current position to the `geolocationSuccess`
|
||||
callback with a `Position` object as the parameter. If there is an
|
||||
error, the `geolocationError` callback is passed a
|
||||
`PositionError` object.
|
||||
|
||||
navigator.geolocation.getCurrentPosition(geolocationSuccess,
|
||||
[geolocationError],
|
||||
[geolocationOptions]);
|
||||
|
||||
### Parameters
|
||||
|
||||
- __geolocationSuccess__: The callback that is passed the current position.
|
||||
|
||||
- __geolocationError__: _(Optional)_ The callback that executes if an error occurs.
|
||||
|
||||
- __geolocationOptions__: _(Optional)_ The geolocation options.
|
||||
|
||||
|
||||
### Example
|
||||
|
||||
// onSuccess Callback
|
||||
// This method accepts a Position object, which contains the
|
||||
// current GPS coordinates
|
||||
//
|
||||
var onSuccess = function(position) {
|
||||
alert('Latitude: ' + position.coords.latitude + '\n' +
|
||||
'Longitude: ' + position.coords.longitude + '\n' +
|
||||
'Altitude: ' + position.coords.altitude + '\n' +
|
||||
'Accuracy: ' + position.coords.accuracy + '\n' +
|
||||
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
|
||||
'Heading: ' + position.coords.heading + '\n' +
|
||||
'Speed: ' + position.coords.speed + '\n' +
|
||||
'Timestamp: ' + position.timestamp + '\n');
|
||||
};
|
||||
|
||||
// onError Callback receives a PositionError object
|
||||
//
|
||||
function onError(error) {
|
||||
alert('code: ' + error.code + '\n' +
|
||||
'message: ' + error.message + '\n');
|
||||
}
|
||||
|
||||
navigator.geolocation.getCurrentPosition(onSuccess, onError);
|
||||
|
||||
## navigator.geolocation.watchPosition
|
||||
|
||||
Returns the device's current position when a change in position is detected.
|
||||
When the device retrieves a new location, the `geolocationSuccess`
|
||||
callback executes with a `Position` object as the parameter. If
|
||||
there is an error, the `geolocationError` callback executes with a
|
||||
`PositionError` object as the parameter.
|
||||
|
||||
var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
|
||||
[geolocationError],
|
||||
[geolocationOptions]);
|
||||
|
||||
### Parameters
|
||||
|
||||
- __geolocationSuccess__: The callback that is passed the current position.
|
||||
|
||||
- __geolocationError__: (Optional) The callback that executes if an error occurs.
|
||||
|
||||
- __geolocationOptions__: (Optional) The geolocation options.
|
||||
|
||||
### Returns
|
||||
|
||||
- __String__: returns a watch id that references the watch position interval. The watch id should be used with `navigator.geolocation.clearWatch` to stop watching for changes in position.
|
||||
|
||||
### Example
|
||||
|
||||
// onSuccess Callback
|
||||
// This method accepts a `Position` object, which contains
|
||||
// the current GPS coordinates
|
||||
//
|
||||
function onSuccess(position) {
|
||||
var element = document.getElementById('geolocation');
|
||||
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
|
||||
'Longitude: ' + position.coords.longitude + '<br />' +
|
||||
'<hr />' + element.innerHTML;
|
||||
}
|
||||
|
||||
// onError Callback receives a PositionError object
|
||||
//
|
||||
function onError(error) {
|
||||
alert('code: ' + error.code + '\n' +
|
||||
'message: ' + error.message + '\n');
|
||||
}
|
||||
|
||||
// Options: throw an error if no update is received every 30 seconds.
|
||||
//
|
||||
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 30000 });
|
||||
|
||||
|
||||
## geolocationOptions
|
||||
|
||||
Optional parameters to customize the retrieval of the geolocation
|
||||
`Position`.
|
||||
|
||||
{ maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
|
||||
|
||||
### Options
|
||||
|
||||
- __enableHighAccuracy__: Provides a hint that the application needs the best possible results. By default, the device attempts to retrieve a `Position` using network-based methods. Setting this property to `true` tells the framework to use more accurate methods, such as satellite positioning. _(Boolean)_
|
||||
|
||||
- __timeout__: The maximum length of time (milliseconds) that is allowed to pass from the call to `navigator.geolocation.getCurrentPosition` or `geolocation.watchPosition` until the corresponding `geolocationSuccess` callback executes. If the `geolocationSuccess` callback is not invoked within this time, the `geolocationError` callback is passed a `PositionError.TIMEOUT` error code. (Note that when used in conjunction with `geolocation.watchPosition`, the `geolocationError` callback could be called on an interval every `timeout` milliseconds!) _(Number)_
|
||||
|
||||
- __maximumAge__: Accept a cached position whose age is no greater than the specified time in milliseconds. _(Number)_
|
||||
|
||||
### Android Quirks
|
||||
|
||||
Android 2.x emulators do not return a geolocation result unless the `enableHighAccuracy` option is set to `true`.
|
||||
|
||||
## navigator.geolocation.clearWatch
|
||||
|
||||
Stop watching for changes to the device's location referenced by the
|
||||
`watchID` parameter.
|
||||
|
||||
navigator.geolocation.clearWatch(watchID);
|
||||
|
||||
### Parameters
|
||||
|
||||
- __watchID__: The id of the `watchPosition` interval to clear. (String)
|
||||
|
||||
### Example
|
||||
|
||||
// Options: watch for changes in position, and use the most
|
||||
// accurate position acquisition method available.
|
||||
//
|
||||
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });
|
||||
|
||||
// ...later on...
|
||||
|
||||
navigator.geolocation.clearWatch(watchID);
|
||||
|
||||
## Position
|
||||
|
||||
Contains `Position` coordinates and timestamp, created by the geolocation API.
|
||||
|
||||
### Properties
|
||||
|
||||
- __coords__: A set of geographic coordinates. _(Coordinates)_
|
||||
|
||||
- __timestamp__: Creation timestamp for `coords`. _(Date)_
|
||||
|
||||
## Coordinates
|
||||
|
||||
A `Coordinates` object is attached to a `Position` object that is
|
||||
available to callback functions in requests for the current position.
|
||||
It contains a set of properties that describe the geographic coordinates of a position.
|
||||
|
||||
### Properties
|
||||
|
||||
* __latitude__: Latitude in decimal degrees. _(Number)_
|
||||
|
||||
* __longitude__: Longitude in decimal degrees. _(Number)_
|
||||
|
||||
* __altitude__: Height of the position in meters above the ellipsoid. _(Number)_
|
||||
|
||||
* __accuracy__: Accuracy level of the latitude and longitude coordinates in meters. _(Number)_
|
||||
|
||||
* __altitudeAccuracy__: Accuracy level of the altitude coordinate in meters. _(Number)_
|
||||
|
||||
* __heading__: Direction of travel, specified in degrees counting clockwise relative to the true north. _(Number)_
|
||||
|
||||
* __speed__: Current ground speed of the device, specified in meters per second. _(Number)_
|
||||
|
||||
### Amazon Fire OS Quirks
|
||||
|
||||
__altitudeAccuracy__: Not supported by Android devices, returning `null`.
|
||||
|
||||
### Android Quirks
|
||||
|
||||
__altitudeAccuracy__: Not supported by Android devices, returning `null`.
|
||||
|
||||
## PositionError
|
||||
|
||||
The `PositionError` object is passed to the `geolocationError`
|
||||
callback function when an error occurs with navigator.geolocation.
|
||||
|
||||
### Properties
|
||||
|
||||
- __code__: One of the predefined error codes listed below.
|
||||
|
||||
- __message__: Error message describing the details of the error encountered.
|
||||
|
||||
### Constants
|
||||
|
||||
- `PositionError.PERMISSION_DENIED`
|
||||
- Returned when users do not allow the app to retrieve position information. This is dependent on the platform.
|
||||
- `PositionError.POSITION_UNAVAILABLE`
|
||||
- Returned when the device is unable to retrieve a position. In general, this means the device is not connected to a network or can't get a satellite fix.
|
||||
- `PositionError.TIMEOUT`
|
||||
- Returned when the device is unable to retrieve a position within the time specified by the `timeout` included in `geolocationOptions`. When used with `navigator.geolocation.watchPosition`, this error could be repeatedly passed to the `geolocationError` callback every `timeout` milliseconds.
|
Loading…
Reference in New Issue
Block a user