# cordova-plugin-geolocation
[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-geolocation)
這個外掛程式提供了有關該設備的位置,例如緯度和經度資訊。 常見的位置資訊來源包括全球定位系統 (GPS) 和網路信號,如 IP 位址、 RFID、 WiFi 和藍牙 MAC 位址和 GSM/CDMA 儲存格 Id 從推斷出的位置。 沒有任何保證,API 返回設備的實際位置。
此 API 基於[W3C 地理定位 API 規範](http://dev.w3.org/geo/api/spec-source.html),並只執行已經不提供實現的設備上。
**警告**: 地理定位資料的收集和使用提出了重要的隱私問題。 您的應用程式的隱私權原則應該討論這款應用程式如何使用地理定位資料,資料是否共用它的任何其他締約方和的資料 (例如,粗、 細,ZIP 代碼級別,等等) 的精度水準。 地理定位資料一般認為是敏感,因為它能揭示使用者的下落以及如果存儲,他們的旅行的歷史。 因此,除了應用程式的隱私權原則,您應強烈考慮之前應用程式訪問地理定位資料 (如果設備作業系統不會這樣做已經) 提供在時間的通知。 該通知應提供相同的資訊上文指出的並獲取該使用者的許可權 (例如,通過為**確定**並**不感謝**提出的選擇)。 有關詳細資訊,請參閱隱私指南。
這個外掛程式定義了一個全球 `navigator.geolocation` 物件 (為平臺哪裡否則丟失)。
儘管物件是在全球範圍內,提供這個外掛程式的功能不可用直到 `deviceready` 事件之後。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log("navigator.geolocation works well");
}
## 安裝
這就要求科爾多瓦 5.0 + (當前穩定 v1.0.0)
cordova plugin add cordova-plugin-geolocation
舊版本的科爾多瓦仍可以通過已棄用 id (陳舊 0.3.12) 安裝
cordova plugin add org.apache.cordova.geolocation
它也是可以直接通過回購 url 安裝 (不穩定)
cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
## 支援的平臺
* 亞馬遜火 OS
* Android 系統
* 黑莓 10
* 火狐瀏覽器作業系統
* iOS
* Tizen
* Windows Phone 7 和 8
* Windows 8
* Windows
## 方法
* navigator.geolocation.getCurrentPosition
* navigator.geolocation.watchPosition
* navigator.geolocation.clearWatch
## 物件 (唯讀)
* Position
* PositionError
* Coordinates
## navigator.geolocation.getCurrentPosition
返回設備的當前位置到 `geolocationSuccess` 回檔與 `Position` 物件作為參數。 如果有錯誤,`geolocationError` 回檔傳遞一個 `PositionError` 物件。
navigator.geolocation.getCurrentPosition(geolocationSuccess,
[geolocationError],
[geolocationOptions]);
### 參數
* **geolocationSuccess**: 傳遞當前位置的回檔。
* **geolocationError**: *(可選)*如果錯誤發生時執行的回檔。
* **geolocationOptions**: *(可選)*地理定位選項。
### 示例
// 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
返回設備的當前的位置,當檢測到更改位置。 當設備檢索一個新位置時,則 `geolocationSuccess` 回檔執行與 `Position` 物件作為參數。 如果有錯誤,則 `geolocationError` 回檔執行同一個 `PositionError` 物件作為參數。
var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
[geolocationError],
[geolocationOptions]);
### 參數
* **geolocationSuccess**: 傳遞當前位置的回檔。
* **geolocationError**: (可選) 如果錯誤發生時執行的回檔。
* **geolocationOptions**: (可選) 地理定位選項。
### 返回
* **String**: 返回引用的觀看位置間隔的表 id。 應與一起使用的表 id `navigator.geolocation.clearWatch` 停止了觀看中位置的更改。
### 示例
// 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 + '
' +
'Longitude: ' + position.coords.longitude + '
' +
'