summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-geolocation
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-09-10 14:58:03 -0400
committerJules Laplace <jules@okfoc.us>2015-09-10 14:58:03 -0400
commitd73a4b1c5a2540077607dcc4001acbae85980ae4 (patch)
treec30089f1742f9430bb18679dc6664157a5dc66f4 /StoneIsland/plugins/cordova-plugin-geolocation
parent124e6c0a8d9577b4a30e0b265f5c23d637c41966 (diff)
app skeleton
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-geolocation')
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/CONTRIBUTING.md37
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/LICENSE202
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/NOTICE5
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/README.md293
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/RELEASENOTES.md129
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/de/README.md268
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/de/index.md255
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/es/README.md266
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/es/index.md214
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/README.md227
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/index.md214
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/it/README.md268
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/it/index.md255
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/README.md268
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/index.md255
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/README.md268
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/index.md255
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/README.md268
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/index.md255
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/ru/index.md206
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/README.md268
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/index.md255
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/package.json41
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/plugin.xml248
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/firefoxos/GeolocationProxy.js67
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.h70
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.m366
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp119
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.h69
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/windows/GeolocationProxy.js174
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/src/wp/GeoLocation.cs34
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/tests/plugin.xml31
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/tests/tests.js425
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/www/Coordinates.js69
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/www/Position.js33
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/www/PositionError.js38
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/www/blackberry10/GeolocationProxy.js69
-rw-r--r--StoneIsland/plugins/cordova-plugin-geolocation/www/geolocation.js211
38 files changed, 6995 insertions, 0 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/CONTRIBUTING.md b/StoneIsland/plugins/cordova-plugin-geolocation/CONTRIBUTING.md
new file mode 100644
index 00000000..f7dbcaba
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/CONTRIBUTING.md
@@ -0,0 +1,37 @@
+<!--
+#
+# 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.
+#
+-->
+
+# Contributing to Apache Cordova
+
+Anyone can contribute to Cordova. And we need your contributions.
+
+There are multiple ways to contribute: report bugs, improve the docs, and
+contribute code.
+
+For instructions on this, start with the
+[contribution overview](http://cordova.apache.org/#contribute).
+
+The details are explained there, but the important items are:
+ - Sign and submit an Apache ICLA (Contributor License Agreement).
+ - Have a Jira issue open that corresponds to your contribution.
+ - Run the tests so your patch doesn't break existing functionality.
+
+We look forward to your contributions!
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/LICENSE b/StoneIsland/plugins/cordova-plugin-geolocation/LICENSE
new file mode 100644
index 00000000..7a4a3ea2
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/NOTICE b/StoneIsland/plugins/cordova-plugin-geolocation/NOTICE
new file mode 100644
index 00000000..8ec56a52
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/NOTICE
@@ -0,0 +1,5 @@
+Apache Cordova
+Copyright 2012 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/README.md
new file mode 100644
index 00000000..eb10b9f8
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/README.md
@@ -0,0 +1,293 @@
+<!--
+# license: 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.
+-->
+
+# cordova-plugin-geolocation
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-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.
+
+This plugin defines a global `navigator.geolocation` object (for platforms
+where it is otherwise missing).
+
+Although the object is in the global scope, features provided by this plugin
+are not available until after the `deviceready` event.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+## Installation
+
+This requires cordova 5.0+ ( current stable 1.0.0 )
+
+ cordova plugin add cordova-plugin-geolocation
+
+Older versions of cordova can still install via the deprecated id ( stale 0.3.12 )
+
+ cordova plugin add org.apache.cordova.geolocation
+
+It is also possible to install via repo url directly ( unstable )
+
+ cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- Firefox OS
+- iOS
+- Tizen
+- Windows Phone 7 and 8
+- Windows 8
+- Windows
+
+## 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.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/RELEASENOTES.md b/StoneIsland/plugins/cordova-plugin-geolocation/RELEASENOTES.md
new file mode 100644
index 00000000..197b28e5
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/RELEASENOTES.md
@@ -0,0 +1,129 @@
+<!--
+#
+# 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.
+#
+-->
+# Release Notes
+
+### 0.3.0 (Sept 5, 2013)
+* Added support for windows 8 (Adds required permission)
+
+### 0.3.2 (Sept 25, 2013)
+* CB-4889 bumping&resetting version
+* [BlackBerry10] removed uneeded permission tags in plugin.xml
+* CB-4889 renaming org.apache.cordova.core.geolocation to org.apache.cordova.geolocation
+
+### 0.3.3 (Oct 28, 2013)
+* CB-5128: add repo + issue tag to plugin.xml for geolocation plugin
+* [CB-4915] Incremented plugin version on dev branch.
+
+### 0.3.4 (Dec 4, 2013)
+* Append proxy to platform definition in plugin.xml
+* Append windows 8 Geolocation proxy
+* Code clean-up for android src.
+* Updated amazon-fireos platform + reverting some of the fixes in android code.
+* Added amazon-fireos platform + some of the fixes in android code.
+* CB-5334 [BlackBerry10] Use command proxy
+* call FxOS's getCurrentProxy added
+* pass by only coords
+* proper implementation for firefoxos
+
+### 0.3.5 (Jan 02, 2014)
+* CB-5658 Add doc/index.md for Geolocation plugin
+* windows8: adds missing reference to PositionError (w/o it the app crashes)
+* Removing incorrectly added closing comments for wp7 platform in plugin.xml
+
+### 0.3.6 (Feb 05, 2014)
+* add ubuntu platform support
+* CB-5326 adding FFOS permission and updating supported platforms
+* CB-5729 [BlackBerry10] Update GeolocationProxy to return collapsed object
+
+### 0.3.7 (Apr 17, 2014)
+* CB-6422: [windows8] use cordova/exec/proxy
+* CB-6212: [iOS] fix warnings compiled under arm64 64-bit
+* CB-5977: [android] Removing the Android Geolocation Code. Mission Accomplished.
+* CB-6460: Update license headers
+* Add NOTICE file
+
+### 0.3.8 (Jun 05, 2014)
+* CB-6127 Spanish and French Translations added. Github close #14
+* CB-6804 Add license
+* CB-5416 - Adding support for auto-managing permissions
+* CB-6491 add CONTRIBUTING.md
+* pass by only coords
+* proper implementation for firefoxos
+* call FxOS's getCurrentProxy added
+
+### 0.3.9 (Aug 06, 2014)
+* **FFOS** update GeolocationProxy.js
+* CB-7187 ios: Add explicit dependency on CoreLocation.framework
+* CB-7187 Delete unused #import of CDVShared.h
+* CB-6127 Updated translations for docs
+* ios: Changed distanceFilter from none to 5 meters, prevents it from spamming the callback even though nothing changed.
+
+
+### 0.3.10 (Sep 17, 2014)
+* CB-7556 iOS: Clearing all Watches does not stop Location Services
+* CB-7158 Fix geolocation for ios 8
+* Revert CB-6911 partially (keeping Info.plist key installation for iOS 8)
+* CB-6911 Geolocation fails in iOS 8
+* CB-5114 Windows 8.1 - Use a new proxy as old geolocation methods is deprecated
+* CB-5114 Append Windows 8.1 into plugin.xml + Optimize Windows 8 Geolocation proxy
+* Renamed test dir, added nested plugin.xml
+* added documentation for manual tests
+* CB-7146 Added manual tests
+* Removed js-module for tests from plugin.xml
+* Changing cdvtest format to use module exports
+* register tests using new style
+* Convert tests to new style
+* Removed amazon-fireos code for geolocation.
+* CB-7571 Bump version of nested plugin to match parent plugin
+
+### 0.3.11 (Dec 02, 2014)
+* Do not stop updating location when the error is `kCLErrorLocationUnknown`
+* CB-8094 Pended auto tests for **Windows** Store since they require user interaction
+* CB-8085 Fix geolocation plugin on **Windows**
+* CB-7977 Mention `deviceready` in plugin docs
+* CB-7700 cordova-plugin-geolocation documentation translation: cordova-plugin-geolocation
+
+### 0.3.12 (Feb 04, 2015)
+* CB-8351 ios: Use argumentForIndex rather than NSArray extension
+
+### 1.0.0 (Apr 15, 2015)
+* CB-8746 gave plugin major version bump
+* CB-8683 changed plugin-id to pacakge-name
+* CB-8653 properly updated translated docs to use new id
+* CB-8653 updated translated docs to use new id
+* Use TRAVIS_BUILD_DIR, install paramedic by npm
+* CB-8681 Fixed occasional test failures
+* docs: added Windows to supported platforms
+* CB-8653 Updated Readme
+* CB-8659: ios: 4.0.x Compatibility: Remove use of initWebView method
+* CB-8659: ios: 4.0.x Compatibility: Remove use of deprecated headers
+* Wrong parameter in Firefox OS plugin
+* CB-8568 Integrate TravisCI
+* CB-8438 cordova-plugin-geolocation documentation translation: cordova-plugin-geolocation
+* CB-8538 Added package.json file
+* CB-8443 Geolocation tests fail on Windows due to done is called multiple times
+
+### 1.0.1 (Jun 17, 2015)
+* CB-9128 cordova-plugin-geolocation documentation translation: cordova-plugin-geolocation
+* fix npm md issue
+* CB-8845 Updated comment why Android tests are currently pended
+* CB-8845 Pended tests for Android
+* Add more install text for legacy versions of cordova tools. This closes #36
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/de/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/de/README.md
new file mode 100644
index 00000000..9cf693e5
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/de/README.md
@@ -0,0 +1,268 @@
+<!--
+# license: 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.
+-->
+
+# cordova-plugin-geolocation
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-geolocation)
+
+Dieses Plugin bietet Informationen über das Gerät an den Speicherort, z. B. breiten- und Längengrad. Gemeinsame Quellen von Standortinformationen sind Global Positioning System (GPS) und Lage von Netzwerk-Signale wie IP-Adresse, RFID, WLAN und Bluetooth MAC-Adressen und GSM/CDMA Zelle IDs abgeleitet. Es gibt keine Garantie, dass die API des Geräts tatsächliche Position zurückgibt.
+
+Diese API basiert auf der [W3C Geolocation API-Spezifikation](http://dev.w3.org/geo/api/spec-source.html), und nur auf Geräten, die nicht bereits eine Implementierung bieten führt.
+
+**Warnung**: Erhebung und Nutzung von Geolocation-Daten wichtige Privatsphäre wirft. Wie die app benutzt Geolocation-Daten, Ihre app-Datenschutzrichtlinien zu diskutieren, ob es mit allen anderen Parteien und das Niveau der Genauigkeit der Daten (z. B. grob, fein, Postleitzahl, etc..) freigegeben ist. Geolocation-Daten gilt allgemein als empfindlich, weil es den Aufenthaltsort des Benutzers erkennen lässt und wenn gespeichert, die Geschichte von ihren Reisen. Daher neben der app-Privacy Policy sollten stark Sie Bereitstellung einer just-in-Time-Bekanntmachung, bevor die app Geolocation-Daten zugreift (wenn das Betriebssystem des Geräts bereits tun nicht). Diese Benachrichtigung sollte der gleichen Informationen, die vorstehend, sowie die Zustimmung des Benutzers (z.B. durch Präsentation Entscheidungen für das **OK** und **Nein danke**). Weitere Informationen finden Sie in der Datenschutz-Guide.
+
+Dieses Plugin definiert eine globale `navigator.geolocation`-Objekt (für Plattformen, bei denen es sonst fehlt).
+
+Obwohl das Objekt im globalen Gültigkeitsbereich ist, stehen Features von diesem Plugin nicht bis nach dem `deviceready`-Ereignis.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Installation
+
+Dies erfordert Cordova 5.0 + (aktuelle stabile 1.0.0)
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+Ältere Versionen von Cordova können noch über die veraltete Id (veraltete 0.3.12) installieren.
+
+ cordova plugin add org.apache.cordova.geolocation
+
+
+Es ist auch möglich, über Repo Url direkt zu installieren (unstable)
+
+ cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
+
+
+## Unterstützte Plattformen
+
+ * Amazon Fire OS
+ * Android
+ * BlackBerry 10
+ * Firefox OS
+ * iOS
+ * Tizen
+ * Windows Phone 7 und 8
+ * Windows 8
+ * Windows
+
+## Methoden
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## Objekte (schreibgeschützt)
+
+ * Position
+ * Positionsfehler
+ * Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Gibt das Gerät aktuelle Position an den `geolocationSuccess`-Rückruf mit einem `Position`-Objekt als Parameter zurück. Wenn ein Fehler vorliegt, wird der Rückruf `geolocationError` ein `PositionError`-Objekt übergeben.
+
+ navigator.geolocation.getCurrentPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parameter
+
+ * **GeolocationSuccess**: der Rückruf, der die aktuelle Position übergeben wird.
+
+ * **GeolocationError**: *(Optional)* der Rückruf, der ausgeführt wird, wenn ein Fehler auftritt.
+
+ * **GeolocationOptions**: *(Optional)* die Geolocation-Optionen.
+
+### Beispiel
+
+ // 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
+
+Gibt das Gerät aktuelle Position zurück, wenn eine Änderung erkannt wird. Wenn das Gerät einen neuen Speicherort abgerufen hat, führt der `geolocationSuccess`-Rückruf mit einer `Position`-Objekt als Parameter. Wenn ein Fehler vorliegt, führt der `geolocationError`-Rückruf mit einem `PositionError`-Objekt als Parameter.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parameter
+
+ * **GeolocationSuccess**: der Rückruf, der die aktuelle Position übergeben wird.
+
+ * **GeolocationError**: (Optional) der Rückruf, der ausgeführt wird, wenn ein Fehler auftritt.
+
+ * **GeolocationOptions**: (Optional) die Geolocation-Optionen.
+
+### Gibt
+
+ * **String**: gibt eine Uhr-Id, die das Uhr Position Intervall verweist zurück. Die Uhr-Id sollte verwendet werden, mit `navigator.geolocation.clearWatch` , gerade für Änderungen zu stoppen.
+
+### Beispiel
+
+ // 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
+
+Optionalen Parametern, um das Abrufen von Geolocation `Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Optionen
+
+ * **EnableHighAccuracy**: stellt einen Hinweis, dass die Anwendung die bestmöglichen Ergebnisse benötigt. Standardmäßig versucht das Gerät abzurufen ein `Position` mit netzwerkbasierte Methoden. Wenn diese Eigenschaft auf `true` erzählt den Rahmenbedingungen genauere Methoden, z. B. Satellitenortung verwenden. *(Boolean)*
+
+ * **Timeout**: die maximale Länge der Zeit (in Millisekunden), die zulässig ist, übergeben Sie den Aufruf von `navigator.geolocation.getCurrentPosition` oder `geolocation.watchPosition` bis zu den entsprechenden `geolocationSuccess` Rückruf führt. Wenn die `geolocationSuccess` Rückruf wird nicht aufgerufen, in dieser Zeit die `geolocationError` Rückruf wird übergeben ein `PositionError.TIMEOUT` Fehlercode. (Beachten Sie, dass in Verbindung mit `geolocation.watchPosition` , die `geolocationError` Rückruf könnte auf ein Intervall aufgerufen werden alle `timeout` Millisekunden!) *(Anzahl)*
+
+ * **MaximumAge**: eine zwischengespeicherte Position, deren Alter nicht größer als die angegebene Zeit in Millisekunden ist, zu akzeptieren. *(Anzahl)*
+
+### Android Eigenarten
+
+Android 2.x-Emulatoren geben ein Geolocation-Ergebnis nicht zurück, es sei denn, die `EnableHighAccuracy`-Option auf `true` festgelegt ist.
+
+## navigator.geolocation.clearWatch
+
+Stoppen Sie, gerade für Änderungen an dem Gerät Speicherort verweist mithilfe des Parameters `watchID`.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parameter
+
+ * **WatchID**: die Id der `watchPosition` Intervall löschen. (String)
+
+### Beispiel
+
+ // 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
+
+Enthält `Position` koordinaten und Timestamp, erstellt von der Geolocation API.
+
+### Eigenschaften
+
+ * **coords**: eine Reihe von geographischen Koordinaten. *(Coordinates)*
+
+ * **timestamp**: Zeitstempel der Erstellung für `coords` . *(Date)*
+
+## Coordinates
+
+Ein `Coordinates`-Objekt ist ein `Position`-Objekt zugeordnet, die Callback-Funktionen in Anforderungen für die aktuelle Position zur Verfügung steht. Es enthält eine Reihe von Eigenschaften, die die geographischen Koordinaten von einer Position zu beschreiben.
+
+### Eigenschaften
+
+ * **latitude**: Latitude in Dezimalgrad. *(Anzahl)*
+
+ * **longitude**: Länge in Dezimalgrad. *(Anzahl)*
+
+ * **altitude**: Höhe der Position in Meter über dem Ellipsoid. *(Anzahl)*
+
+ * **accuracy**: Genauigkeit der breiten- und Längengrad Koordinaten in Metern. *(Anzahl)*
+
+ * **AltitudeAccuracy**: Genauigkeit der Koordinate Höhe in Metern. *(Anzahl)*
+
+ * **heading**: Fahrtrichtung, angegeben in Grad relativ zu den Norden im Uhrzeigersinn gezählt. *(Anzahl)*
+
+ * **speed**: aktuelle Geschwindigkeit über Grund des Geräts, in Metern pro Sekunde angegeben. *(Anzahl)*
+
+### Amazon Fire OS Macken
+
+**altitudeAccuracy**: von Android-Geräten, Rückgabe `null` nicht unterstützt.
+
+### Android Eigenarten
+
+**altitudeAccuracy**: von Android-Geräten, Rückgabe `null` nicht unterstützt.
+
+## Positionsfehler
+
+Das `PositionError`-Objekt wird an die `geolocationError`-Callback-Funktion übergeben, tritt ein Fehler mit navigator.geolocation.
+
+### Eigenschaften
+
+ * **Code**: einer der vordefinierten Fehlercodes aufgeführt.
+
+ * **Nachricht**: Fehlermeldung, die die Informationen über den aufgetretenen Fehler beschreibt.
+
+### Konstanten
+
+ * `PositionError.PERMISSION_DENIED`
+ * Zurückgegeben, wenn Benutzer erlauben nicht die app Positionsinformationen abgerufen werden. Dies ist abhängig von der Plattform.
+ * `PositionError.POSITION_UNAVAILABLE`
+ * Zurückgegeben, wenn das Gerät nicht in der Lage, eine Position abzurufen ist. Im Allgemeinen bedeutet dies, dass das Gerät nicht mit einem Netzwerk verbunden ist oder ein Satelliten-Update kann nicht abgerufen werden.
+ * `PositionError.TIMEOUT`
+ * Zurückgegeben, wenn das Gerät nicht in der Lage, eine Position innerhalb der festgelegten Zeit abzurufen ist die `timeout` enthalten `geolocationOptions` . Bei Verwendung mit `navigator.geolocation.watchPosition` , könnte dieser Fehler wiederholt übergeben werden, zu der `geolocationError` Rückruf jedes `timeout` Millisekunden. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/de/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/de/index.md
new file mode 100644
index 00000000..3fe4e4a8
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/de/index.md
@@ -0,0 +1,255 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+Dieses Plugin bietet Informationen über das Gerät an den Speicherort, z. B. breiten- und Längengrad. Gemeinsame Quellen von Standortinformationen sind Global Positioning System (GPS) und Lage von Netzwerk-Signale wie IP-Adresse, RFID, WLAN und Bluetooth MAC-Adressen und GSM/CDMA Zelle IDs abgeleitet. Es gibt keine Garantie, dass die API des Geräts tatsächliche Position zurückgibt.
+
+Diese API basiert auf der [W3C Geolocation API-Spezifikation][1], und nur auf Geräten, die nicht bereits eine Implementierung bieten führt.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**Warnung**: Erhebung und Nutzung von Geolocation-Daten wichtige Privatsphäre wirft. Wie die app benutzt Geolocation-Daten, Ihre app-Datenschutzrichtlinien zu diskutieren, ob es mit allen anderen Parteien und das Niveau der Genauigkeit der Daten (z. B. grob, fein, Postleitzahl, etc..) freigegeben ist. Geolocation-Daten gilt allgemein als empfindlich, weil es den Aufenthaltsort des Benutzers erkennen lässt und wenn gespeichert, die Geschichte von ihren Reisen. Daher neben der app-Privacy Policy sollten stark Sie Bereitstellung einer just-in-Time-Bekanntmachung, bevor die app Geolocation-Daten zugreift (wenn das Betriebssystem des Geräts bereits tun nicht). Diese Benachrichtigung sollte der gleichen Informationen, die vorstehend, sowie die Zustimmung des Benutzers (z.B. durch Präsentation Entscheidungen für das **OK** und **Nein danke**). Weitere Informationen finden Sie in der Datenschutz-Guide.
+
+Dieses Plugin definiert eine globale `navigator.geolocation`-Objekt (für Plattformen, bei denen es sonst fehlt).
+
+Obwohl das Objekt im globalen Gültigkeitsbereich ist, stehen Features von diesem Plugin nicht bis nach dem `deviceready`-Ereignis.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Installation
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## Unterstützte Plattformen
+
+* Amazon Fire OS
+* Android
+* BlackBerry 10
+* Firefox OS
+* iOS
+* Tizen
+* Windows Phone 7 und 8
+* Windows 8
+
+## Methoden
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## Objekte (schreibgeschützt)
+
+* Position
+* Positionsfehler
+* Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Gibt das Gerät aktuelle Position an den `geolocationSuccess`-Rückruf mit einem `Position`-Objekt als Parameter zurück. Wenn ein Fehler vorliegt, wird der Rückruf `geolocationError` ein `PositionError`-Objekt übergeben.
+
+ navigator.geolocation.getCurrentPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parameter
+
+* **GeolocationSuccess**: der Rückruf, der die aktuelle Position übergeben wird.
+
+* **GeolocationError**: *(Optional)* der Rückruf, der ausgeführt wird, wenn ein Fehler auftritt.
+
+* **GeolocationOptions**: *(Optional)* die Geolocation-Optionen.
+
+### Beispiel
+
+ // 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
+
+Gibt das Gerät aktuelle Position zurück, wenn eine Änderung erkannt wird. Wenn das Gerät einen neuen Speicherort abgerufen hat, führt der `geolocationSuccess`-Rückruf mit einer `Position`-Objekt als Parameter. Wenn ein Fehler vorliegt, führt der `geolocationError`-Rückruf mit einem `PositionError`-Objekt als Parameter.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parameter
+
+* **GeolocationSuccess**: der Rückruf, der die aktuelle Position übergeben wird.
+
+* **GeolocationError**: (Optional) der Rückruf, der ausgeführt wird, wenn ein Fehler auftritt.
+
+* **GeolocationOptions**: (Optional) die Geolocation-Optionen.
+
+### Gibt
+
+* **String**: gibt eine Uhr-Id, die das Uhr Position Intervall verweist zurück. Die Uhr-Id sollte verwendet werden, mit `navigator.geolocation.clearWatch` , gerade für Änderungen zu stoppen.
+
+### Beispiel
+
+ // 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
+
+Optionalen Parametern, um das Abrufen von Geolocation `Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Optionen
+
+* **EnableHighAccuracy**: stellt einen Hinweis, dass die Anwendung die bestmöglichen Ergebnisse benötigt. Standardmäßig versucht das Gerät abzurufen ein `Position` mit netzwerkbasierte Methoden. Wenn diese Eigenschaft auf `true` erzählt den Rahmenbedingungen genauere Methoden, z. B. Satellitenortung verwenden. *(Boolean)*
+
+* **Timeout**: die maximale Länge der Zeit (in Millisekunden), die zulässig ist, übergeben Sie den Aufruf von `navigator.geolocation.getCurrentPosition` oder `geolocation.watchPosition` bis zu den entsprechenden `geolocationSuccess` Rückruf führt. Wenn die `geolocationSuccess` Rückruf wird nicht aufgerufen, in dieser Zeit die `geolocationError` Rückruf wird übergeben ein `PositionError.TIMEOUT` Fehlercode. (Beachten Sie, dass in Verbindung mit `geolocation.watchPosition` , die `geolocationError` Rückruf könnte auf ein Intervall aufgerufen werden alle `timeout` Millisekunden!) *(Anzahl)*
+
+* **MaximumAge**: eine zwischengespeicherte Position, deren Alter nicht größer als die angegebene Zeit in Millisekunden ist, zu akzeptieren. *(Anzahl)*
+
+### Android Eigenarten
+
+Android 2.x-Emulatoren geben ein Geolocation-Ergebnis nicht zurück, es sei denn, die `EnableHighAccuracy`-Option auf `true` festgelegt ist.
+
+## navigator.geolocation.clearWatch
+
+Stoppen Sie, gerade für Änderungen an dem Gerät Speicherort verweist mithilfe des Parameters `watchID`.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parameter
+
+* **WatchID**: die Id der `watchPosition` Intervall löschen. (String)
+
+### Beispiel
+
+ // 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
+
+Enthält `Position` koordinaten und Timestamp, erstellt von der Geolocation API.
+
+### Eigenschaften
+
+* **coords**: eine Reihe von geographischen Koordinaten. *(Coordinates)*
+
+* **timestamp**: Zeitstempel der Erstellung für `coords` . *(Date)*
+
+## Coordinates
+
+Ein `Coordinates`-Objekt ist ein `Position`-Objekt zugeordnet, die Callback-Funktionen in Anforderungen für die aktuelle Position zur Verfügung steht. Es enthält eine Reihe von Eigenschaften, die die geographischen Koordinaten von einer Position zu beschreiben.
+
+### Eigenschaften
+
+* **latitude**: Latitude in Dezimalgrad. *(Anzahl)*
+
+* **longitude**: Länge in Dezimalgrad. *(Anzahl)*
+
+* **altitude**: Höhe der Position in Meter über dem Ellipsoid. *(Anzahl)*
+
+* **accuracy**: Genauigkeit der breiten- und Längengrad Koordinaten in Metern. *(Anzahl)*
+
+* **AltitudeAccuracy**: Genauigkeit der Koordinate Höhe in Metern. *(Anzahl)*
+
+* **heading**: Fahrtrichtung, angegeben in Grad relativ zu den Norden im Uhrzeigersinn gezählt. *(Anzahl)*
+
+* **speed**: aktuelle Geschwindigkeit über Grund des Geräts, in Metern pro Sekunde angegeben. *(Anzahl)*
+
+### Amazon Fire OS Macken
+
+**altitudeAccuracy**: von Android-Geräten, Rückgabe `null` nicht unterstützt.
+
+### Android Eigenarten
+
+**altitudeAccuracy**: von Android-Geräten, Rückgabe `null` nicht unterstützt.
+
+## Positionsfehler
+
+Das `PositionError`-Objekt wird an die `geolocationError`-Callback-Funktion übergeben, tritt ein Fehler mit navigator.geolocation.
+
+### Eigenschaften
+
+* **Code**: einer der vordefinierten Fehlercodes aufgeführt.
+
+* **Nachricht**: Fehlermeldung, die die Informationen über den aufgetretenen Fehler beschreibt.
+
+### Konstanten
+
+* `PositionError.PERMISSION_DENIED`
+ * Zurückgegeben, wenn Benutzer erlauben nicht die app Positionsinformationen abgerufen werden. Dies ist abhängig von der Plattform.
+* `PositionError.POSITION_UNAVAILABLE`
+ * Zurückgegeben, wenn das Gerät nicht in der Lage, eine Position abzurufen ist. Im Allgemeinen bedeutet dies, dass das Gerät nicht mit einem Netzwerk verbunden ist oder ein Satelliten-Update kann nicht abgerufen werden.
+* `PositionError.TIMEOUT`
+ * Zurückgegeben, wenn das Gerät nicht in der Lage, eine Position innerhalb der festgelegten Zeit abzurufen ist die `timeout` enthalten `geolocationOptions` . Bei Verwendung mit `navigator.geolocation.watchPosition` , könnte dieser Fehler wiederholt übergeben werden, zu der `geolocationError` Rückruf jedes `timeout` Millisekunden.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/es/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/es/README.md
new file mode 100644
index 00000000..1a4bf006
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/es/README.md
@@ -0,0 +1,266 @@
+<!--
+# license: 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.
+-->
+
+# cordova-plugin-geolocation
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-geolocation)
+
+Este plugin proporciona información sobre la ubicación del dispositivo, tales como la latitud y longitud. Fuentes comunes de información de localización incluyen el sistema de posicionamiento Global (GPS) y ubicación deducido de las señales de la red como dirección IP, direcciones de RFID, WiFi y Bluetooth MAC y celulares GSM/CDMA IDs. No hay ninguna garantía de que la API devuelve la ubicación real del dispositivo.
+
+Esta API se basa en la [Especificación de API de geolocalización W3C](http://dev.w3.org/geo/api/spec-source.html) y sólo se ejecuta en dispositivos que ya no proporcionan una implementación.
+
+**ADVERTENCIA**: recopilación y uso de datos de geolocalización plantea cuestiones de privacidad importante. Política de privacidad de su aplicación debe discutir cómo la aplicación utiliza los datos de geolocalización, si se comparte con cualquiera de las partes y el nivel de precisión de los datos (por ejemplo, código postal grueso, fino, nivel, etc.). Datos de geolocalización es generalmente considerados sensibles porque puede revelar paradero del usuario y, si está almacenado, la historia de sus viajes. Por lo tanto, además de política de privacidad de la app, fuertemente considere dar un aviso de just-in-time antes de la aplicación tiene acceso a datos de geolocalización (si el sistema operativo del dispositivo ya no hacerlo). Que el aviso debe proporcionar la misma información mencionada, además de obtener un permiso del usuario (por ejemplo, presentando opciones para **Aceptar** y **No gracias**). Para obtener más información, por favor consulte a la guía de privacidad.
+
+Este plugin define un global `navigator.geolocation` objeto (para plataformas donde falta lo contrario).
+
+Aunque el objeto está en el ámbito global, características proporcionadas por este plugin no están disponibles hasta después de la `deviceready` evento.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Instalación
+
+Esto requiere cordova 5.0 + (1.0.0 estable actual)
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+Las versiones más antiguas de Córdoba todavía pueden instalar mediante el id obsoleto (0.3.12 rancio)
+
+ Cordova plugin agregar org.apache.cordova.geolocation
+
+
+También es posible instalar directamente vía url repo (inestable)
+
+ cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
+
+
+## Plataformas soportadas
+
+ * Amazon fire OS
+ * Android
+ * BlackBerry 10
+ * Firefox OS
+ * iOS
+ * Tizen
+ * Windows Phone 7 y 8
+ * Windows 8
+ * Windows
+
+## Métodos
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## Objetos (sólo lectura)
+
+ * Position
+ * PositionError
+ * Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Devuelve la posición actual del dispositivo a la `geolocationSuccess` "callback" con un `Position` objeto como parámetro. Si hay un error, el `geolocationError` "callback" pasa un `PositionError` objeto.
+
+ navigator.geolocation.getCurrentPosition (geolocationSuccess, [geolocationError], [geolocationOptions]);
+
+
+### Parámetros
+
+ * **geolocationSuccess**: la devolución de llamada que se pasa a la posición actual.
+
+ * **geolocationError**: *(opcional)* la devolución de llamada que se ejecuta si se produce un error.
+
+ * **geolocationOptions**: *(opcional)* las opciones de geolocalización.
+
+### Ejemplo
+
+ // 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
+
+Devuelve la posición actual del dispositivo cuando se detecta un cambio de posición. Cuando el dispositivo recupera una nueva ubicación, el `geolocationSuccess` devolución de llamada se ejecuta con un `Position` objeto como parámetro. Si hay un error, el `geolocationError` devolución de llamada se ejecuta con un `PositionError` objeto como parámetro.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parámetros
+
+ * **geolocationSuccess**: la devolución de llamada que se pasa a la posición actual.
+
+ * **geolocationError**: (opcional) la devolución de llamada que se ejecuta si se produce un error.
+
+ * **geolocationOptions**: opciones (opcional) la geolocalización.
+
+### Devoluciones
+
+ * **Cadena**: devuelve un identificador de reloj que hace referencia el intervalo de posición del reloj. El id del reloj debe ser utilizado con `navigator.geolocation.clearWatch` para dejar de ver a los cambios de posición.
+
+### Ejemplo
+
+ // 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
+
+Parámetros opcionales para personalizar la recuperación de la geolocalización`Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Opciones
+
+ * **enableHighAccuracy**: proporciona una pista que la aplicación necesita los mejores resultados posibles. De forma predeterminada, el dispositivo intentará recuperar un `Position` usando métodos basados en red. Al establecer esta propiedad en `true` dice el marco a utilizar métodos más precisos, como el posicionamiento satelital. *(Boolean)*
+
+ * **tiempo de espera**: la longitud máxima de tiempo (en milisegundos) que está permitido el paso de la llamada a `navigator.geolocation.getCurrentPosition` o `geolocation.watchPosition` hasta el correspondiente `geolocationSuccess` devolución de llamada se ejecuta. Si el `geolocationSuccess` no se invoque "callback" dentro de este tiempo, el `geolocationError` devolución de llamada se pasa un `PositionError.TIMEOUT` código de error. (Tenga en cuenta que cuando se utiliza en conjunción con `geolocation.watchPosition` , el `geolocationError` "callback" podría ser llamado en un intervalo cada `timeout` milisegundos!) *(Número)*
+
+ * **maximumAge**: aceptar un puesto en la memoria caché, cuya edad no es mayor que el tiempo especificado en milisegundos. *(Número)*
+
+### Rarezas Android
+
+Emuladores Android 2.x no devuelva un resultado de geolocalización a menos que el `enableHighAccuracy` opción se establece en`true`.
+
+## navigator.geolocation.clearWatch
+
+Deja de ver cambios en la ubicación del dispositivo al que hace referencia el `watchID` parámetro.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parámetros
+
+ * **watchID**: el id del intervalo `watchPosition` para despejar. (String)
+
+### Ejemplo
+
+ // 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
+
+Contiene `Position` coordenadas y timestamp, creado por la API de geolocalización.
+
+### Propiedades
+
+ * **coordenadas**: un conjunto de coordenadas geográficas. *(Coordenadas)*
+
+ * **timestamp**: fecha y hora de creación `coords` . *(Fecha)*
+
+## Coordinates
+
+A `Coordinates` objeto está unido a un `Position` que está disponible para funciones de retrollamada en las solicitudes para la posición actual del objeto. Contiene un conjunto de propiedades que describen las coordenadas geográficas de posición.
+
+### Propiedades
+
+ * **Latitude**: latitud en grados decimales. *(Número)*
+
+ * **longitud**: longitud en grados decimales. *(Número)*
+
+ * **altitud**: altura de la posición en metros por encima del elipsoide. *(Número)*
+
+ * **exactitud**: nivel de precisión de las coordenadas de latitud y longitud en metros. *(Número)*
+
+ * **altitudeAccuracy**: nivel de precisión de las coordenadas de altitud en metros. *(Número)*
+
+ * **Dirección**: dirección del recorrido, especificado en grados contando hacia la derecha en relación con el norte verdadero. *(Número)*
+
+ * **velocidad**: velocidad actual del dispositivo especificado en metros por segundo. *(Número)*
+
+### Amazon fuego OS rarezas
+
+**altitudeAccuracy**: no compatible con dispositivos Android, regresando`null`.
+
+### Rarezas Android
+
+**altitudeAccuracy**: no compatible con dispositivos Android, regresando`null`.
+
+## PositionError
+
+El `PositionError` objeto se pasa a la `geolocationError` función de devolución de llamada cuando se produce un error con navigator.geolocation.
+
+### Propiedades
+
+ * **code**: uno de los códigos de error predefinido enumerados a continuación.
+
+ * **mensaje**: mensaje de Error que describe los detalles del error encontrado.
+
+### Constantes
+
+ * `PositionError.PERMISSION_DENIED`
+ * Regresó cuando los usuarios no permiten la aplicación recuperar información de la posición. Esto depende de la plataforma.
+ * `PositionError.POSITION_UNAVAILABLE`
+ * Regresó cuando el dispositivo es capaz de recuperar una posición. En general, esto significa que el dispositivo no está conectado a una red o no puede obtener una solución vía satélite.
+ * `PositionError.TIMEOUT`
+ * Cuando el dispositivo es capaz de recuperar una posición dentro del tiempo especificado por el `timeout` incluido en `geolocationOptions` . Cuando se utiliza con `navigator.geolocation.watchPosition` , este error podría pasar repetidamente a la `geolocationError` "callback" cada `timeout` milisegundos. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/es/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/es/index.md
new file mode 100644
index 00000000..043e9294
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/es/index.md
@@ -0,0 +1,214 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+Este plugin proporciona información sobre la ubicación del dispositivo, tales como la latitud y longitud. Fuentes comunes de información de localización incluyen el sistema de posicionamiento Global (GPS) y ubicación deducido de las señales de la red como dirección IP, direcciones de RFID, WiFi y Bluetooth MAC y celulares GSM/CDMA IDs. No hay ninguna garantía de que la API devuelve la ubicación real del dispositivo.
+
+Esta API se basa en la [Especificación de API de geolocalización W3C][1] y sólo se ejecuta en dispositivos que ya no proporcionan una implementación.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**ADVERTENCIA**: recopilación y uso de datos de geolocalización plantea cuestiones de privacidad importante. Política de privacidad de su aplicación debe discutir cómo la aplicación utiliza los datos de geolocalización, si se comparte con cualquiera de las partes y el nivel de precisión de los datos (por ejemplo, código postal grueso, fino, nivel, etc.). Datos de geolocalización es generalmente considerados sensibles porque puede revelar paradero del usuario y, si está almacenado, la historia de sus viajes. Por lo tanto, además de política de privacidad de la app, fuertemente considere dar un aviso de just-in-time antes de la aplicación tiene acceso a datos de geolocalización (si el sistema operativo del dispositivo ya no hacerlo). Que el aviso debe proporcionar la misma información mencionada, además de obtener un permiso del usuario (por ejemplo, presentando opciones para **Aceptar** y **No gracias**). Para obtener más información, por favor consulte a la guía de privacidad.
+
+Este plugin define un global `navigator.geolocation` objeto (para plataformas donde falta lo contrario).
+
+Aunque el objeto está en el ámbito global, características proporcionadas por este plugin no están disponibles hasta después de la `deviceready` evento.
+
+ document.addEventListener ("deviceready", onDeviceReady, false);
+ function onDeviceReady() {console.log ("navigator.geolocation funciona bien");}
+
+
+## Instalación
+
+ Cordova plugin agregar cordova-plugin-geolocation
+
+
+## Plataformas soportadas
+
+* Amazon fire OS
+* Android
+* BlackBerry 10
+* Firefox OS
+* iOS
+* Tizen
+* Windows Phone 7 y 8
+* Windows 8
+
+## Métodos
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## Objetos (sólo lectura)
+
+* Position
+* PositionError
+* Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Devuelve la posición actual del dispositivo a la `geolocationSuccess` "callback" con un `Position` objeto como parámetro. Si hay un error, el `geolocationError` "callback" pasa un `PositionError` objeto.
+
+ navigator.geolocation.getCurrentPosition (geolocationSuccess, [geolocationError], [geolocationOptions]);
+
+
+### Parámetros
+
+* **geolocationSuccess**: la devolución de llamada que se pasa a la posición actual.
+
+* **geolocationError**: *(opcional)* la devolución de llamada que se ejecuta si se produce un error.
+
+* **geolocationOptions**: *(opcional)* las opciones de geolocalización.
+
+### Ejemplo
+
+ onSuccess Callback / / este método acepta un objeto Position, que contiene el / / coordenadas GPS actual / / var onSuccess = function(position) {alert (' latitud: ' + position.coords.latitude + '\n' + ' longitud: ' + position.coords.longitude + '\n' + ' altitud: ' + position.coords.altitude + '\n' + ' exactitud: ' + position.coords.accuracy + '\n' + ' altitud exactitud: ' + position.coords.altitudeAccuracy + '\n' + ' hacia: ' + position.coords.heading + '\n' + ' velocidad: ' + position.coords.speed + '\n' + ' Timestamp: ' + position.timestamp + '\n');};
+
+ onError Callback recibe un objeto PositionError / / function onError(error) {alert (' código: ' + error.code + '\n' + ' mensaje: ' + error.message + '\n');}
+
+ navigator.geolocation.getCurrentPosition (onSuccess, onError);
+
+
+## navigator.geolocation.watchPosition
+
+Devuelve la posición actual del dispositivo cuando se detecta un cambio de posición. Cuando el dispositivo recupera una nueva ubicación, el `geolocationSuccess` devolución de llamada se ejecuta con un `Position` objeto como parámetro. Si hay un error, el `geolocationError` devolución de llamada se ejecuta con un `PositionError` objeto como parámetro.
+
+ var watchId = navigator.geolocation.watchPosition (geolocationSuccess, [geolocationError], [geolocationOptions]);
+
+
+### Parámetros
+
+* **geolocationSuccess**: la devolución de llamada que se pasa a la posición actual.
+
+* **geolocationError**: (opcional) la devolución de llamada que se ejecuta si se produce un error.
+
+* **geolocationOptions**: opciones (opcional) la geolocalización.
+
+### Devoluciones
+
+* **Cadena**: devuelve un identificador de reloj que hace referencia el intervalo de posición del reloj. El id del reloj debe ser utilizado con `navigator.geolocation.clearWatch` para dejar de ver a los cambios de posición.
+
+### Ejemplo
+
+ onSuccess Callback / / este método acepta un objeto 'Position', que contiene / / coordenadas GPS de la corriente / / function onSuccess(position) {var elemento = document.getElementById('geolocation');
+ element.innerHTML = ' latitud: ' + position.coords.latitude + ' < br / >' + ' longitud: ' + position.coords.longitude + ' < br / >' + ' < hr / >' + element.innerHTML;
+ } / / onError Callback recibe un objeto PositionError / / function onError(error) {alert (' código: ' + error.code + '\n' + ' mensaje: ' + error.message + '\n');}
+
+ Opciones: tira un error si no se recibe ninguna actualización cada 30 segundos.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, { timeout: 30000 });
+
+
+## geolocationOptions
+
+Parámetros opcionales para personalizar la recuperación de la geolocalización`Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Opciones
+
+* **enableHighAccuracy**: proporciona una pista que la aplicación necesita los mejores resultados posibles. De forma predeterminada, el dispositivo intentará recuperar un `Position` usando métodos basados en red. Al establecer esta propiedad en `true` dice el marco a utilizar métodos más precisos, como el posicionamiento satelital. *(Boolean)*
+
+* **tiempo de espera**: la longitud máxima de tiempo (en milisegundos) que está permitido el paso de la llamada a `navigator.geolocation.getCurrentPosition` o `geolocation.watchPosition` hasta el correspondiente `geolocationSuccess` devolución de llamada se ejecuta. Si el `geolocationSuccess` no se invoque "callback" dentro de este tiempo, el `geolocationError` devolución de llamada se pasa un `PositionError.TIMEOUT` código de error. (Tenga en cuenta que cuando se utiliza en conjunción con `geolocation.watchPosition` , el `geolocationError` "callback" podría ser llamado en un intervalo cada `timeout` milisegundos!) *(Número)*
+
+* **maximumAge**: aceptar un puesto en la memoria caché, cuya edad no es mayor que el tiempo especificado en milisegundos. *(Número)*
+
+### Rarezas Android
+
+Emuladores Android 2.x no devuelva un resultado de geolocalización a menos que el `enableHighAccuracy` opción se establece en`true`.
+
+## navigator.geolocation.clearWatch
+
+Deja de ver cambios en la ubicación del dispositivo al que hace referencia el `watchID` parámetro.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parámetros
+
+* **watchID**: el id del intervalo `watchPosition` para despejar. (String)
+
+### Ejemplo
+
+ Opciones: ver los cambios en la posición y usar más / / exacta posición disponible del método de adquisición.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, { enableHighAccuracy: true });
+
+ ... después de...
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+## Position
+
+Contiene `Position` coordenadas y timestamp, creado por la API de geolocalización.
+
+### Propiedades
+
+* **coordenadas**: un conjunto de coordenadas geográficas. *(Coordenadas)*
+
+* **timestamp**: fecha y hora de creación `coords` . *(Fecha)*
+
+## Coordinates
+
+A `Coordinates` objeto está unido a un `Position` que está disponible para funciones de retrollamada en las solicitudes para la posición actual del objeto. Contiene un conjunto de propiedades que describen las coordenadas geográficas de posición.
+
+### Propiedades
+
+* **Latitude**: latitud en grados decimales. *(Número)*
+
+* **longitud**: longitud en grados decimales. *(Número)*
+
+* **altitud**: altura de la posición en metros por encima del elipsoide. *(Número)*
+
+* **exactitud**: nivel de precisión de las coordenadas de latitud y longitud en metros. *(Número)*
+
+* **altitudeAccuracy**: nivel de precisión de las coordenadas de altitud en metros. *(Número)*
+
+* **Dirección**: dirección del recorrido, especificado en grados contando hacia la derecha en relación con el norte verdadero. *(Número)*
+
+* **velocidad**: velocidad actual del dispositivo especificado en metros por segundo. *(Número)*
+
+### Amazon fuego OS rarezas
+
+**altitudeAccuracy**: no compatible con dispositivos Android, regresando`null`.
+
+### Rarezas Android
+
+**altitudeAccuracy**: no compatible con dispositivos Android, regresando`null`.
+
+## PositionError
+
+El `PositionError` objeto se pasa a la `geolocationError` función de devolución de llamada cuando se produce un error con navigator.geolocation.
+
+### Propiedades
+
+* **code**: uno de los códigos de error predefinido enumerados a continuación.
+
+* **mensaje**: mensaje de Error que describe los detalles del error encontrado.
+
+### Constantes
+
+* `PositionError.PERMISSION_DENIED`
+ * Regresó cuando los usuarios no permiten la aplicación recuperar información de la posición. Esto depende de la plataforma.
+* `PositionError.POSITION_UNAVAILABLE`
+ * Regresó cuando el dispositivo es capaz de recuperar una posición. En general, esto significa que el dispositivo no está conectado a una red o no puede obtener una solución vía satélite.
+* `PositionError.TIMEOUT`
+ * Cuando el dispositivo es capaz de recuperar una posición dentro del tiempo especificado por el `timeout` incluido en `geolocationOptions` . Cuando se utiliza con `navigator.geolocation.watchPosition` , este error podría pasar repetidamente a la `geolocationError` "callback" cada `timeout` milisegundos.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/README.md
new file mode 100644
index 00000000..f9865dc6
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/README.md
@@ -0,0 +1,227 @@
+<!--
+# license: 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.
+-->
+
+# cordova-plugin-geolocation
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-geolocation)
+
+Ce plugin fournit des informations sur l'emplacement de l'appareil, tels que la latitude et la longitude. Les sources habituelles d'information incluent le Système de Positionnement Global (GPS) et la position déduite de signaux des réseaux tels que l'adresse IP, RFID, les adresses MAC WiFi et Bluetooth et les IDs cellulaires GSM/CDMA. Il n'y a cependant aucune garantie que cette API renvoie la position réelle de l'appareil.
+
+Cette API est basée sur la [Spécification de l'API Geolocation du W3C](http://dev.w3.org/geo/api/spec-source.html) et s'exécute uniquement sur les appareils qui n'en proposent pas déjà une implémentation.
+
+**Avertissement**: collecte et utilisation des données de géolocalisation soulève des questions importantes de la vie privée. La politique de confidentialité de votre application devrait traiter de la manière dont l'application utilise les données de géolocalisation, si elle les partage avec d'autres parties ou non et définir le niveau de précision de celles-ci (par exemple grossier, fin, restreint au code postal, etc.). Données de géolocalisation sont généralement considéré comme sensibles car elle peut révéler la localisation de l'utilisateur et, si stocké, l'histoire de leurs voyages. Par conséquent, en plus de la politique de confidentialité de l'application, vous devez envisager fortement fournissant un avis juste-à-temps, avant que l'application accède aux données de géolocalisation (si le système d'exploitation de périphérique n'est pas faire déjà). Cette notice devrait contenir les informations susmentionnées, ainsi que permettre de recueillir l'autorisation de l'utilisateur (par exemple, en offrant les possibilités **OK** et **Non merci**). Pour plus d'informations, veuillez vous référer à la section "Guide du respect de la vie privée".
+
+Ce plugin définit un global `navigator.geolocation` objet (pour les plateformes où il est autrement manquant).
+
+Bien que l'objet est dans la portée globale, les fonctions offertes par ce plugin ne sont pas disponibles jusqu'après la `deviceready` événement.
+
+ document.addEventListener (« deviceready », onDeviceReady, false) ;
+ function onDeviceReady() {console.log ("navigator.geolocation fonctionne bien");}
+
+
+## Installation
+
+Pour cela, cordova 5.0 + (1.0.0 stable actuelle)
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+Anciennes versions de cordova peuvent toujours installer via l'id obsolète (rassis 0.3.12)
+
+ Cordova plugin ajouter org.apache.cordova.geolocation
+
+
+Il est également possible d'installer directement via l'url de repo (instable)
+
+ cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
+
+
+## Plates-formes supportées
+
+ * Amazon Fire OS
+ * Android
+ * BlackBerry 10
+ * Firefox OS
+ * iOS
+ * Paciarelli
+ * Windows Phone 7 et 8
+ * Windows 8
+ * Windows
+
+## Méthodes
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## Objets (lecture seule)
+
+ * Position
+ * PositionError
+ * Coordonnées
+
+## navigator.geolocation.getCurrentPosition
+
+Retourne la position actuelle de l'appareil à la `geolocationSuccess` rappel avec un `Position` objet comme paramètre. Si une erreur se produit, le `geolocationError` rappel est passé un `PositionError` objet.
+
+ navigator.geolocation.getCurrentPosition (geolocationSuccess, [geolocationError], [geolocationOptions]) ;
+
+
+### Paramètres
+
+ * **geolocationSuccess** : la fonction callback à laquelle est transmise la position actuelle.
+
+ * **geolocationError** : *(facultative)* la fonction callback s'exécutant si une erreur survient.
+
+ * **geolocationOptions** : *(facultatives)* des préférences de géolocalisation.
+
+### Exemple
+
+ onSuccess rappel / / cette méthode accepte un objet de Position, qui contient le / / coordonnées GPS actuel / / var onSuccess = function(position) {alert ('Latitude: ' + position.coords.latitude + « \n » + ' Longitude: ' + position.coords.longitude + « \n » + ' Altitude: ' + position.coords.altitude + « \n » + ' précision: ' + position.coords.accuracy + « \n » + ' Altitude précision: ' + position.coords.altitudeAccuracy + « \n » + ' rubrique: ' + position.coords.heading + « \n » + ' vitesse: ' + position.coords.speed + « \n » + ' Timestamp: ' + position.timestamp + « \n »);} ;
+
+ onError rappel reçoit un objet PositionError / / function onError(error) {alert ('code: "+ error.code + « \n » + ' message: ' + error.message + « \n »);}
+
+ navigator.geolocation.getCurrentPosition (onSuccess, onError) ;
+
+
+## navigator.geolocation.watchPosition
+
+Retourne la position actuelle de l'appareil lorsqu'un changement de position est détecté. Lorsque l'appareil récupère un nouvel emplacement, le `geolocationSuccess` rappel s'exécute avec un `Position` objet comme paramètre. Si une erreur se produit, le `geolocationError` rappel s'exécute avec un `PositionError` objet comme paramètre.
+
+ var watchId = navigator.geolocation.watchPosition (geolocationSuccess, [geolocationError], [geolocationOptions]) ;
+
+
+### Paramètres
+
+ * **geolocationSuccess** : la fonction callback à laquelle est transmise la position actuelle.
+
+ * **geolocationError** : (facultative) la fonction callback s'exécutant lorsqu'une erreur survient.
+
+ * **geolocationOptions** : (facultatives) options de personnalisation de la géolocalisation.
+
+### Retours
+
+ * **Chaîne**: retourne un id de montre qui fait référence à l'intervalle de position montre. L'id de la montre doit être utilisé avec `navigator.geolocation.clearWatch` d'arrêter de regarder pour les changements de position.
+
+### Exemple
+
+ onSuccess rappel / / cette méthode accepte un objet « Position », qui contient / / coordonnées de GPS le courant / / function onSuccess(position) {var element = document.getElementById('geolocation') ;
+ element.innerHTML = ' Latitude: "+ position.coords.latitude + ' < br / >' + ' Longitude:" + position.coords.longitude + ' < br / >' + ' < hr / >' + element.innerHTML ;
+ } / / onError rappel reçoit un objet PositionError / / function onError(error) {alert ('code: ' + error.code + « \n » + "message: ' + error.message + « \n »);}
+
+ Options : lever une erreur si aucune mise à jour n'est reçu toutes les 30 secondes.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, { timeout: 30000 }) ;
+
+
+## geolocationOptions
+
+Paramètres optionnels pour personnaliser la récupération de la géolocalisation`Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true } ;
+
+
+### Options
+
+ * **enableHighAccuracy** : indique que l'application nécessite les meilleurs résultats possibles. Par défaut, l'appareil tente de récupérer une `Position` à l'aide de méthodes basées sur le réseau. Définir cette propriété à `true` demande à Cordova d'utiliser des méthodes plus précises, telles que la localisation par satellite. *(Boolean)*
+
+ * **délai d'attente**: la longueur maximale de temps (en millisecondes) qui peut passer de l'appel à `navigator.geolocation.getCurrentPosition` ou `geolocation.watchPosition` jusqu'à ce que le correspondant `geolocationSuccess` rappel s'exécute. Si `geolocationSuccess` n'est pas appelée dans ce délai, le code d'erreur `PositionError.TIMEOUT` est transmis à la fonction callback `geolocationError`. (Notez que, dans le cas de `geolocation.watchPosition`, la fonction callback `geolocationError` pourrait être appelée à un intervalle régulier de `timeout` millisecondes !) *(Number)*
+
+ * **maximumAge** : accepter une position mise en cache dont l'âge ne dépasse pas le délai spécifié en millisecondes. *(Number)*
+
+### Quirks Android
+
+Émulateurs Android 2.x ne pas retournent un résultat de géolocalisation, à moins que le `enableHighAccuracy` option est définie sur`true`.
+
+## navigator.geolocation.clearWatch
+
+Arrêter de regarder pour les modifications à l'emplacement de l'appareil référencé par le `watchID` paramètre.
+
+ navigator.geolocation.clearWatch(watchID) ;
+
+
+### Paramètres
+
+ * **watchID** : l'identifiant de l'intervalle `watchPosition` à effacer. (String)
+
+### Exemple
+
+ Options : suivi des modifications dans la position et utilise le plus / / exacte position méthode d'acquisition disponible.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, { enableHighAccuracy: true }) ;
+
+ .. plus sur...
+
+ navigator.geolocation.clearWatch(watchID) ;
+
+
+## Position
+
+Contient `Position` coordonnées et timestamp, créé par l'API de géolocalisation.
+
+### Propriétés
+
+ * **coords** : un ensemble de coordonnées géographiques. *(Coordinates)*
+
+ * **timestamp** : horodatage de la création de `coords`. *(Date)*
+
+## Coordonnées
+
+A `Coordinates` objet est attaché à un `Position` objet qui n'existe pas de fonctions de rappel dans les requêtes pour la position actuelle. Il contient un ensemble de propriétés qui décrivent les coordonnées géographiques d'une position.
+
+### Propriétés
+
+ * **latitude** : latitude en degrés décimaux. *(Number)*
+
+ * **longitude** : longitude en degrés décimaux. *(Number)*
+
+ * **altitude** : hauteur de la position en mètres au-dessus de l'ellipsoïde. *(Number)*
+
+ * **accuracy** : niveau de précision des valeurs de latitude et longitude, en mètres. *(Number)*
+
+ * **altitudeAccuracy** : niveau de précision de la valeur d'altitude, en mètres. *(Number)*
+
+ * **heading** : direction du trajet, indiquée en degrés comptés dans le sens horaire par rapport au vrai Nord. *(Number)*
+
+ * **speed** : vitesse au sol actuelle de l'appareil, indiquée en mètres par seconde. *(Number)*
+
+### Amazon Fire OS Quirks
+
+**altitudeAccuracy**: ne pas pris en charge par les appareils Android, retour`null`.
+
+### Quirks Android
+
+**altitudeAccuracy**: ne pas pris en charge par les appareils Android, retour`null`.
+
+## PositionError
+
+Le `PositionError` objet est passé à la `geolocationError` fonction de rappel lorsqu'une erreur se produit avec navigator.geolocation.
+
+### Propriétés
+
+ * **code**: l'un des codes d'erreur prédéfinis énumérés ci-dessous.
+
+ * **message** : un message d'erreur détaillant l'erreur rencontrée.
+
+### Constantes
+
+ * `PositionError.PERMISSION_DENIED`
+ * Retourné lorsque les utilisateurs ne permettent pas l'application extraire des informations de position. Cela dépend de la plate-forme.
+ * `PositionError.POSITION_UNAVAILABLE`
+ * Retourné lorsque le périphérique n'est pas en mesure de récupérer une position. En général, cela signifie que l'appareil n'est pas connecté à un réseau ou ne peut pas obtenir un correctif de satellite.
+ * `PositionError.TIMEOUT`
+ * Retourné lorsque le périphérique n'est pas en mesure de récupérer une position dans le délai précisé par le `timeout` inclus dans `geolocationOptions` . Lorsqu'il est utilisé avec `navigator.geolocation.watchPosition` , cette erreur pourrait être transmise à plusieurs reprises à la `geolocationError` rappel chaque `timeout` millisecondes. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/index.md
new file mode 100644
index 00000000..bea18ddc
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/fr/index.md
@@ -0,0 +1,214 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+Ce plugin fournit des informations sur l'emplacement de l'appareil, tels que la latitude et la longitude. Les sources habituelles d'information incluent le Système de Positionnement Global (GPS) et la position déduite de signaux des réseaux tels que l'adresse IP, RFID, les adresses MAC WiFi et Bluetooth et les IDs cellulaires GSM/CDMA. Il n'y a cependant aucune garantie que cette API renvoie la position réelle de l'appareil.
+
+Cette API est basée sur la [Spécification de l'API Geolocation du W3C][1] et s'exécute uniquement sur les appareils qui n'en proposent pas déjà une implémentation.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**Avertissement**: collecte et utilisation des données de géolocalisation soulève des questions importantes de la vie privée. La politique de confidentialité de votre application devrait traiter de la manière dont l'application utilise les données de géolocalisation, si elle les partage avec d'autres parties ou non et définir le niveau de précision de celles-ci (par exemple grossier, fin, restreint au code postal, etc.). Données de géolocalisation sont généralement considéré comme sensibles car elle peut révéler la localisation de l'utilisateur et, si stocké, l'histoire de leurs voyages. Par conséquent, en plus de la politique de confidentialité de l'application, vous devez envisager fortement fournissant un avis juste-à-temps, avant que l'application accède aux données de géolocalisation (si le système d'exploitation de périphérique n'est pas faire déjà). Cette notice devrait contenir les informations susmentionnées, ainsi que permettre de recueillir l'autorisation de l'utilisateur (par exemple, en offrant les possibilités **OK** et **Non merci**). Pour plus d'informations, veuillez vous référer à la section "Guide du respect de la vie privée".
+
+Ce plugin définit un global `navigator.geolocation` objet (pour les plateformes où il est autrement manquant).
+
+Bien que l'objet est dans la portée globale, les fonctions offertes par ce plugin ne sont pas disponibles jusqu'après la `deviceready` événement.
+
+ document.addEventListener (« deviceready », onDeviceReady, false) ;
+ function onDeviceReady() {console.log ("navigator.geolocation fonctionne bien");}
+
+
+## Installation
+
+ Cordova plugin ajouter cordova-plugin-geolocation
+
+
+## Plates-formes prises en charge
+
+* Amazon Fire OS
+* Android
+* BlackBerry 10
+* Firefox OS
+* iOS
+* Paciarelli
+* Windows Phone 7 et 8
+* Windows 8
+
+## Méthodes
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## Objets (lecture seule)
+
+* Position
+* PositionError
+* Coordonnées
+
+## navigator.geolocation.getCurrentPosition
+
+Retourne la position actuelle de l'appareil à la `geolocationSuccess` rappel avec un `Position` objet comme paramètre. Si une erreur se produit, le `geolocationError` rappel est passé un `PositionError` objet.
+
+ navigator.geolocation.getCurrentPosition (geolocationSuccess, [geolocationError], [geolocationOptions]) ;
+
+
+### Paramètres
+
+* **geolocationSuccess** : la fonction callback à laquelle est transmise la position actuelle.
+
+* **geolocationError** : *(facultative)* la fonction callback s'exécutant si une erreur survient.
+
+* **geolocationOptions** : *(facultatives)* des préférences de géolocalisation.
+
+### Exemple
+
+ onSuccess rappel / / cette méthode accepte un objet de Position, qui contient le / / coordonnées GPS actuel / / var onSuccess = function(position) {alert ('Latitude: ' + position.coords.latitude + « \n » + ' Longitude: ' + position.coords.longitude + « \n » + ' Altitude: ' + position.coords.altitude + « \n » + ' précision: ' + position.coords.accuracy + « \n » + ' Altitude précision: ' + position.coords.altitudeAccuracy + « \n » + ' rubrique: ' + position.coords.heading + « \n » + ' vitesse: ' + position.coords.speed + « \n » + ' Timestamp: ' + position.timestamp + « \n »);} ;
+
+ onError rappel reçoit un objet PositionError / / function onError(error) {alert ('code: "+ error.code + « \n » + ' message: ' + error.message + « \n »);}
+
+ navigator.geolocation.getCurrentPosition (onSuccess, onError) ;
+
+
+## navigator.geolocation.watchPosition
+
+Retourne la position actuelle de l'appareil lorsqu'un changement de position est détecté. Lorsque l'appareil récupère un nouvel emplacement, le `geolocationSuccess` rappel s'exécute avec un `Position` objet comme paramètre. Si une erreur se produit, le `geolocationError` rappel s'exécute avec un `PositionError` objet comme paramètre.
+
+ var watchId = navigator.geolocation.watchPosition (geolocationSuccess, [geolocationError], [geolocationOptions]) ;
+
+
+### Paramètres
+
+* **geolocationSuccess**: la fonction de rappel qui est passée de la position actuelle.
+
+* **geolocationError** : (facultative) la fonction callback s'exécutant lorsqu'une erreur survient.
+
+* **geolocationOptions** : (facultatives) options de personnalisation de la géolocalisation.
+
+### Retours
+
+* **Chaîne**: retourne un id de montre qui fait référence à l'intervalle de position montre. L'id de la montre doit être utilisé avec `navigator.geolocation.clearWatch` d'arrêter de regarder pour les changements de position.
+
+### Exemple
+
+ onSuccess rappel / / cette méthode accepte un objet « Position », qui contient / / coordonnées de GPS le courant / / function onSuccess(position) {var element = document.getElementById('geolocation') ;
+ element.innerHTML = ' Latitude: "+ position.coords.latitude + ' < br / >' + ' Longitude:" + position.coords.longitude + ' < br / >' + ' < hr / >' + element.innerHTML ;
+ } / / onError rappel reçoit un objet PositionError / / function onError(error) {alert ('code: ' + error.code + « \n » + "message: ' + error.message + « \n »);}
+
+ Options : lever une erreur si aucune mise à jour n'est reçu toutes les 30 secondes.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, { timeout: 30000 }) ;
+
+
+## geolocationOptions
+
+Paramètres optionnels pour personnaliser la récupération de la géolocalisation`Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true } ;
+
+
+### Options
+
+* **enableHighAccuracy** : indique que l'application nécessite les meilleurs résultats possibles. Par défaut, l'appareil tente de récupérer une `Position` à l'aide de méthodes basées sur le réseau. Définir cette propriété à `true` demande à Cordova d'utiliser des méthodes plus précises, telles que la localisation par satellite. *(Boolean)*
+
+* **délai d'attente**: la longueur maximale de temps (en millisecondes) qui peut passer de l'appel à `navigator.geolocation.getCurrentPosition` ou `geolocation.watchPosition` jusqu'à ce que le correspondant `geolocationSuccess` rappel s'exécute. Si `geolocationSuccess` n'est pas appelée dans ce délai, le code d'erreur `PositionError.TIMEOUT` est transmis à la fonction callback `geolocationError`. (Notez que, dans le cas de `geolocation.watchPosition`, la fonction callback `geolocationError` pourrait être appelée à un intervalle régulier de `timeout` millisecondes !) *(Number)*
+
+* **maximumAge** : accepter une position mise en cache dont l'âge ne dépasse pas le délai spécifié en millisecondes. *(Number)*
+
+### Quirks Android
+
+Émulateurs Android 2.x ne pas retournent un résultat de géolocalisation, à moins que le `enableHighAccuracy` option est définie sur`true`.
+
+## navigator.geolocation.clearWatch
+
+Arrêter de regarder pour les modifications à l'emplacement de l'appareil référencé par le `watchID` paramètre.
+
+ navigator.geolocation.clearWatch(watchID) ;
+
+
+### Paramètres
+
+* **watchID** : l'identifiant de l'intervalle `watchPosition` à effacer. (String)
+
+### Exemple
+
+ Options : suivi des modifications dans la position et utilise le plus / / exacte position méthode d'acquisition disponible.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, { enableHighAccuracy: true }) ;
+
+ .. plus sur...
+
+ navigator.geolocation.clearWatch(watchID) ;
+
+
+## Position
+
+Contient `Position` coordonnées et timestamp, créé par l'API de géolocalisation.
+
+### Propriétés
+
+* **coords** : un ensemble de coordonnées géographiques. *(Coordinates)*
+
+* **timestamp** : horodatage de la création de `coords`. *(Date)*
+
+## Coordonnées
+
+A `Coordinates` objet est attaché à un `Position` objet qui n'existe pas de fonctions de rappel dans les requêtes pour la position actuelle. Il contient un ensemble de propriétés qui décrivent les coordonnées géographiques d'une position.
+
+### Propriétés
+
+* **latitude** : latitude en degrés décimaux. *(Number)*
+
+* **longitude** : longitude en degrés décimaux. *(Number)*
+
+* **altitude** : hauteur de la position en mètres au-dessus de l'ellipsoïde. *(Number)*
+
+* **accuracy** : niveau de précision des valeurs de latitude et longitude, en mètres. *(Number)*
+
+* **altitudeAccuracy** : niveau de précision de la valeur d'altitude, en mètres. *(Number)*
+
+* **heading** : direction du trajet, indiquée en degrés comptés dans le sens horaire par rapport au vrai Nord. *(Number)*
+
+* **speed** : vitesse au sol actuelle de l'appareil, indiquée en mètres par seconde. *(Number)*
+
+### Amazon Fire OS Quirks
+
+**altitudeAccuracy**: ne pas pris en charge par les appareils Android, retour`null`.
+
+### Quirks Android
+
+**altitudeAccuracy**: ne pas pris en charge par les appareils Android, retour`null`.
+
+## PositionError
+
+Le `PositionError` objet est passé à la `geolocationError` fonction de rappel lorsqu'une erreur se produit avec navigator.geolocation.
+
+### Propriétés
+
+* **code**: l'un des codes d'erreur prédéfinis énumérés ci-dessous.
+
+* **message** : un message d'erreur détaillant l'erreur rencontrée.
+
+### Constantes
+
+* `PositionError.PERMISSION_DENIED`
+ * Retourné lorsque les utilisateurs ne permettent pas l'application extraire des informations de position. Cela dépend de la plate-forme.
+* `PositionError.POSITION_UNAVAILABLE`
+ * Retourné lorsque le périphérique n'est pas en mesure de récupérer une position. En général, cela signifie que l'appareil n'est pas connecté à un réseau ou ne peut pas obtenir un correctif de satellite.
+* `PositionError.TIMEOUT`
+ * Retourné lorsque le périphérique n'est pas en mesure de récupérer une position dans le délai précisé par le `timeout` inclus dans `geolocationOptions` . Lorsqu'il est utilisé avec `navigator.geolocation.watchPosition` , cette erreur pourrait être transmise à plusieurs reprises à la `geolocationError` rappel chaque `timeout` millisecondes.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/it/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/it/README.md
new file mode 100644
index 00000000..8eb44be9
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/it/README.md
@@ -0,0 +1,268 @@
+<!--
+# license: 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.
+-->
+
+# cordova-plugin-geolocation
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-geolocation)
+
+Questo plugin fornisce informazioni sulla posizione del dispositivo, come latitudine e longitudine. Comuni fonti di informazioni sulla posizione comprendono Global Positioning System (GPS) e posizione dedotta dai segnali di rete come indirizzo IP, indirizzi, RFID, WiFi e Bluetooth MAC e cellulare GSM/CDMA IDs. Non non c'è alcuna garanzia che l'API restituisce la posizione effettiva del dispositivo.
+
+Questa API è basata sulla [Specifica di W3C Geolocation API](http://dev.w3.org/geo/api/spec-source.html)e viene eseguito solo su dispositivi che non già forniscono un'implementazione.
+
+**Avviso**: raccolta e utilizzo dei dati di geolocalizzazione solleva questioni di privacy importante. Politica sulla privacy dell'app dovrebbe discutere come app utilizza dati di geolocalizzazione, se è condiviso con altre parti e il livello di precisione dei dati (ad esempio, Cap grossolana, fine, livello, ecc.). Dati di geolocalizzazione sono generalmente considerati sensibili perché può rivelare la sorte dell'utente e, se conservati, la storia dei loro viaggi. Pertanto, oltre alla politica di privacy dell'app, è fortemente consigliabile fornendo un preavviso di just-in-time prima app accede ai dati di geolocalizzazione (se il sistema operativo del dispositivo non farlo già). Tale comunicazione deve fornire le informazioni stesse notate sopra, oltre ad ottenere l'autorizzazione (ad esempio, presentando scelte per **OK** e **No grazie**). Per ulteriori informazioni, vedere la guida sulla Privacy.
+
+Questo plugin definisce un oggetto globale `navigator.geolocation` (per le piattaforme dove altrimenti è manca).
+
+Sebbene l'oggetto sia in ambito globale, funzionalità fornite da questo plugin non sono disponibili fino a dopo l'evento `deviceready`.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Installazione
+
+Ciò richiede cordova 5.0 + (attuale stabile 1.0.0)
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+Versioni precedenti di cordova comunque possono installare tramite l'id deprecata (stantio 0.3.12)
+
+ cordova plugin add org.apache.cordova.geolocation
+
+
+È anche possibile installare direttamente tramite url di repo (instabile)
+
+ cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
+
+
+## Piattaforme supportate
+
+ * Amazon fuoco OS
+ * Android
+ * BlackBerry 10
+ * Firefox OS
+ * iOS
+ * Tizen
+ * Windows Phone 7 e 8
+ * Windows 8
+ * Windows
+
+## Metodi
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## Oggetti (sola lettura)
+
+ * Position
+ * PositionError
+ * Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Restituisce la posizione corrente del dispositivo il callback di `geolocationSuccess` con un `Position` di oggetto come parametro. Se c'è un errore, `geolocationError` callback viene passato un oggetto `PositionError`.
+
+ navigator.geolocation.getCurrentPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametri
+
+ * **geolocationSuccess**: il callback passato alla posizione corrente.
+
+ * **geolocationError**: *(facoltativo)* il callback che viene eseguito se si verifica un errore.
+
+ * **geolocationOptions**: *(opzionale)* le opzioni di geolocalizzazione.
+
+### Esempio
+
+ // 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
+
+Restituisce la posizione corrente del dispositivo quando viene rilevata una modifica della posizione. Quando il dispositivo recupera una nuova posizione, il callback `geolocationSuccess` esegue con un `Position` di oggetto come parametro. Se c'è un errore, `geolocationError` callback viene eseguito con un oggetto `PositionError` come parametro.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametri
+
+ * **geolocationSuccess**: il callback passato alla posizione corrente.
+
+ * **geolocationError**: (facoltativo) il callback che viene eseguito se si verifica un errore.
+
+ * **geolocationOptions**: opzioni (opzionale) la geolocalizzazione.
+
+### Restituisce
+
+ * **Stringa**: restituisce un id di orologio che fa riferimento l'intervallo di posizione orologio. L'id dell'orologio deve essere usato con `navigator.geolocation.clearWatch` a smettere di guardare per cambiamenti di posizione.
+
+### Esempio
+
+ // 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
+
+Parametri opzionali per personalizzare il recupero di geolocalizzazione `Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Opzioni
+
+ * **enableHighAccuracy**: fornisce un suggerimento che l'applicazione ha bisogno i migliori risultati possibili. Per impostazione predefinita, il dispositivo tenta di recuperare un `Position` usando metodi basati sulla rete. Impostando questa proprietà su `true` indica al framework di utilizzare metodi più accurati, come posizionamento satellitare. *(Boolean)*
+
+ * **timeout**: la lunghezza massima di tempo (in millisecondi) che è consentito per passare dalla chiamata a `navigator.geolocation.getCurrentPosition` o `geolocation.watchPosition` fino a quando il corrispondente `geolocationSuccess` callback viene eseguito. Se il `geolocationSuccess` callback non viene richiamato entro questo tempo, il `geolocationError` callback viene passata una `PositionError.TIMEOUT` codice di errore. (Si noti che, quando utilizzato in combinazione con `geolocation.watchPosition` , il `geolocationError` callback potrebbe essere chiamato un intervallo ogni `timeout` millisecondi!) *(Numero)*
+
+ * **maximumAge**: accettare una posizione memorizzata nella cache in cui età è minore il tempo specificato in millisecondi. *(Numero)*
+
+### Stranezze Android
+
+Emulatori Android 2. x non restituiscono un risultato di geolocalizzazione a meno che l'opzione `enableHighAccuracy` è impostata su `true`.
+
+## navigator.geolocation.clearWatch
+
+Smettere di guardare per le modifiche alla posizione del dispositivo a cui fa riferimento il parametro `watchID`.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parametri
+
+ * **watchID**: l'id del `watchPosition` intervallo per cancellare. (String)
+
+### Esempio
+
+ // 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
+
+Contiene le coordinate della `Position` e timestamp, creato da geolocation API.
+
+### Proprietà
+
+ * **CoOrds**: un insieme di coordinate geografiche. *(Coordinate)*
+
+ * **timestamp**: timestamp di creazione per `coords` . *(Data)*
+
+## Coordinates
+
+Un oggetto `Coordinates` è associato a un oggetto `Position` disponibile per le funzioni di callback in richieste per la posizione corrente. Contiene un insieme di proprietà che descrivono le coordinate geografiche di una posizione.
+
+### Proprietà
+
+ * **latitudine**: latitudine in gradi decimali. *(Numero)*
+
+ * **longitudine**: longitudine in gradi decimali. *(Numero)*
+
+ * **altitudine**: altezza della posizione in metri sopra l'ellissoide. *(Numero)*
+
+ * **accuratezza**: livello di accuratezza delle coordinate latitudine e longitudine in metri. *(Numero)*
+
+ * **altitudeAccuracy**: livello di accuratezza della coordinata altitudine in metri. *(Numero)*
+
+ * **rubrica**: senso di marcia, specificata in gradi in senso orario rispetto al vero nord di conteggio. *(Numero)*
+
+ * **velocità**: velocità attuale terra del dispositivo, specificato in metri al secondo. *(Numero)*
+
+### Amazon fuoco OS stranezze
+
+**altitudeAccuracy**: non supportato dai dispositivi Android, restituendo `null`.
+
+### Stranezze Android
+
+**altitudeAccuracy**: non supportato dai dispositivi Android, restituendo `null`.
+
+## PositionError
+
+L'oggetto `PositionError` viene passato alla funzione di callback `geolocationError` quando si verifica un errore con navigator.geolocation.
+
+### Proprietà
+
+ * **codice**: uno dei codici di errore predefiniti elencati di seguito.
+
+ * **messaggio**: messaggio di errore che descrive i dettagli dell'errore rilevato.
+
+### Costanti
+
+ * `PositionError.PERMISSION_DENIED`
+ * Restituito quando gli utenti non consentono l'applicazione recuperare le informazioni di posizione. Questo è dipendente dalla piattaforma.
+ * `PositionError.POSITION_UNAVAILABLE`
+ * Restituito quando il dispositivo è in grado di recuperare una posizione. In generale, questo significa che il dispositivo non è connesso a una rete o non può ottenere un fix satellitare.
+ * `PositionError.TIMEOUT`
+ * Restituito quando il dispositivo è in grado di recuperare una posizione entro il tempo specificato dal `timeout` incluso `geolocationOptions` . Quando utilizzato con `navigator.geolocation.watchPosition` , questo errore potrebbe essere passato più volte per la `geolocationError` richiamata ogni `timeout` millisecondi. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/it/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/it/index.md
new file mode 100644
index 00000000..41412a07
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/it/index.md
@@ -0,0 +1,255 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+Questo plugin fornisce informazioni sulla posizione del dispositivo, come latitudine e longitudine. Comuni fonti di informazioni sulla posizione comprendono Global Positioning System (GPS) e posizione dedotta dai segnali di rete come indirizzo IP, indirizzi, RFID, WiFi e Bluetooth MAC e cellulare GSM/CDMA IDs. Non non c'è alcuna garanzia che l'API restituisce la posizione effettiva del dispositivo.
+
+Questa API è basata sulla [Specifica di W3C Geolocation API][1]e viene eseguito solo su dispositivi che non già forniscono un'implementazione.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**Avviso**: raccolta e utilizzo dei dati di geolocalizzazione solleva questioni di privacy importante. Politica sulla privacy dell'app dovrebbe discutere come app utilizza dati di geolocalizzazione, se è condiviso con altre parti e il livello di precisione dei dati (ad esempio, Cap grossolana, fine, livello, ecc.). Dati di geolocalizzazione sono generalmente considerati sensibili perché può rivelare la sorte dell'utente e, se conservati, la storia dei loro viaggi. Pertanto, oltre alla politica di privacy dell'app, è fortemente consigliabile fornendo un preavviso di just-in-time prima app accede ai dati di geolocalizzazione (se il sistema operativo del dispositivo non farlo già). Tale comunicazione deve fornire le informazioni stesse notate sopra, oltre ad ottenere l'autorizzazione (ad esempio, presentando scelte per **OK** e **No grazie**). Per ulteriori informazioni, vedere la guida sulla Privacy.
+
+Questo plugin definisce un oggetto globale `navigator.geolocation` (per le piattaforme dove altrimenti è manca).
+
+Sebbene l'oggetto sia in ambito globale, funzionalità fornite da questo plugin non sono disponibili fino a dopo l'evento `deviceready`.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Installazione
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## Piattaforme supportate
+
+* Amazon fuoco OS
+* Android
+* BlackBerry 10
+* Firefox OS
+* iOS
+* Tizen
+* Windows Phone 7 e 8
+* Windows 8
+
+## Metodi
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## Oggetti (sola lettura)
+
+* Position
+* PositionError
+* Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Restituisce la posizione corrente del dispositivo il callback di `geolocationSuccess` con un `Position` di oggetto come parametro. Se c'è un errore, `geolocationError` callback viene passato un oggetto `PositionError`.
+
+ navigator.geolocation.getCurrentPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametri
+
+* **geolocationSuccess**: il callback passato alla posizione corrente.
+
+* **geolocationError**: *(facoltativo)* il callback che viene eseguito se si verifica un errore.
+
+* **geolocationOptions**: *(opzionale)* le opzioni di geolocalizzazione.
+
+### Esempio
+
+ // 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
+
+Restituisce la posizione corrente del dispositivo quando viene rilevata una modifica della posizione. Quando il dispositivo recupera una nuova posizione, il callback `geolocationSuccess` esegue con un `Position` di oggetto come parametro. Se c'è un errore, `geolocationError` callback viene eseguito con un oggetto `PositionError` come parametro.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametri
+
+* **geolocationSuccess**: il callback passato alla posizione corrente.
+
+* **geolocationError**: (facoltativo) il callback che viene eseguito se si verifica un errore.
+
+* **geolocationOptions**: opzioni (opzionale) la geolocalizzazione.
+
+### Restituisce
+
+* **Stringa**: restituisce un id di orologio che fa riferimento l'intervallo di posizione orologio. L'id dell'orologio deve essere usato con `navigator.geolocation.clearWatch` a smettere di guardare per cambiamenti di posizione.
+
+### Esempio
+
+ // 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
+
+Parametri opzionali per personalizzare il recupero di geolocalizzazione `Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Opzioni
+
+* **enableHighAccuracy**: fornisce un suggerimento che l'applicazione ha bisogno i migliori risultati possibili. Per impostazione predefinita, il dispositivo tenta di recuperare un `Position` usando metodi basati sulla rete. Impostando questa proprietà su `true` indica al framework di utilizzare metodi più accurati, come posizionamento satellitare. *(Boolean)*
+
+* **timeout**: la lunghezza massima di tempo (in millisecondi) che è consentito per passare dalla chiamata a `navigator.geolocation.getCurrentPosition` o `geolocation.watchPosition` fino a quando il corrispondente `geolocationSuccess` callback viene eseguito. Se il `geolocationSuccess` callback non viene richiamato entro questo tempo, il `geolocationError` callback viene passata una `PositionError.TIMEOUT` codice di errore. (Si noti che, quando utilizzato in combinazione con `geolocation.watchPosition` , il `geolocationError` callback potrebbe essere chiamato un intervallo ogni `timeout` millisecondi!) *(Numero)*
+
+* **maximumAge**: accettare una posizione memorizzata nella cache in cui età è minore il tempo specificato in millisecondi. *(Numero)*
+
+### Stranezze Android
+
+Emulatori Android 2. x non restituiscono un risultato di geolocalizzazione a meno che l'opzione `enableHighAccuracy` è impostata su `true`.
+
+## navigator.geolocation.clearWatch
+
+Smettere di guardare per le modifiche alla posizione del dispositivo a cui fa riferimento il parametro `watchID`.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parametri
+
+* **watchID**: l'id del `watchPosition` intervallo per cancellare. (String)
+
+### Esempio
+
+ // 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
+
+Contiene le coordinate della `Position` e timestamp, creato da geolocation API.
+
+### Proprietà
+
+* **CoOrds**: un insieme di coordinate geografiche. *(Coordinate)*
+
+* **timestamp**: timestamp di creazione per `coords` . *(Data)*
+
+## Coordinates
+
+Un oggetto `Coordinates` è associato a un oggetto `Position` disponibile per le funzioni di callback in richieste per la posizione corrente. Contiene un insieme di proprietà che descrivono le coordinate geografiche di una posizione.
+
+### Proprietà
+
+* **latitudine**: latitudine in gradi decimali. *(Numero)*
+
+* **longitudine**: longitudine in gradi decimali. *(Numero)*
+
+* **altitudine**: altezza della posizione in metri sopra l'ellissoide. *(Numero)*
+
+* **accuratezza**: livello di accuratezza delle coordinate latitudine e longitudine in metri. *(Numero)*
+
+* **altitudeAccuracy**: livello di accuratezza della coordinata altitudine in metri. *(Numero)*
+
+* **rubrica**: senso di marcia, specificata in gradi in senso orario rispetto al vero nord di conteggio. *(Numero)*
+
+* **velocità**: velocità attuale terra del dispositivo, specificato in metri al secondo. *(Numero)*
+
+### Amazon fuoco OS stranezze
+
+**altitudeAccuracy**: non supportato dai dispositivi Android, restituendo `null`.
+
+### Stranezze Android
+
+**altitudeAccuracy**: non supportato dai dispositivi Android, restituendo `null`.
+
+## PositionError
+
+L'oggetto `PositionError` viene passato alla funzione di callback `geolocationError` quando si verifica un errore con navigator.geolocation.
+
+### Proprietà
+
+* **codice**: uno dei codici di errore predefiniti elencati di seguito.
+
+* **messaggio**: messaggio di errore che descrive i dettagli dell'errore rilevato.
+
+### Costanti
+
+* `PositionError.PERMISSION_DENIED`
+ * Restituito quando gli utenti non consentono l'applicazione recuperare le informazioni di posizione. Questo è dipendente dalla piattaforma.
+* `PositionError.POSITION_UNAVAILABLE`
+ * Restituito quando il dispositivo è in grado di recuperare una posizione. In generale, questo significa che il dispositivo non è connesso a una rete o non può ottenere un fix satellitare.
+* `PositionError.TIMEOUT`
+ * Restituito quando il dispositivo è in grado di recuperare una posizione entro il tempo specificato dal `timeout` incluso `geolocationOptions` . Quando utilizzato con `navigator.geolocation.watchPosition` , questo errore potrebbe essere passato più volte per la `geolocationError` richiamata ogni `timeout` millisecondi.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/README.md
new file mode 100644
index 00000000..a519d2c2
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/README.md
@@ -0,0 +1,268 @@
+<!--
+# license: 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.
+-->
+
+# 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 および Bluetooth の MAC アドレス、および GSM/cdma 方式携帯 Id などのネットワーク信号から推定される場所にもあります。 API は、デバイスの実際の場所を返すことの保証はありません。
+
+この API は[W3C 地理位置情報 API 仕様](http://dev.w3.org/geo/api/spec-source.html)に基づいており、既に実装を提供しないデバイス上のみで実行します。
+
+**警告**: 地理位置情報データの収集と利用を重要なプライバシーの問題を発生させます。 アプリのプライバシー ポリシーは他の当事者とデータ (たとえば、粗い、罰金、郵便番号レベル、等) の精度のレベルでは共有されているかどうか、アプリが地理位置情報データを使用する方法を議論すべきです。 地理位置情報データと一般に見なされる敏感なユーザーの居場所を開示することができますので、彼らの旅行の歴史保存されている場合。 したがって、アプリのプライバシー ポリシーに加えて、強くする必要があります (デバイス オペレーティング システムしない場合そう既に)、アプリケーションに地理位置情報データをアクセスする前に - 時間のお知らせを提供します。 その通知は、上記の (例えば、 **[ok]**を**おかげで**選択肢を提示する) によってユーザーのアクセス許可を取得するだけでなく、同じ情報を提供する必要があります。 詳細については、プライバシーに関するガイドを参照してください。
+
+このプラグインは、グローバル `navigator.geolocation` オブジェクト (プラットフォーム行方不明ですそれ以外の場合) を定義します。
+
+オブジェクトは、グローバル スコープでですが、このプラグインによって提供される機能は、`deviceready` イベントの後まで使用できません。
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## インストール
+
+これはコルドバ 5.0 + (現在安定 1.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
+ * アンドロイド
+ * ブラックベリー 10
+ * Firefox の OS
+ * iOS
+ * Tizen
+ * Windows Phone 7 と 8
+ * Windows 8
+ * Windows
+
+## メソッド
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## オブジェクト (読み取り専用)
+
+ * Position
+ * PositionError
+ * Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+`Position` オブジェクトを `geolocationSuccess` コールバックにパラメーターとしてデバイスの現在位置を返します。 エラーがある場合 `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` コールバック パラメーターとして `位置` オブジェクトを実行します。 エラーがある場合、`geolocationError` コールバック パラメーターとして `PositionError` オブジェクトで実行します。
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### パラメーター
+
+ * **geolocationSuccess**: 現在の位置を渡されるコールバック。
+
+ * **geolocationError**: (省略可能) エラーが発生した場合に実行されるコールバック。
+
+ * **geolocationOptions**: (オプション) 地理位置情報のオプションです。
+
+### 返します
+
+ * **文字列**: 時計の位置の間隔を参照する時計 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 + '<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
+
+地理位置情報 `の位置` の検索をカスタマイズするための省略可能なパラメーター.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### オプション
+
+ * **enableHighAccuracy**: 最高の結果が、アプリケーションに必要があることのヒントを示します。 既定では、デバイスの取得を試みます、 `Position` ネットワーク ベースのメソッドを使用します。 このプロパティを設定する `true` 衛星測位などのより正確な方法を使用するためにフレームワークに指示します。 *(ブール値)*
+
+ * **タイムアウト**: への呼び出しから通過が許可される時間 (ミリ秒単位) の最大長 `navigator.geolocation.getCurrentPosition` または `geolocation.watchPosition` まで対応する、 `geolocationSuccess` コールバックを実行します。 場合は、 `geolocationSuccess` この時間内に、コールバックは呼び出されません、 `geolocationError` コールバックに渡される、 `PositionError.TIMEOUT` のエラー コード。 (と組み合わせて使用するときに注意してください `geolocation.watchPosition` の `geolocationError` 間隔でコールバックを呼び出すことができますすべて `timeout` ミリ秒 !)*(数)*
+
+ * **maximumAge**: 年齢があるミリ秒単位で指定した時間よりも大きくないキャッシュされた位置を受け入れます。*(数)*
+
+### Android の癖
+
+`enableHighAccuracy` オプションが `true` に設定しない限り、アンドロイド 2.x エミュレーター地理位置情報の結果を返さない.
+
+## navigator.geolocation.clearWatch
+
+`watchID` パラメーターによって参照される、デバイスの場所への変更を見て停止します。
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### パラメーター
+
+ * **watchID**: の id、 `watchPosition` をクリアする間隔。(文字列)
+
+### 例
+
+ // 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
+
+`Position` 座標と地理位置情報 API で作成されたタイムスタンプが含まれます。
+
+### プロパティ
+
+ * **coords**: 地理的座標のセット。*(座標)*
+
+ * **timestamp**: 作成のタイムスタンプを `coords` 。*(日)*
+
+## Coordinates
+
+`Coordinates` のオブジェクトは現在の位置のための要求でコールバック関数に使用する `Position` オブジェクトにアタッチされます。 位置の地理座標を記述するプロパティのセットが含まれています。
+
+### プロパティ
+
+ * **latitude**: 10 度緯度。*(数)*
+
+ * **longitude**: 10 進度の経度。*(数)*
+
+ * **altitude**: 楕円体上のメートルの位置の高さ。*(数)*
+
+ * **accuracy**: メートルの緯度と経度座標の精度レベル。*(数)*
+
+ * **altitudeAccuracy**: メートルの高度座標の精度レベル。*(数)*
+
+ * **headingし**: 進行方向、カウント、真北から時計回りの角度で指定します。*(数)*
+
+ * **speed**: 毎秒メートルで指定されたデバイスの現在の対地速度。*(数)*
+
+### アマゾン火 OS 癖
+
+**altitudeAccuracy**: `null` を返すことの Android デバイスでサポートされていません.
+
+### Android の癖
+
+**altitudeAccuracy**: `null` を返すことの Android デバイスでサポートされていません.
+
+## PositionError
+
+`PositionError` オブジェクト navigator.geolocation でエラーが発生したときに `geolocationError` コールバック関数に渡されます。
+
+### プロパティ
+
+ * **コード**: 次のいずれかの定義済みのエラー コード。
+
+ * **message**: 発生したエラーの詳細を説明するエラー メッセージ。
+
+### 定数
+
+ * `PositionError.PERMISSION_DENIED`
+ * ユーザーの位置情報を取得するアプリを許可しない場合に返されます。これはプラットフォームに依存します。
+ * `PositionError.POSITION_UNAVAILABLE`
+ * デバイスが、位置を取得することができます返されます。一般に、つまり、デバイスがネットワークに接続されていないまたは衛星の修正を得ることができません。
+ * `PositionError.TIMEOUT`
+ * デバイスがで指定された時間内の位置を取得することができるときに返される、 `timeout` に含まれている `geolocationOptions` 。 使用すると `navigator.geolocation.watchPosition` 、このエラーが繰り返しに渡すことが、 `geolocationError` コールバックごと `timeout` (ミリ秒単位)。 \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/index.md
new file mode 100644
index 00000000..3a8b73a5
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ja/index.md
@@ -0,0 +1,255 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+このプラグインは緯度や経度などのデバイスの場所に関する情報を提供します。 位置情報の共通のソースはグローバル ポジショニング システム (GPS) と IP アドレス、RFID、WiFi および Bluetooth の MAC アドレス、および GSM/cdma 方式携帯 Id などのネットワーク信号から推定される場所にもあります。 API は、デバイスの実際の場所を返すことの保証はありません。
+
+この API は[W3C 地理位置情報 API 仕様][1]に基づいており、既に実装を提供しないデバイス上のみで実行します。
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**警告**: 地理位置情報データの収集と利用を重要なプライバシーの問題を発生させます。 アプリのプライバシー ポリシーは他の当事者とデータ (たとえば、粗い、罰金、郵便番号レベル、等) の精度のレベルでは共有されているかどうか、アプリが地理位置情報データを使用する方法を議論すべきです。 地理位置情報データと一般に見なされる敏感なユーザーの居場所を開示することができますので、彼らの旅行の歴史保存されている場合。 したがって、アプリのプライバシー ポリシーに加えて、強くする必要があります (デバイス オペレーティング システムしない場合そう既に)、アプリケーションに地理位置情報データをアクセスする前に - 時間のお知らせを提供します。 その通知は、上記の (例えば、 **[ok]**を**おかげで**選択肢を提示する) によってユーザーのアクセス許可を取得するだけでなく、同じ情報を提供する必要があります。 詳細については、プライバシーに関するガイドを参照してください。
+
+このプラグインは、グローバル `navigator.geolocation` オブジェクト (プラットフォーム行方不明ですそれ以外の場合) を定義します。
+
+オブジェクトは、グローバル スコープでですが、このプラグインによって提供される機能は、`deviceready` イベントの後まで使用できません。
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## インストール
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## サポートされているプラットフォーム
+
+* アマゾン火 OS
+* アンドロイド
+* ブラックベリー 10
+* Firefox の OS
+* iOS
+* Tizen
+* Windows Phone 7 と 8
+* Windows 8
+
+## メソッド
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## オブジェクト (読み取り専用)
+
+* Position
+* PositionError
+* Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+`Position` オブジェクトを `geolocationSuccess` コールバックにパラメーターとしてデバイスの現在位置を返します。 エラーがある場合 `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` コールバック パラメーターとして `位置` オブジェクトを実行します。 エラーがある場合、`geolocationError` コールバック パラメーターとして `PositionError` オブジェクトで実行します。
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### パラメーター
+
+* **geolocationSuccess**: 現在の位置を渡されるコールバック。
+
+* **geolocationError**: (省略可能) エラーが発生した場合に実行されるコールバック。
+
+* **geolocationOptions**: (オプション) 地理位置情報のオプションです。
+
+### 返します
+
+* **文字列**: 時計の位置の間隔を参照する時計 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 + '<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
+
+地理位置情報 `の位置` の検索をカスタマイズするための省略可能なパラメーター.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### オプション
+
+* **enableHighAccuracy**: 最高の結果が、アプリケーションに必要があることのヒントを示します。 既定では、デバイスの取得を試みます、 `Position` ネットワーク ベースのメソッドを使用します。 このプロパティを設定する `true` 衛星測位などのより正確な方法を使用するためにフレームワークに指示します。 *(ブール値)*
+
+* **タイムアウト**: への呼び出しから通過が許可される時間 (ミリ秒単位) の最大長 `navigator.geolocation.getCurrentPosition` または `geolocation.watchPosition` まで対応する、 `geolocationSuccess` コールバックを実行します。 場合は、 `geolocationSuccess` この時間内に、コールバックは呼び出されません、 `geolocationError` コールバックに渡される、 `PositionError.TIMEOUT` のエラー コード。 (と組み合わせて使用するときに注意してください `geolocation.watchPosition` の `geolocationError` 間隔でコールバックを呼び出すことができますすべて `timeout` ミリ秒 !)*(数)*
+
+* **maximumAge**: 年齢があるミリ秒単位で指定した時間よりも大きくないキャッシュされた位置を受け入れます。*(数)*
+
+### Android の癖
+
+`enableHighAccuracy` オプションが `true` に設定しない限り、アンドロイド 2.x エミュレーター地理位置情報の結果を返さない.
+
+## navigator.geolocation.clearWatch
+
+`watchID` パラメーターによって参照される、デバイスの場所への変更を見て停止します。
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### パラメーター
+
+* **watchID**: の id、 `watchPosition` をクリアする間隔。(文字列)
+
+### 例
+
+ // 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
+
+`Position` 座標と地理位置情報 API で作成されたタイムスタンプが含まれます。
+
+### プロパティ
+
+* **coords**: 地理的座標のセット。*(座標)*
+
+* **timestamp**: 作成のタイムスタンプを `coords` 。*(日)*
+
+## Coordinates
+
+`Coordinates` のオブジェクトは現在の位置のための要求でコールバック関数に使用する `Position` オブジェクトにアタッチされます。 位置の地理座標を記述するプロパティのセットが含まれています。
+
+### プロパティ
+
+* **latitude**: 10 度緯度。*(数)*
+
+* **longitude**: 10 進度の経度。*(数)*
+
+* **altitude**: 楕円体上のメートルの位置の高さ。*(数)*
+
+* **accuracy**: メートルの緯度と経度座標の精度レベル。*(数)*
+
+* **altitudeAccuracy**: メートルの高度座標の精度レベル。*(数)*
+
+* **headingし**: 進行方向、カウント、真北から時計回りの角度で指定します。*(数)*
+
+* **speed**: 毎秒メートルで指定されたデバイスの現在の対地速度。*(数)*
+
+### アマゾン火 OS 癖
+
+**altitudeAccuracy**: `null` を返すことの Android デバイスでサポートされていません.
+
+### Android の癖
+
+**altitudeAccuracy**: `null` を返すことの Android デバイスでサポートされていません.
+
+## PositionError
+
+`PositionError` オブジェクト navigator.geolocation でエラーが発生したときに `geolocationError` コールバック関数に渡されます。
+
+### プロパティ
+
+* **code**: 次のいずれかの定義済みのエラー コード。
+
+* **message**: 発生したエラーの詳細を説明するエラー メッセージ。
+
+### 定数
+
+* `PositionError.PERMISSION_DENIED`
+ * ユーザーの位置情報を取得するアプリを許可しない場合に返されます。これはプラットフォームに依存します。
+* `PositionError.POSITION_UNAVAILABLE`
+ * デバイスが、位置を取得することができます返されます。一般に、つまり、デバイスがネットワークに接続されていないまたは衛星の修正を得ることができません。
+* `PositionError.TIMEOUT`
+ * デバイスがで指定された時間内の位置を取得することができるときに返される、 `timeout` に含まれている `geolocationOptions` 。 使用すると `navigator.geolocation.watchPosition` 、このエラーが繰り返しに渡すことが、 `geolocationError` コールバックごと `timeout` (ミリ秒単位)。
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/README.md
new file mode 100644
index 00000000..1c032293
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/README.md
@@ -0,0 +1,268 @@
+<!--
+# license: 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.
+-->
+
+# 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 Geolocation API 사양](http://dev.w3.org/geo/api/spec-source.html)에 기반 하 고 이미 구현을 제공 하지 않는 장치에만 실행 됩니다.
+
+**경고**: 중요 한 개인 정보 보호 문제를 제기 하는 위치 정보 데이터의 수집 및 사용 합니다. 응용 프로그램의 개인 정보 보호 정책 다른 당사자와의 데이터 (예를 들어, 굵고, 괜 찮 아 요, 우편 번호, 등)의 정밀도 수준을 공유 여부를 app 지리적 데이터를 사용 하는 방법 토론 해야 한다. 그것은 사용자의 행방을 밝힐 수 있기 때문에 및 저장, 그들의 여행 역사 지리적 위치 데이터는 일반적으로 민감한 간주. 따라서, 애플 리 케이 션의 개인 정보 보호 정책 뿐만 아니라 강력 하 게 좋습니다 (해당 되는 경우 장치 운영 체제 이렇게 이미 하지 않는) 응용 프로그램 위치 정보 데이터에 액세스 하기 전에 그냥--시간 통지. 그 통지는 (예를 들어, **확인** 및 **아니오**선택 제시) 하 여 사용자의 허가 취득 뿐만 아니라, 위에서 언급 된 동일한 정보를 제공 해야 합니다. 자세한 내용은 개인 정보 보호 가이드를 참조 하십시오.
+
+이 플러그인 (플랫폼은 그렇지 않으면 누락 된)에 대 한 전역 `navigator.geolocation` 개체를 정의 합니다.
+
+개체가 전역 범위에 있지만,이 플러그인에 의해 제공 되는 기능 하지 사용할 수 있습니다까지 `deviceready` 이벤트 후.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## 설치
+
+코르도바 5.0 + (현재 안정적인 1.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
+
+
+## 지원 되는 플랫폼
+
+ * 아마존 화재 운영 체제
+ * 안 드 로이드
+ * 블랙베리 10
+ * Firefox 운영 체제
+ * iOS
+ * Tizen
+ * Windows Phone 7과 8
+ * 윈도우 8
+ * 윈도우
+
+## 메서드
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## (읽기 전용) 개체
+
+ * Position
+ * PositionError
+ * Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+매개 변수 `Position` 개체와 `geolocationSuccess`를 디바이스의 현재 위치를 반환합니다. 오류가 있는 경우에, `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**: (선택 사항)는 지리적 위치 옵션.
+
+### 반환
+
+ * **문자열**: 시계 위치 간격을 참조 하는 시계 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 + '<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
+
+지리적 `Position` 검색을 사용자 지정 하는 선택적 매개 변수.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### 옵션
+
+ * **enableHighAccuracy**: 힌트는 응용 프로그램에 필요한 최상의 결과 제공 합니다. 기본적으로 장치를 검색 하려고 한 `Position` 네트워크 기반 방법을 사용 하 여. 이 속성을 설정 `true` 위성 위치 등 보다 정확한 방법을 사용 하 여 프레임 워크. *(부울)*
+
+ * **시간 제한**: 최대 시간의 길이 (밀리초) 호출에서 전달할 수 있는 `navigator.geolocation.getCurrentPosition` 또는 `geolocation.watchPosition` 해당까지 `geolocationSuccess` 콜백 실행. 경우는 `geolocationSuccess` 콜백이이 시간 내에서 호출 되지 않습니다는 `geolocationError` 콜백 전달 되는 `PositionError.TIMEOUT` 오류 코드. (함께 사용 하는 경우 `geolocation.watchPosition` , `geolocationError` 콜백 간격에서 호출 될 수 있는 모든 `timeout` 밀리초!) *(수)*
+
+ * **maximumAge**: 밀리초 단위로 지정 된 시간 보다 더 큰 되는 캐시 위치를 수락 합니다. *(수)*
+
+### 안 드 로이드 단점
+
+`EnableHighAccuracy` 옵션을 `true`로 설정 되어 있지 않으면 안 드 로이드 2.x 에뮬레이터 위치 결과 반환 하지 않는.
+
+## navigator.geolocation.clearWatch
+
+`watchID` 매개 변수에서 참조 하는 소자의 위치 변경에 대 한 보고 중지 합니다.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### 매개 변수
+
+ * **watchID**: id는 `watchPosition` 간격을 취소 합니다. (문자열)
+
+### 예를 들어
+
+ // 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
+
+`Position` 좌표 및 지리적 위치 API에 의해 생성 하는 타임 스탬프를 포함 합니다.
+
+### 속성
+
+ * **coords**: 지리적 좌표 집합. *(좌표)*
+
+ * **timestamp**: 생성 타임 스탬프에 대 한 `coords` . *(날짜)*
+
+## Coordinates
+
+`Coordinates` 개체를 현재 위치에 대 한 요청에 콜백 함수를 사용할 수 있는 `Position` 개체에 첨부 됩니다. 그것은 위치의 지리적 좌표를 설명 하는 속성 집합이 포함 되어 있습니다.
+
+### 속성
+
+ * **latitude**: 소수점도 위도. *(수)*
+
+ * **longitude**: 경도 10 진수 각도. *(수)*
+
+ * **altitude**: 높이의 타원 면 미터에 위치. *(수)*
+
+ * **정확도**: 정확도 레벨 미터에 위도 및 경도 좌표. *(수)*
+
+ * **altitudeAccuracy**: 미터에 고도 좌표의 정확도 수준. *(수)*
+
+ * **heading**: 여행, 진 북을 기준으로 시계 방향으로 세도에 지정 된 방향으로. *(수)*
+
+ * **speed**: 초당 미터에 지정 된 디바이스의 현재 땅 속도. *(수)*
+
+### 아마존 화재 OS 단점
+
+**altitudeAccuracy**: `null` 반환 안 드 로이드 장치에 의해 지원 되지 않습니다.
+
+### 안 드 로이드 단점
+
+**altitudeAccuracy**: `null` 반환 안 드 로이드 장치에 의해 지원 되지 않습니다.
+
+## PositionError
+
+`PositionError` 개체는 navigator.geolocation와 함께 오류가 발생 하면 `geolocationError` 콜백 함수에 전달 됩니다.
+
+### 속성
+
+ * **코드**: 미리 정의 된 오류 코드 중 하나가 아래에 나열 된.
+
+ * **message**: 발생 한 오류 세부 정보를 설명 하는 오류 메시지.
+
+### 상수
+
+ * `PositionError.PERMISSION_DENIED`
+ * 사용자가 위치 정보를 검색 애플 리 케이 션을 허용 하지 않는 경우 반환 됩니다. 이 플랫폼에 따라 달라 집니다.
+ * `PositionError.POSITION_UNAVAILABLE`
+ * 장치 위치를 검색할 수 없을 때 반환 합니다. 일반적으로,이 장치는 네트워크에 연결 되어 있지 않은 또는 위성 수정 프로그램을 얻을 수 없습니다 의미 합니다.
+ * `PositionError.TIMEOUT`
+ * 장치에 지정 된 시간 내에서 위치를 검색할 수 없는 경우 반환 되는 `timeout` 에 포함 된 `geolocationOptions` . 함께 사용 될 때 `navigator.geolocation.watchPosition` ,이 오류를 반복적으로 전달 될 수는 `geolocationError` 콜백 매 `timeout` 밀리초. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/index.md
new file mode 100644
index 00000000..2a3e7349
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ko/index.md
@@ -0,0 +1,255 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+이 플러그인 위도 및 경도 등의 소자의 위치에 대 한 정보를 제공합니다. 일반적인 위치 정보 등 글로벌 포지셔닝 시스템 (GPS) 및 위치와 같은 IP 주소, RFID, WiFi 및 블루투스 MAC 주소 및 GSM/CDMA 셀 Id 네트워크 신호에서 유추 합니다. 보장은 없다는 API 소자의 실제 위치를 반환 합니다.
+
+이 API [W3C Geolocation API 사양][1]에 기반 하 고 이미 구현을 제공 하지 않는 장치에만 실행 됩니다.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**경고**: 중요 한 개인 정보 보호 문제를 제기 하는 위치 정보 데이터의 수집 및 사용 합니다. 응용 프로그램의 개인 정보 보호 정책 다른 당사자와의 데이터 (예를 들어, 굵고, 괜 찮 아 요, 우편 번호, 등)의 정밀도 수준을 공유 여부를 app 지리적 데이터를 사용 하는 방법 토론 해야 한다. 그것은 사용자의 행방을 밝힐 수 있기 때문에 및 저장, 그들의 여행 역사 지리적 위치 데이터는 일반적으로 민감한 간주. 따라서, 애플 리 케이 션의 개인 정보 보호 정책 뿐만 아니라 강력 하 게 좋습니다 (해당 되는 경우 장치 운영 체제 이렇게 이미 하지 않는) 응용 프로그램 위치 정보 데이터에 액세스 하기 전에 그냥--시간 통지. 그 통지는 (예를 들어, **확인** 및 **아니오**선택 제시) 하 여 사용자의 허가 취득 뿐만 아니라, 위에서 언급 된 동일한 정보를 제공 해야 합니다. 자세한 내용은 개인 정보 보호 가이드를 참조 하십시오.
+
+이 플러그인 (플랫폼은 그렇지 않으면 누락 된)에 대 한 전역 `navigator.geolocation` 개체를 정의 합니다.
+
+개체가 전역 범위에 있지만,이 플러그인에 의해 제공 되는 기능 하지 사용할 수 있습니다까지 `deviceready` 이벤트 후.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## 설치
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## 지원 되는 플랫폼
+
+* 아마존 화재 운영 체제
+* 안 드 로이드
+* 블랙베리 10
+* Firefox 운영 체제
+* iOS
+* Tizen
+* Windows Phone 7과 8
+* 윈도우 8
+
+## 메서드
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## (읽기 전용) 개체
+
+* Position
+* PositionError
+* Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+매개 변수 `Position` 개체와 `geolocationSuccess`를 디바이스의 현재 위치를 반환합니다. 오류가 있는 경우에, `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**: (선택 사항)는 지리적 위치 옵션.
+
+### 반환
+
+* **문자열**: 시계 위치 간격을 참조 하는 시계 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 + '<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
+
+지리적 `Position` 검색을 사용자 지정 하는 선택적 매개 변수.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### 옵션
+
+* **enableHighAccuracy**: 힌트는 응용 프로그램에 필요한 최상의 결과 제공 합니다. 기본적으로 장치를 검색 하려고 한 `Position` 네트워크 기반 방법을 사용 하 여. 이 속성을 설정 `true` 위성 위치 등 보다 정확한 방법을 사용 하 여 프레임 워크. *(부울)*
+
+* **시간 제한**: 최대 시간의 길이 (밀리초) 호출에서 전달할 수 있는 `navigator.geolocation.getCurrentPosition` 또는 `geolocation.watchPosition` 해당까지 `geolocationSuccess` 콜백 실행. 경우는 `geolocationSuccess` 콜백이이 시간 내에서 호출 되지 않습니다는 `geolocationError` 콜백 전달 되는 `PositionError.TIMEOUT` 오류 코드. (함께 사용 하는 경우 `geolocation.watchPosition` , `geolocationError` 콜백 간격에서 호출 될 수 있는 모든 `timeout` 밀리초!) *(수)*
+
+* **maximumAge**: 밀리초 단위로 지정 된 시간 보다 더 큰 되는 캐시 위치를 수락 합니다. *(수)*
+
+### 안 드 로이드 단점
+
+`EnableHighAccuracy` 옵션을 `true`로 설정 되어 있지 않으면 안 드 로이드 2.x 에뮬레이터 위치 결과 반환 하지 않는.
+
+## navigator.geolocation.clearWatch
+
+`watchID` 매개 변수에서 참조 하는 소자의 위치 변경에 대 한 보고 중지 합니다.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### 매개 변수
+
+* **watchID**: id는 `watchPosition` 간격을 취소 합니다. (문자열)
+
+### 예를 들어
+
+ // 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
+
+`Position` 좌표 및 지리적 위치 API에 의해 생성 하는 타임 스탬프를 포함 합니다.
+
+### 속성
+
+* **coords**: 지리적 좌표 집합. *(좌표)*
+
+* **timestamp**: 생성 타임 스탬프에 대 한 `coords` . *(날짜)*
+
+## Coordinates
+
+`Coordinates` 개체를 현재 위치에 대 한 요청에 콜백 함수를 사용할 수 있는 `Position` 개체에 첨부 됩니다. 그것은 위치의 지리적 좌표를 설명 하는 속성 집합이 포함 되어 있습니다.
+
+### 속성
+
+* **latitude**: 소수점도 위도. *(수)*
+
+* **longitude**: 경도 10 진수 각도. *(수)*
+
+* **altitude**: 높이의 타원 면 미터에 위치. *(수)*
+
+* **정확도**: 정확도 레벨 미터에 위도 및 경도 좌표. *(수)*
+
+* **altitudeAccuracy**: 미터에 고도 좌표의 정확도 수준. *(수)*
+
+* **heading**: 여행, 진 북을 기준으로 시계 방향으로 세도에 지정 된 방향으로. *(수)*
+
+* **speed**: 초당 미터에 지정 된 디바이스의 현재 땅 속도. *(수)*
+
+### 아마존 화재 OS 단점
+
+**altitudeAccuracy**: `null` 반환 안 드 로이드 장치에 의해 지원 되지 않습니다.
+
+### 안 드 로이드 단점
+
+**altitudeAccuracy**: `null` 반환 안 드 로이드 장치에 의해 지원 되지 않습니다.
+
+## PositionError
+
+`PositionError` 개체는 navigator.geolocation와 함께 오류가 발생 하면 `geolocationError` 콜백 함수에 전달 됩니다.
+
+### 속성
+
+* **code**: 미리 정의 된 오류 코드 중 하나가 아래에 나열 된.
+
+* **message**: 발생 한 오류 세부 정보를 설명 하는 오류 메시지.
+
+### 상수
+
+* `PositionError.PERMISSION_DENIED`
+ * 사용자가 위치 정보를 검색 애플 리 케이 션을 허용 하지 않는 경우 반환 됩니다. 이 플랫폼에 따라 달라 집니다.
+* `PositionError.POSITION_UNAVAILABLE`
+ * 장치 위치를 검색할 수 없을 때 반환 합니다. 일반적으로,이 장치는 네트워크에 연결 되어 있지 않은 또는 위성 수정 프로그램을 얻을 수 없습니다 의미 합니다.
+* `PositionError.TIMEOUT`
+ * 장치에 지정 된 시간 내에서 위치를 검색할 수 없는 경우 반환 되는 `timeout` 에 포함 된 `geolocationOptions` . 함께 사용 될 때 `navigator.geolocation.watchPosition` ,이 오류를 반복적으로 전달 될 수는 `geolocationError` 콜백 매 `timeout` 밀리초.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/README.md
new file mode 100644
index 00000000..8d6717fd
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/README.md
@@ -0,0 +1,268 @@
+<!--
+# license: 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.
+-->
+
+# cordova-plugin-geolocation
+
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-geolocation.svg)](https://travis-ci.org/apache/cordova-plugin-geolocation)
+
+Ten plugin zawiera informacje o lokalizacji urządzenia, takie jak szerokość i długość geograficzną. Najczęstsze źródła informacji o lokalizacji obejmują Global Positioning System (GPS) i lokalizacji wywnioskować z sieci sygnały, takie jak adres IP, RFID, WiFi i Bluetooth MAC adresy, a komórki GSM/CDMA identyfikatorów. Nie ma żadnej gwarancji, że API zwraca rzeczywistej lokalizacji urządzenia.
+
+Ten interfejs API jest oparty na [Specyfikacji W3C Geolocation API](http://dev.w3.org/geo/api/spec-source.html)i tylko wykonuje na urządzeniach, które już nie zapewniają implementacja.
+
+**Ostrzeżenie**: zbierania i wykorzystywania danych geolokacyjnych podnosi kwestie prywatności ważne. Polityka prywatności danej aplikacji należy omówić, jak aplikacja używa danych, czy jest on dzielony z innych stron i poziom dokładności danych (na przykład, gruba, porządku, kod pocztowy poziom, itp.). Danych geolokacyjnych ogólnie uznaje wrażliwych, bo to może ujawnić pobytu użytkownika i, jeśli przechowywane, historii ich podróży. W związku z tym oprócz aplikacji prywatności, zdecydowanie warto powiadomienia just-in-time, zanim aplikacja uzyskuje dostęp do danych (jeśli urządzenie system operacyjny nie robi już). Że ogłoszenie powinno zawierać te same informacje, o których wspomniano powyżej, jak również uzyskanie uprawnienia użytkownika (np. poprzez przedstawianie wyborów **OK** i **Nie dzięki**). Aby uzyskać więcej informacji zobacz przewodnik prywatności.
+
+Ten plugin definiuje obiekt globalny `navigator.geolocation` (dla platformy gdzie to inaczej brak).
+
+Mimo, że obiekt jest w globalnym zasięgu, funkcji oferowanych przez ten plugin nie są dostępne dopiero po turnieju `deviceready`.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Instalacja
+
+Wymaga to cordova 5.0 + (bieżącej stabilnej 1.0.0)
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+Starsze wersje cordova nadal można zainstalować za pomocą niezalecany identyfikator (starych 0.3.12)
+
+ cordova plugin add org.apache.cordova.geolocation
+
+
+Jest również możliwość instalacji za pośrednictwem repo url bezpośrednio (niestabilny)
+
+ cordova plugin add https://github.com/apache/cordova-plugin-geolocation.git
+
+
+## Obsługiwane platformy
+
+ * Amazon Fire OS
+ * Android
+ * BlackBerry 10
+ * Firefox OS
+ * iOS
+ * Tizen
+ * Windows Phone 7 i 8
+ * Windows 8
+ * Windows
+
+## Metody
+
+ * navigator.geolocation.getCurrentPosition
+ * navigator.geolocation.watchPosition
+ * navigator.geolocation.clearWatch
+
+## Obiekty (tylko do odczytu)
+
+ * Position
+ * PositionError
+ * Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Zwraca bieżącą pozycję urządzenia do `geolocationSuccess` wywołanie zwrotne z `Position` obiektu jako parametr. Jeśli występuje błąd, wywołania zwrotnego `geolocationError` jest przekazywany obiekt `PositionError`.
+
+ navigator.geolocation.getCurrentPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametry
+
+ * **geolocationSuccess**: wywołania zwrotnego, który jest przekazywany aktualnej pozycji.
+
+ * **geolocationError**: *(opcjonalne)* wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu.
+
+ * **geolocationOptions**: *(opcjonalne)* opcji geolokalizacji.
+
+### Przykład
+
+ // 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
+
+Zwraca bieżącą pozycję urządzenia po wykryciu zmiany pozycji. Gdy urządzenie pobiera nową lokalizację, wywołania zwrotnego `geolocationSuccess` wykonuje się z `Position` obiektu jako parametr. Jeśli występuje błąd, wywołania zwrotnego `geolocationError` wykonuje się z obiektem `PositionError` jako parametr.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametry
+
+ * **geolocationSuccess**: wywołania zwrotnego, który jest przekazywany aktualnej pozycji.
+
+ * **geolocationError**: (opcjonalne) wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu.
+
+ * **geolocationOptions**: (opcjonalne) geolocation opcje.
+
+### Zwraca
+
+ * **Napis**: zwraca identyfikator zegarek, który odwołuje się oglądać pozycji interwał. Identyfikator zegarek powinny być używane z `navigator.geolocation.clearWatch` Aby przestać oglądać do zmiany pozycji.
+
+### Przykład
+
+ // 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
+
+Parametry opcjonalne dostosować pobierania geolocation `Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Opcje
+
+ * **enableHighAccuracy**: stanowi wskazówkę, że aplikacja musi możliwie najlepszych rezultatów. Domyślnie, urządzenie próbuje pobrać `Position` przy użyciu metody oparte na sieci. Ustawienie tej właściwości na `true` mówi ramach dokładniejszych metod, takich jak pozycjonowanie satelitarne. *(Wartość logiczna)*
+
+ * **Limit czasu**: maksymalna długość czas (w milisekundach), który może przekazać wywołanie `navigator.geolocation.getCurrentPosition` lub `geolocation.watchPosition` do odpowiednich `geolocationSuccess` wykonuje wywołanie zwrotne. Jeśli `geolocationSuccess` wywołania zwrotnego nie jest wywoływany w tej chwili, `geolocationError` wywołania zwrotnego jest przekazywany `PositionError.TIMEOUT` kod błędu. (Należy zauważyć, że w połączeniu z `geolocation.watchPosition` , `geolocationError` wywołania zwrotnego można nazwać w odstępie co `timeout` milisekund!) *(Liczba)*
+
+ * **maximumAge**: przyjąć buforowane pozycji, w których wiek jest nie większa niż określony czas w milisekundach. *(Liczba)*
+
+### Dziwactwa Androida
+
+Emulatory Androida 2.x nie zwracają wynik geolocation, chyba że opcja `enableHighAccuracy` jest ustawiona na `wartość true`.
+
+## navigator.geolocation.clearWatch
+
+Przestać oglądać zmiany położenia urządzenia określany przez parametr `watchID`.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parametry
+
+ * **watchID**: identyfikator `watchPosition` Interwał jasne. (String)
+
+### Przykład
+
+ // 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
+
+Zawiera współrzędne `Position` i sygnatury czasowej, stworzony przez geolocation API.
+
+### Właściwości
+
+ * **coords**: zestaw współrzędnych geograficznych. *(Współrzędne)*
+
+ * **timestamp**: Sygnatura czasowa utworzenia dla `coords` . *(Data)*
+
+## Coordinates
+
+`Coordinates` obiektu jest dołączone do `Position` obiektu, który jest dostępny dla funkcji wywołania zwrotnego w prośby o aktualnej pozycji. Zawiera zestaw właściwości, które opisują geograficzne współrzędne pozycji.
+
+### Właściwości
+
+ * **szerokość geograficzna**: Latitude w stopniach dziesiętnych. *(Liczba)*
+
+ * **długość geograficzna**: długość geograficzna w stopniach dziesiętnych. *(Liczba)*
+
+ * **wysokość**: wysokość pozycji metrów nad elipsoidalny. *(Liczba)*
+
+ * **dokładność**: poziom dokładności współrzędnych szerokości i długości geograficznej w metrach. *(Liczba)*
+
+ * **altitudeAccuracy**: poziom dokładności Współrzędna wysokość w metrach. *(Liczba)*
+
+ * **pozycja**: kierunek podróży, określonego w stopni licząc ruchu wskazówek zegara względem północy rzeczywistej. *(Liczba)*
+
+ * **prędkość**: Aktualna prędkość ziemi urządzenia, określone w metrach na sekundę. *(Liczba)*
+
+### Amazon ogień OS dziwactwa
+
+**altitudeAccuracy**: nie obsługiwane przez Android urządzeń, zwracanie `wartości null`.
+
+### Dziwactwa Androida
+
+**altitudeAccuracy**: nie obsługiwane przez Android urządzeń, zwracanie `wartości null`.
+
+## PositionError
+
+`PositionError` obiekt jest przekazywany do funkcji wywołania zwrotnego `geolocationError`, gdy wystąpi błąd z navigator.geolocation.
+
+### Właściwości
+
+ * **Kod**: jeden z kodów błędów wstępnie zdefiniowanych poniżej.
+
+ * **wiadomość**: komunikat o błędzie, opisując szczegóły wystąpił błąd.
+
+### Stałe
+
+ * `PositionError.PERMISSION_DENIED`
+ * Zwracane, gdy użytkownicy nie zezwalają aplikacji do pobierania informacji o pozycji. Jest to zależne od platformy.
+ * `PositionError.POSITION_UNAVAILABLE`
+ * Zwracane, gdy urządzenie jest w stanie pobrać pozycji. Ogólnie rzecz biorąc oznacza to urządzenie nie jest podłączone do sieci lub nie może uzyskać satelita utrwalić.
+ * `PositionError.TIMEOUT`
+ * Zwracane, gdy urządzenie jest w stanie pobrać pozycji w czasie określonym przez `timeout` w `geolocationOptions` . Gdy używana z `navigator.geolocation.watchPosition` , ten błąd może być wielokrotnie przekazywane do `geolocationError` zwrotne co `timeout` milisekund. \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/index.md
new file mode 100644
index 00000000..6d08320e
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/pl/index.md
@@ -0,0 +1,255 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+Ten plugin zawiera informacje o lokalizacji urządzenia, takie jak szerokość i długość geograficzną. Najczęstsze źródła informacji o lokalizacji obejmują Global Positioning System (GPS) i lokalizacji wywnioskować z sieci sygnały, takie jak adres IP, RFID, WiFi i Bluetooth MAC adresy, a komórki GSM/CDMA identyfikatorów. Nie ma żadnej gwarancji, że API zwraca rzeczywistej lokalizacji urządzenia.
+
+Ten interfejs API jest oparty na [Specyfikacji W3C Geolocation API][1]i tylko wykonuje na urządzeniach, które już nie zapewniają implementacja.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**Ostrzeżenie**: zbierania i wykorzystywania danych geolokacyjnych podnosi kwestie prywatności ważne. Polityka prywatności danej aplikacji należy omówić, jak aplikacja używa danych, czy jest on dzielony z innych stron i poziom dokładności danych (na przykład, gruba, porządku, kod pocztowy poziom, itp.). Danych geolokacyjnych ogólnie uznaje wrażliwych, bo to może ujawnić pobytu użytkownika i, jeśli przechowywane, historii ich podróży. W związku z tym oprócz aplikacji prywatności, zdecydowanie warto powiadomienia just-in-time, zanim aplikacja uzyskuje dostęp do danych (jeśli urządzenie system operacyjny nie robi już). Że ogłoszenie powinno zawierać te same informacje, o których wspomniano powyżej, jak również uzyskanie uprawnienia użytkownika (np. poprzez przedstawianie wyborów **OK** i **Nie dzięki**). Aby uzyskać więcej informacji zobacz przewodnik prywatności.
+
+Ten plugin definiuje obiekt globalny `navigator.geolocation` (dla platformy gdzie to inaczej brak).
+
+Mimo, że obiekt jest w globalnym zasięgu, funkcji oferowanych przez ten plugin nie są dostępne dopiero po turnieju `deviceready`.
+
+ document.addEventListener("deviceready", onDeviceReady, false);
+ function onDeviceReady() {
+ console.log("navigator.geolocation works well");
+ }
+
+
+## Instalacja
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## Obsługiwane platformy
+
+* Amazon Fire OS
+* Android
+* BlackBerry 10
+* Firefox OS
+* iOS
+* Tizen
+* Windows Phone 7 i 8
+* Windows 8
+
+## Metody
+
+* navigator.geolocation.getCurrentPosition
+* navigator.geolocation.watchPosition
+* navigator.geolocation.clearWatch
+
+## Obiekty (tylko do odczytu)
+
+* Stanowisko
+* PositionError
+* Coordinates
+
+## navigator.geolocation.getCurrentPosition
+
+Zwraca bieżącą pozycję urządzenia do `geolocationSuccess` wywołanie zwrotne z `Position` obiektu jako parametr. Jeśli występuje błąd, wywołania zwrotnego `geolocationError` jest przekazywany obiekt `PositionError`.
+
+ navigator.geolocation.getCurrentPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametry
+
+* **geolocationSuccess**: wywołania zwrotnego, który jest przekazywany aktualnej pozycji.
+
+* **geolocationError**: *(opcjonalne)* wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu.
+
+* **geolocationOptions**: *(opcjonalne)* opcji geolokalizacji.
+
+### Przykład
+
+ // 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
+
+Zwraca bieżącą pozycję urządzenia po wykryciu zmiany pozycji. Gdy urządzenie pobiera nową lokalizację, wywołania zwrotnego `geolocationSuccess` wykonuje się z `Position` obiektu jako parametr. Jeśli występuje błąd, wywołania zwrotnego `geolocationError` wykonuje się z obiektem `PositionError` jako parametr.
+
+ var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
+ [geolocationError],
+ [geolocationOptions]);
+
+
+### Parametry
+
+* **geolocationSuccess**: wywołania zwrotnego, który jest przekazywany aktualnej pozycji.
+
+* **geolocationError**: (opcjonalne) wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu.
+
+* **geolocationOptions**: (opcjonalne) geolocation opcje.
+
+### Zwraca
+
+* **Napis**: zwraca identyfikator zegarek, który odwołuje się oglądać pozycji interwał. Identyfikator zegarek powinny być używane z `navigator.geolocation.clearWatch` Aby przestać oglądać do zmiany pozycji.
+
+### Przykład
+
+ // 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
+
+Parametry opcjonalne dostosować pobierania geolocation `Position`.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### Opcje
+
+* **enableHighAccuracy**: stanowi wskazówkę, że aplikacja musi możliwie najlepszych rezultatów. Domyślnie, urządzenie próbuje pobrać `Position` przy użyciu metody oparte na sieci. Ustawienie tej właściwości na `true` mówi ramach dokładniejszych metod, takich jak pozycjonowanie satelitarne. *(Wartość logiczna)*
+
+* **Limit czasu**: maksymalna długość czas (w milisekundach), który może przekazać wywołanie `navigator.geolocation.getCurrentPosition` lub `geolocation.watchPosition` do odpowiednich `geolocationSuccess` wykonuje wywołanie zwrotne. Jeśli `geolocationSuccess` wywołania zwrotnego nie jest wywoływany w tej chwili, `geolocationError` wywołania zwrotnego jest przekazywany `PositionError.TIMEOUT` kod błędu. (Należy zauważyć, że w połączeniu z `geolocation.watchPosition` , `geolocationError` wywołania zwrotnego można nazwać w odstępie co `timeout` milisekund!) *(Liczba)*
+
+* **maximumAge**: przyjąć buforowane pozycji, w których wiek jest nie większa niż określony czas w milisekundach. *(Liczba)*
+
+### Dziwactwa Androida
+
+Emulatory Androida 2.x nie zwracają wynik geolocation, chyba że opcja `enableHighAccuracy` jest ustawiona na `wartość true`.
+
+## navigator.geolocation.clearWatch
+
+Przestać oglądać zmiany położenia urządzenia określany przez parametr `watchID`.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Parametry
+
+* **watchID**: identyfikator `watchPosition` Interwał jasne. (String)
+
+### Przykład
+
+ // 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);
+
+
+## Stanowisko
+
+Zawiera współrzędne `Position` i sygnatury czasowej, stworzony przez geolocation API.
+
+### Właściwości
+
+* **coords**: zestaw współrzędnych geograficznych. *(Współrzędne)*
+
+* **sygnatura czasowa**: Sygnatura czasowa utworzenia dla `coords` . *(Data)*
+
+## Coordinates
+
+`Coordinates` obiektu jest dołączone do `Position` obiektu, który jest dostępny dla funkcji wywołania zwrotnego w prośby o aktualnej pozycji. Zawiera zestaw właściwości, które opisują geograficzne współrzędne pozycji.
+
+### Właściwości
+
+* **szerokość geograficzna**: Latitude w stopniach dziesiętnych. *(Liczba)*
+
+* **długość geograficzna**: długość geograficzna w stopniach dziesiętnych. *(Liczba)*
+
+* **wysokość**: wysokość pozycji metrów nad elipsoidalny. *(Liczba)*
+
+* **dokładność**: poziom dokładności współrzędnych szerokości i długości geograficznej w metrach. *(Liczba)*
+
+* **altitudeAccuracy**: poziom dokładności Współrzędna wysokość w metrach. *(Liczba)*
+
+* **pozycja**: kierunek podróży, określonego w stopni licząc ruchu wskazówek zegara względem północy rzeczywistej. *(Liczba)*
+
+* **prędkość**: Aktualna prędkość ziemi urządzenia, określone w metrach na sekundę. *(Liczba)*
+
+### Amazon ogień OS dziwactwa
+
+**altitudeAccuracy**: nie obsługiwane przez Android urządzeń, zwracanie `wartości null`.
+
+### Dziwactwa Androida
+
+**altitudeAccuracy**: nie obsługiwane przez Android urządzeń, zwracanie `wartości null`.
+
+## PositionError
+
+`PositionError` obiekt jest przekazywany do funkcji wywołania zwrotnego `geolocationError`, gdy wystąpi błąd z navigator.geolocation.
+
+### Właściwości
+
+* **Kod**: jeden z kodów błędów wstępnie zdefiniowanych poniżej.
+
+* **wiadomość**: komunikat o błędzie, opisując szczegóły wystąpił błąd.
+
+### Stałe
+
+* `PositionError.PERMISSION_DENIED`
+ * Zwracane, gdy użytkownicy nie zezwalają aplikacji do pobierania informacji o pozycji. Jest to zależne od platformy.
+* `PositionError.POSITION_UNAVAILABLE`
+ * Zwracane, gdy urządzenie jest w stanie pobrać pozycji. Ogólnie rzecz biorąc oznacza to urządzenie nie jest podłączone do sieci lub nie może uzyskać satelita utrwalić.
+* `PositionError.TIMEOUT`
+ * Zwracane, gdy urządzenie jest w stanie pobrać pozycji w czasie określonym przez `timeout` w `geolocationOptions` . Gdy używana z `navigator.geolocation.watchPosition` , ten błąd może być wielokrotnie przekazywane do `geolocationError` zwrotne co `timeout` milisekund.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/ru/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ru/index.md
new file mode 100644
index 00000000..3d9c766e
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/ru/index.md
@@ -0,0 +1,206 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+Этот плагин предоставляет информацию о местоположении устройства, например, Широта и Долгота. Общие источники информации о местонахождении включают глобальной системы позиционирования (GPS) и местоположение, выведено из сети сигналов, таких как IP-адрес, RFID, WiFi и Bluetooth MAC-адреса и идентификаторы базовых станций сотовой GSM/CDMA. Нет никакой гарантии, что API возвращает фактическое местоположение устройства.
+
+Этот API основан на [Спецификации W3C Geolocation API][1]и выполняется только на устройствах, которые уже не обеспечивают реализацию.
+
+ [1]: http://dev.w3.org/geo/api/spec-source.html
+
+**Предупреждение**: сбор и использование данных геопозиционирования поднимает вопросы важные конфиденциальности. Политика конфиденциальности вашего приложения должна обсудить, как приложение использует данные геопозиционирования, ли она совместно с другими сторонами и уровень точности данных (например, грубый, тонкий, почтовый индекс уровня, т.д.). Геолокации, как правило, считается конфиденциальной, потому, что она может выявить местонахождение пользователя и, если сохранены, история их путешествия. Таким образом помимо политики конфиденциальности приложения, следует решительно рассмотреть уведомления just-in-time, прежде чем приложение обращается к геолокации (если операционной системы устройства не так уже). Это уведомление должно обеспечивать ту же информацию, отметили выше, а также получения разрешения пользователя (например, путем представления выбора **OK** и **Нет, спасибо**). Для получения дополнительной информации пожалуйста, смотрите в руководстве конфиденциальности.
+
+## Установка
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## Поддерживаемые платформы
+
+* Amazon Fire OS
+* Android
+* BlackBerry 10
+* Firefox OS
+* iOS
+* Tizen
+* Windows Phone 7 и 8
+* Windows 8
+
+## Методы
+
+* 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 обратного вызова / / этот метод принимает позицию объекта, который содержит / / текущие GPS координаты / / var onSuccess = function(position) {alert (' Широта: ' + position.coords.latitude + «\n» + ' Долгота: ' + position.coords.longitude + «\n» + ' Высота: ' + position.coords.altitude + «\n» + ' точность: ' + position.coords.accuracy + «\n» + ' высоте точность: ' + position.coords.altitudeAccuracy + «\n» + ' заголовок: ' + position.coords.heading + «\n» + ' скорость: ' + position.coords.speed + «\n» + ' штампа времени: ' + position.timestamp + «\n»);};
+
+ onError обратного вызова получает объект PositionError / / функция onError(error) {alert (' код: ' + error.code + «\n» + ' сообщение: ' + 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**: параметры (необязательно) географического расположения.
+
+### Возвращает
+
+* **Строка**: Возвращает идентификатор часы, ссылается на позицию интервала часы. Идентификатор часы должны использоваться с `navigator.geolocation.clearWatch` прекратить слежение за изменением в положении.
+
+### Пример
+
+ onSuccess обратного вызова / / этот метод принимает «Position» объект, который содержит / / текущие GPS координаты / / функция onSuccess(position) {var элемент = document.getElementById('geolocation');
+ element.innerHTML = ' Широта: ' + position.coords.latitude + ' < br / >' + ' Долгота: ' + position.coords.longitude + ' < br / >' + ' < hr / >' + element.innerHTML;
+ } / / onError обратного вызова получает объект PositionError / / функция onError(error) {alert (' код: ' + error.code + «\n» + ' сообщение: ' + error.message + «\n»);}
+
+ Опции: Бросьте сообщение об ошибке, если обновление не получено каждые 30 секунд.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, {тайм-аут: 30000});
+
+
+## geolocationOptions
+
+Необязательные параметры для настройки поиска географического расположения`Position`.
+
+ {maximumAge: 3000, тайм-аут: 5000, enableHighAccuracy: true};
+
+
+### Параметры
+
+* **enableHighAccuracy**: предоставляет подсказку, что приложению требуются наилучшие результаты. По умолчанию устройство пытается получить `Position` с использованием методов на основе сети. Установка этого свойства значение `true` указывает среде использовать более точные методы, например спутникового позиционирования. *(Логическое значение)*
+
+* **время ожидания**: максимальная длина времени (в миллисекундах), которое может пройти от вызова `navigator.geolocation.getCurrentPosition` или `geolocation.watchPosition` до соответствующих `geolocationSuccess` выполняет обратный вызов. Если `geolocationSuccess` обратного вызова не вызывается в течение этого времени, `geolocationError` обратного вызова передается `PositionError.TIMEOUT` код ошибки. (Обратите внимание, что при использовании в сочетании с `geolocation.watchPosition` , `geolocationError` обратный вызов может быть вызван на интервале каждые `timeout` миллисекунд!) *(Число)*
+
+* **maximumAge**: принять кэшированное положение, возраст которых не превышает указанного времени в миллисекундах. *(Число)*
+
+### Особенности Android
+
+Эмуляторы Android 2.x не возвращать результат географического расположения, если `enableHighAccuracy` параметр имеет значение`true`.
+
+## navigator.geolocation.clearWatch
+
+Остановить просмотр для изменения местоположения устройства ссылается `watchID` параметр.
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### Параметры
+
+* **watchID**: идентификатор `watchPosition` интервал, чтобы очистить. (Строка)
+
+### Пример
+
+ Опции: наблюдать за изменениями в положении и использовать наиболее / / точная позиция приобретение доступным методом.
+ var watchID = navigator.geolocation.watchPosition (onSuccess, onError, {enableHighAccuracy: true});
+
+ .. .later на...
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+## Position
+
+Содержит `Position` координат и отметок времени, созданная API геопозиционирования.
+
+### Параметры
+
+* **CoOrds**: набор географических координат. *(Координаты)*
+
+* **штамп времени**: штамп времени создания для `coords` . *(Дата)*
+
+## Coordinates
+
+A `Coordinates` объект присоединен к `Position` объект, который доступен для обратного вызова функций в запросы для текущей позиции. Он содержит набор свойств, которые описывают географические координаты позиции.
+
+### Параметры
+
+* **Широта**: Широта в десятичных градусах. *(Число)*
+
+* **Долгота**: Долгота в десятичных градусах. *(Число)*
+
+* **Высота**: высота позиции в метрах над эллипсоидом. *(Число)*
+
+* **точность**: уровень точности координат широты и долготы в метрах. *(Число)*
+
+* **altitudeAccuracy**: уровень точности координат высоты в метрах. *(Число)*
+
+* **заголовок**: направление движения, указанный в градусах, считая по часовой стрелке относительно истинного севера. *(Число)*
+
+* **скорость**: Текущая скорость земли устройства, указанного в метрах в секунду. *(Число)*
+
+### Особенности Amazon Fire OS
+
+**altitudeAccuracy**: не поддерживается Android устройств, возвращая`null`.
+
+### Особенности Android
+
+**altitudeAccuracy**: не поддерживается Android устройств, возвращая`null`.
+
+## PositionError
+
+`PositionError`Объект передается в `geolocationError` функции обратного вызова при возникновении ошибки с navigator.geolocation.
+
+### Параметры
+
+* **code**: один из стандартных кодов ошибок, перечисленных ниже.
+
+* **сообщение**: сообщение об ошибке с подробными сведениями об ошибке.
+
+### Константы
+
+* `PositionError.PERMISSION_DENIED`
+ * Возвращается, когда пользователи не позволяют приложению получить сведения о положении. Это зависит от платформы.
+* `PositionError.POSITION_UNAVAILABLE`
+ * Возвращается, если устройство не удается получить позиции. В общем это означает, что прибор не подключен к сети или не может получить Спутниковое исправить.
+* `PositionError.TIMEOUT`
+ * Возвращается, если устройство не удается получить позиции в течение времени, заданного параметром `timeout` в `geolocationOptions` . При использовании с `navigator.geolocation.watchPosition` , эта ошибка может быть неоднократно передан `geolocationError` обратного вызова каждый `timeout` миллисекунд.
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/README.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/README.md
new file mode 100644
index 00000000..1ad9931e
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/README.md
@@ -0,0 +1,268 @@
+<!--
+# license: 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.
+-->
+
+# 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 + '<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
+
+若要自訂的地理 `Position` 檢索的可選參數.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### 選項
+
+ * **enableHighAccuracy**: 提供應用程式需要最佳的可能結果的提示。 預設情況下,該設備將嘗試檢索 `Position` 使用基於網路的方法。 將此屬性設置為 `true` 告訴要使用更精確的方法,如衛星定位的框架。 *(布林值)*
+
+ * **timeout**: 時間 (毫秒) 從調用傳遞,允許的最大長度 `navigator.geolocation.getCurrentPosition` 或 `geolocation.watchPosition` 直到相應的 `geolocationSuccess` 回檔執行。 如果 `geolocationSuccess` 不會在此時間內調用回檔 `geolocationError` 傳遞回檔 `PositionError.TIMEOUT` 錯誤代碼。 (請注意,與一起使用時 `geolocation.watchPosition` 、 `geolocationError` 的時間間隔可以調用回檔每 `timeout` 毫秒!)*(人數)*
+
+ * **maximumAge**: 接受其年齡大於指定以毫秒為單位的時間沒有緩存的位置。*(人數)*
+
+### Android 的怪癖
+
+Android 2.x 模擬器不除非 `enableHighAccuracy` 選項設置為 `true`,否則返回地理定位結果.
+
+## navigator.geolocation.clearWatch
+
+停止觀察到 `watchID` 參數所引用的設備的位置。
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### 參數
+
+ * **watchID**: 的 id `watchPosition` 清除的時間間隔。(字串)
+
+### 示例
+
+ // 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
+
+包含 `Position` 座標和時間戳記,由地理位置 API 創建。
+
+### 屬性
+
+ * **coords**: 一組的地理座標。*(座標)*
+
+ * **timestamp**: 創建時間戳記為 `coords` 。*(日期)*
+
+## Coordinates
+
+`Coordinates` 的物件附加到一個 `Position` 物件,可用於在當前職位的請求中的回呼函數。 它包含一組屬性描述位置的地理座標。
+
+### 屬性
+
+ * **latitude**: 緯度以十進位度為單位。*(人數)*
+
+ * **longitude**: 經度以十進位度為單位。*(人數)*
+
+ * **altitude**: 高度在米以上橢球體中的位置。*(人數)*
+
+ * **accuracy**: 中米的緯度和經度座標的精度級別。*(人數)*
+
+ * **altitudeAccuracy**: 在米的海拔高度座標的精度級別。*(人數)*
+
+ * **heading**: 旅行,指定以度為單位元數目相對於真北順時針方向。*(人數)*
+
+ * **speed**: 當前地面速度的設備,指定在米每秒。*(人數)*
+
+### 亞馬遜火 OS 怪癖
+
+**altitudeAccuracy**: 不支援的 Android 設備,返回 `null`.
+
+### Android 的怪癖
+
+**altitudeAccuracy**: 不支援的 Android 設備,返回 `null`.
+
+## PositionError
+
+`PositionError` 物件將傳遞給 `geolocationError` 回呼函數中,當出現 navigator.geolocation 錯誤時發生。
+
+### 屬性
+
+ * **code**: 下面列出的預定義的錯誤代碼之一。
+
+ * **message**: 描述所遇到的錯誤的詳細資訊的錯誤訊息。
+
+### 常量
+
+ * `PositionError.PERMISSION_DENIED`
+ * 返回當使用者不允許應用程式檢索的位置資訊。這是取決於平臺。
+ * `PositionError.POSITION_UNAVAILABLE`
+ * 返回設備時,不能檢索的位置。一般情況下,這意味著該設備未連接到網路或無法獲取衛星的修復。
+ * `PositionError.TIMEOUT`
+ * 返回設備時,無法在指定的時間內檢索位置 `timeout` 中包含 `geolocationOptions` 。 與一起使用時 `navigator.geolocation.watchPosition` ,此錯誤可能反復傳遞給 `geolocationError` 回檔每 `timeout` 毫秒為單位)。 \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/index.md b/StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/index.md
new file mode 100644
index 00000000..d6d831e7
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/doc/zh/index.md
@@ -0,0 +1,255 @@
+<!---
+ 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.
+-->
+
+# cordova-plugin-geolocation
+
+這個外掛程式提供了有關該設備的位置,例如緯度和經度資訊。 常見的位置資訊來源包括全球定位系統 (GPS) 和網路信號,如 IP 位址、 RFID、 WiFi 和藍牙 MAC 位址和 GSM/CDMA 儲存格 Id 從推斷出的位置。 沒有任何保證,API 返回設備的實際位置。
+
+此 API 基於[W3C 地理定位 API 規範][1],並只執行已經不提供實現的設備上。
+
+ [1]: 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");
+ }
+
+
+## 安裝
+
+ cordova plugin add cordova-plugin-geolocation
+
+
+## 支援的平臺
+
+* 亞馬遜火 OS
+* Android 系統
+* 黑莓 10
+* 火狐瀏覽器作業系統
+* iOS
+* Tizen
+* Windows Phone 7 和 8
+* Windows 8
+
+## 方法
+
+* 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 + '<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
+
+若要自訂的地理 `Position` 檢索的可選參數.
+
+ { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
+
+
+### 選項
+
+* **enableHighAccuracy**: 提供應用程式需要最佳的可能結果的提示。 預設情況下,該設備將嘗試檢索 `Position` 使用基於網路的方法。 將此屬性設置為 `true` 告訴要使用更精確的方法,如衛星定位的框架。 *(布林值)*
+
+* **timeout**: 時間 (毫秒) 從調用傳遞,允許的最大長度 `navigator.geolocation.getCurrentPosition` 或 `geolocation.watchPosition` 直到相應的 `geolocationSuccess` 回檔執行。 如果 `geolocationSuccess` 不會在此時間內調用回檔 `geolocationError` 傳遞回檔 `PositionError.TIMEOUT` 錯誤代碼。 (請注意,與一起使用時 `geolocation.watchPosition` 、 `geolocationError` 的時間間隔可以調用回檔每 `timeout` 毫秒!)*(人數)*
+
+* **maximumAge**: 接受其年齡大於指定以毫秒為單位的時間沒有緩存的位置。*(人數)*
+
+### Android 的怪癖
+
+Android 2.x 模擬器不除非 `enableHighAccuracy` 選項設置為 `true`,否則返回地理定位結果.
+
+## navigator.geolocation.clearWatch
+
+停止觀察到 `watchID` 參數所引用的設備的位置。
+
+ navigator.geolocation.clearWatch(watchID);
+
+
+### 參數
+
+* **watchID**: 的 id `watchPosition` 清除的時間間隔。(字串)
+
+### 示例
+
+ // 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
+
+包含 `Position` 座標和時間戳記,由地理位置 API 創建。
+
+### 屬性
+
+* **coords**: 一組的地理座標。*(座標)*
+
+* **timestamp**: 創建時間戳記為 `coords` 。*(日期)*
+
+## Coordinates
+
+`Coordinates` 的物件附加到一個 `Position` 物件,可用於在當前職位的請求中的回呼函數。 它包含一組屬性描述位置的地理座標。
+
+### 屬性
+
+* **latitude**: 緯度以十進位度為單位。*(人數)*
+
+* **longitude**: 經度以十進位度為單位。*(人數)*
+
+* **altitude**: 高度在米以上橢球體中的位置。*(人數)*
+
+* **accuracy**: 中米的緯度和經度座標的精度級別。*(人數)*
+
+* **altitudeAccuracy**: 在米的海拔高度座標的精度級別。*(人數)*
+
+* **heading**: 旅行,指定以度為單位元數目相對於真北順時針方向。*(人數)*
+
+* **speed**: 當前地面速度的設備,指定在米每秒。*(人數)*
+
+### 亞馬遜火 OS 怪癖
+
+**altitudeAccuracy**: 不支援的 Android 設備,返回 `null`.
+
+### Android 的怪癖
+
+**altitudeAccuracy**: 不支援的 Android 設備,返回 `null`.
+
+## PositionError
+
+`PositionError` 物件將傳遞給 `geolocationError` 回呼函數中,當出現 navigator.geolocation 錯誤時發生。
+
+### 屬性
+
+* **code**: 下面列出的預定義的錯誤代碼之一。
+
+* **message**: 描述所遇到的錯誤的詳細資訊的錯誤訊息。
+
+### 常量
+
+* `PositionError.PERMISSION_DENIED`
+ * 返回當使用者不允許應用程式檢索的位置資訊。這是取決於平臺。
+* `PositionError.POSITION_UNAVAILABLE`
+ * 返回設備時,不能檢索的位置。一般情況下,這意味著該設備未連接到網路或無法獲取衛星的修復。
+* `PositionError.TIMEOUT`
+ * 返回設備時,無法在指定的時間內檢索位置 `timeout` 中包含 `geolocationOptions` 。 與一起使用時 `navigator.geolocation.watchPosition` ,此錯誤可能反復傳遞給 `geolocationError` 回檔每 `timeout` 毫秒為單位)。
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/package.json b/StoneIsland/plugins/cordova-plugin-geolocation/package.json
new file mode 100644
index 00000000..dee3543b
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "cordova-plugin-geolocation",
+ "version": "1.0.1",
+ "description": "Cordova Geolocation Plugin",
+ "cordova": {
+ "id": "cordova-plugin-geolocation",
+ "platforms": [
+ "android",
+ "amazon-fireos",
+ "ios",
+ "blackberry10",
+ "ubuntu",
+ "wp7",
+ "wp8",
+ "windows8",
+ "windows",
+ "firefoxos"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/apache/cordova-plugin-geolocation"
+ },
+ "keywords": [
+ "cordova",
+ "geolocation",
+ "ecosystem:cordova",
+ "cordova-android",
+ "cordova-amazon-fireos",
+ "cordova-ios",
+ "cordova-blackberry10",
+ "cordova-ubuntu",
+ "cordova-wp7",
+ "cordova-wp8",
+ "cordova-windows8",
+ "cordova-windows",
+ "cordova-firefoxos"
+ ],
+ "author": "Apache Software Foundation",
+ "license": "Apache 2.0"
+}
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/plugin.xml b/StoneIsland/plugins/cordova-plugin-geolocation/plugin.xml
new file mode 100644
index 00000000..4c0a41d1
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/plugin.xml
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+xmlns:rim="http://www.blackberry.com/ns/widgets"
+xmlns:android="http://schemas.android.com/apk/res/android"
+ id="cordova-plugin-geolocation"
+ version="1.0.1">
+
+ <name>Geolocation</name>
+ <description>Cordova Geolocation Plugin</description>
+ <license>Apache 2.0</license>
+ <keywords>cordova,geolocation</keywords>
+ <repo>https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git</repo>
+ <issue>https://issues.apache.org/jira/browse/CB/component/12320638</issue>
+
+ <!-- android -->
+ <platform name="android">
+
+ <config-file target="AndroidManifest.xml" parent="/*">
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ </config-file>
+
+ </platform>
+
+ <!-- amazon-fireos -->
+ <platform name="amazon-fireos">
+
+ <config-file target="AndroidManifest.xml" parent="/*">
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ </config-file>
+
+ </platform>
+
+ <!-- ios -->
+ <platform name="ios">
+
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+
+ <config-file target="config.xml" parent="/*">
+ <feature name="Geolocation">
+ <param name="ios-package" value="CDVLocation"/>
+ </feature>
+ </config-file>
+ <header-file src="src/ios/CDVLocation.h" />
+ <source-file src="src/ios/CDVLocation.m" />
+ <framework src="CoreLocation.framework" />
+
+ <config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
+ <string></string>
+ </config-file>
+
+ </platform>
+
+ <!-- blackberry10 -->
+ <platform name="blackberry10">
+
+ <js-module src="www/blackberry10/GeolocationProxy.js" name="GeolocationProxy">
+ <runs />
+ </js-module>
+
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+
+ <config-file target="www/config.xml" parent="/widget">
+ <feature name="Geolocation" value="Geolocation"/>
+ </config-file>
+
+ <config-file target="www/config.xml" parent="/widget/rim:permissions">
+ <rim:permit>read_geolocation</rim:permit>
+ </config-file>
+
+ </platform>
+
+ <!-- ubuntu -->
+ <platform name="ubuntu">
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+
+ <source-file src="src/ubuntu/geolocation.cpp" />
+ <header-file src="src/ubuntu/geolocation.h" />
+ <config-file target="config.xml" parent="/*">
+ <feature name="Geolocation">
+ <param policy_group="location" policy_version="1" />
+ </feature>
+ </config-file>
+ </platform>
+
+ <!-- wp7 -->
+ <platform name="wp7">
+
+ <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
+ <Capability Name="ID_CAP_LOCATION" />
+ </config-file>
+
+ <source-file src="src/wp/Geolocation.cs" />
+ </platform>
+
+ <!-- wp8 -->
+ <platform name="wp8">
+
+ <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
+ <Capability Name="ID_CAP_LOCATION" />
+ </config-file>
+
+ <source-file src="src/wp/Geolocation.cs" />
+ </platform>
+
+ <!-- windows8 -->
+ <platform name="windows8">
+ <config-file target="package.appxmanifest" parent="/Package/Capabilities">
+ <DeviceCapability Name="location" />
+ </config-file>
+
+ <js-module src="src/windows/GeolocationProxy.js" name="GeolocationProxy">
+ <runs />
+ </js-module>
+
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+ </platform>
+
+ <!-- windows universal apps (Windows 8.1, Windows Phone 8.1, Windows 8.0) -->
+ <platform name="windows">
+ <config-file target="package.appxmanifest" parent="/Package/Capabilities">
+ <DeviceCapability Name="location" />
+ </config-file>
+
+ <js-module src="src/windows/GeolocationProxy.js" name="GeolocationProxy">
+ <runs />
+ </js-module>
+
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+ </platform>
+
+ <!-- firefoxos -->
+ <platform name="firefoxos">
+ <config-file target="config.xml" parent="/*">
+ <permission name="geolocation" description="Required for accessing user location." />
+ </config-file>
+
+ <js-module src="src/firefoxos/GeolocationProxy.js" name="GeolocationProxy">
+ <runs />
+ </js-module>
+
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+ </platform>
+</plugin>
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/firefoxos/GeolocationProxy.js b/StoneIsland/plugins/cordova-plugin-geolocation/src/firefoxos/GeolocationProxy.js
new file mode 100644
index 00000000..e4b40529
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/firefoxos/GeolocationProxy.js
@@ -0,0 +1,67 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+// latest geolocation spec can be found here: http://www.w3.org/TR/geolocation-API/
+
+var idsMap = {};
+
+module.exports = {
+ getLocation: function(success, error, args) {
+ var geo = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.geolocation');
+ function successCallback(position) {
+ // Cordova is creating Position object using just coords
+ success(position.coords);
+ }
+ geo.getCurrentPosition(successCallback, error, {
+ enableHighAccuracy: args[0],
+ maximumAge: args[1]
+ });
+ },
+
+ addWatch: function(success, error, args) {
+ var geo = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.geolocation');
+ var id = args[0];
+ function successCallback(position) {
+ success(position.coords);
+ }
+ var nativeId = geo.watchPosition(successCallback, error, {
+ enableHighAccuracy: args[1]
+ });
+
+ idsMap[id] = nativeId;
+ },
+
+ clearWatch: function(success, error, args) {
+ var geo = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.geolocation');
+ var id = args[0];
+
+ if(id in idsMap) {
+ geo.clearWatch(idsMap[id]);
+ delete idsMap[id];
+ }
+
+ if(success) {
+ success();
+ }
+ }
+};
+
+require("cordova/exec/proxy").add("Geolocation", module.exports);
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.h b/StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.h
new file mode 100644
index 00000000..cce2738f
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.h
@@ -0,0 +1,70 @@
+/*
+ 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.
+ */
+
+#import <UIKit/UIKit.h>
+#import <CoreLocation/CoreLocation.h>
+#import <Cordova/CDVPlugin.h>
+
+enum CDVLocationStatus {
+ PERMISSIONDENIED = 1,
+ POSITIONUNAVAILABLE,
+ TIMEOUT
+};
+typedef NSUInteger CDVLocationStatus;
+
+// simple object to keep track of location information
+@interface CDVLocationData : NSObject {
+ CDVLocationStatus locationStatus;
+ NSMutableArray* locationCallbacks;
+ NSMutableDictionary* watchCallbacks;
+ CLLocation* locationInfo;
+}
+
+@property (nonatomic, assign) CDVLocationStatus locationStatus;
+@property (nonatomic, strong) CLLocation* locationInfo;
+@property (nonatomic, strong) NSMutableArray* locationCallbacks;
+@property (nonatomic, strong) NSMutableDictionary* watchCallbacks;
+
+@end
+
+@interface CDVLocation : CDVPlugin <CLLocationManagerDelegate>{
+ @private BOOL __locationStarted;
+ @private BOOL __highAccuracyEnabled;
+ CDVLocationData* locationData;
+}
+
+@property (nonatomic, strong) CLLocationManager* locationManager;
+@property (nonatomic, strong) CDVLocationData* locationData;
+
+- (void)getLocation:(CDVInvokedUrlCommand*)command;
+- (void)addWatch:(CDVInvokedUrlCommand*)command;
+- (void)clearWatch:(CDVInvokedUrlCommand*)command;
+- (void)returnLocationInfo:(NSString*)callbackId andKeepCallback:(BOOL)keepCallback;
+- (void)returnLocationError:(NSUInteger)errorCode withMessage:(NSString*)message;
+- (void)startLocation:(BOOL)enableHighAccuracy;
+
+- (void)locationManager:(CLLocationManager*)manager
+ didUpdateToLocation:(CLLocation*)newLocation
+ fromLocation:(CLLocation*)oldLocation;
+
+- (void)locationManager:(CLLocationManager*)manager
+ didFailWithError:(NSError*)error;
+
+- (BOOL)isLocationServicesEnabled;
+@end
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.m b/StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.m
new file mode 100644
index 00000000..8b543c8e
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/ios/CDVLocation.m
@@ -0,0 +1,366 @@
+/*
+ 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.
+ */
+
+#import "CDVLocation.h"
+
+#pragma mark Constants
+
+#define kPGLocationErrorDomain @"kPGLocationErrorDomain"
+#define kPGLocationDesiredAccuracyKey @"desiredAccuracy"
+#define kPGLocationForcePromptKey @"forcePrompt"
+#define kPGLocationDistanceFilterKey @"distanceFilter"
+#define kPGLocationFrequencyKey @"frequency"
+
+#pragma mark -
+#pragma mark Categories
+
+@implementation CDVLocationData
+
+@synthesize locationStatus, locationInfo, locationCallbacks, watchCallbacks;
+- (CDVLocationData*)init
+{
+ self = (CDVLocationData*)[super init];
+ if (self) {
+ self.locationInfo = nil;
+ self.locationCallbacks = nil;
+ self.watchCallbacks = nil;
+ }
+ return self;
+}
+
+@end
+
+#pragma mark -
+#pragma mark CDVLocation
+
+@implementation CDVLocation
+
+@synthesize locationManager, locationData;
+
+- (void)pluginInitialize
+{
+ self.locationManager = [[CLLocationManager alloc] init];
+ self.locationManager.delegate = self; // Tells the location manager to send updates to this object
+ __locationStarted = NO;
+ __highAccuracyEnabled = NO;
+ self.locationData = nil;
+}
+
+- (BOOL)isAuthorized
+{
+ BOOL authorizationStatusClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(authorizationStatus)]; // iOS 4.2+
+
+ if (authorizationStatusClassPropertyAvailable) {
+ NSUInteger authStatus = [CLLocationManager authorizationStatus];
+#ifdef __IPHONE_8_0
+ if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) { //iOS 8.0+
+ return (authStatus == kCLAuthorizationStatusAuthorizedWhenInUse) || (authStatus == kCLAuthorizationStatusAuthorizedAlways) || (authStatus == kCLAuthorizationStatusNotDetermined);
+ }
+#endif
+ return (authStatus == kCLAuthorizationStatusAuthorized) || (authStatus == kCLAuthorizationStatusNotDetermined);
+ }
+
+ // by default, assume YES (for iOS < 4.2)
+ return YES;
+}
+
+- (BOOL)isLocationServicesEnabled
+{
+ BOOL locationServicesEnabledInstancePropertyAvailable = [self.locationManager respondsToSelector:@selector(locationServicesEnabled)]; // iOS 3.x
+ BOOL locationServicesEnabledClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(locationServicesEnabled)]; // iOS 4.x
+
+ if (locationServicesEnabledClassPropertyAvailable) { // iOS 4.x
+ return [CLLocationManager locationServicesEnabled];
+ } else if (locationServicesEnabledInstancePropertyAvailable) { // iOS 2.x, iOS 3.x
+ return [(id)self.locationManager locationServicesEnabled];
+ } else {
+ return NO;
+ }
+}
+
+- (void)startLocation:(BOOL)enableHighAccuracy
+{
+ if (![self isLocationServicesEnabled]) {
+ [self returnLocationError:PERMISSIONDENIED withMessage:@"Location services are not enabled."];
+ return;
+ }
+ if (![self isAuthorized]) {
+ NSString* message = nil;
+ BOOL authStatusAvailable = [CLLocationManager respondsToSelector:@selector(authorizationStatus)]; // iOS 4.2+
+ if (authStatusAvailable) {
+ NSUInteger code = [CLLocationManager authorizationStatus];
+ if (code == kCLAuthorizationStatusNotDetermined) {
+ // could return POSITION_UNAVAILABLE but need to coordinate with other platforms
+ message = @"User undecided on application's use of location services.";
+ } else if (code == kCLAuthorizationStatusRestricted) {
+ message = @"Application's use of location services is restricted.";
+ }
+ }
+ // PERMISSIONDENIED is only PositionError that makes sense when authorization denied
+ [self returnLocationError:PERMISSIONDENIED withMessage:message];
+
+ return;
+ }
+
+#ifdef __IPHONE_8_0
+ NSUInteger code = [CLLocationManager authorizationStatus];
+ if (code == kCLAuthorizationStatusNotDetermined && ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)] || [self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])) { //iOS8+
+ __highAccuracyEnabled = enableHighAccuracy;
+ if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"]){
+ [self.locationManager requestAlwaysAuthorization];
+ } else if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"]) {
+ [self.locationManager requestWhenInUseAuthorization];
+ } else {
+ NSLog(@"[Warning] No NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key is defined in the Info.plist file.");
+ }
+ return;
+ }
+#endif
+
+ // Tell the location manager to start notifying us of location updates. We
+ // first stop, and then start the updating to ensure we get at least one
+ // update, even if our location did not change.
+ [self.locationManager stopUpdatingLocation];
+ [self.locationManager startUpdatingLocation];
+ __locationStarted = YES;
+ if (enableHighAccuracy) {
+ __highAccuracyEnabled = YES;
+ // Set distance filter to 5 for a high accuracy. Setting it to "kCLDistanceFilterNone" could provide a
+ // higher accuracy, but it's also just spamming the callback with useless reports which drain the battery.
+ self.locationManager.distanceFilter = 5;
+ // Set desired accuracy to Best.
+ self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
+ } else {
+ __highAccuracyEnabled = NO;
+ // TODO: Set distance filter to 10 meters? and desired accuracy to nearest ten meters? arbitrary.
+ self.locationManager.distanceFilter = 10;
+ self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
+ }
+}
+
+- (void)_stopLocation
+{
+ if (__locationStarted) {
+ if (![self isLocationServicesEnabled]) {
+ return;
+ }
+
+ [self.locationManager stopUpdatingLocation];
+ __locationStarted = NO;
+ __highAccuracyEnabled = NO;
+ }
+}
+
+- (void)locationManager:(CLLocationManager*)manager
+ didUpdateToLocation:(CLLocation*)newLocation
+ fromLocation:(CLLocation*)oldLocation
+{
+ CDVLocationData* cData = self.locationData;
+
+ cData.locationInfo = newLocation;
+ if (self.locationData.locationCallbacks.count > 0) {
+ for (NSString* callbackId in self.locationData.locationCallbacks) {
+ [self returnLocationInfo:callbackId andKeepCallback:NO];
+ }
+
+ [self.locationData.locationCallbacks removeAllObjects];
+ }
+ if (self.locationData.watchCallbacks.count > 0) {
+ for (NSString* timerId in self.locationData.watchCallbacks) {
+ [self returnLocationInfo:[self.locationData.watchCallbacks objectForKey:timerId] andKeepCallback:YES];
+ }
+ } else {
+ // No callbacks waiting on us anymore, turn off listening.
+ [self _stopLocation];
+ }
+}
+
+- (void)getLocation:(CDVInvokedUrlCommand*)command
+{
+ NSString* callbackId = command.callbackId;
+ BOOL enableHighAccuracy = [[command argumentAtIndex:0] boolValue];
+
+ if ([self isLocationServicesEnabled] == NO) {
+ NSMutableDictionary* posError = [NSMutableDictionary dictionaryWithCapacity:2];
+ [posError setObject:[NSNumber numberWithInt:PERMISSIONDENIED] forKey:@"code"];
+ [posError setObject:@"Location services are disabled." forKey:@"message"];
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError];
+ [self.commandDelegate sendPluginResult:result callbackId:callbackId];
+ } else {
+ if (!self.locationData) {
+ self.locationData = [[CDVLocationData alloc] init];
+ }
+ CDVLocationData* lData = self.locationData;
+ if (!lData.locationCallbacks) {
+ lData.locationCallbacks = [NSMutableArray arrayWithCapacity:1];
+ }
+
+ if (!__locationStarted || (__highAccuracyEnabled != enableHighAccuracy)) {
+ // add the callbackId into the array so we can call back when get data
+ if (callbackId != nil) {
+ [lData.locationCallbacks addObject:callbackId];
+ }
+ // Tell the location manager to start notifying us of heading updates
+ [self startLocation:enableHighAccuracy];
+ } else {
+ [self returnLocationInfo:callbackId andKeepCallback:NO];
+ }
+ }
+}
+
+- (void)addWatch:(CDVInvokedUrlCommand*)command
+{
+ NSString* callbackId = command.callbackId;
+ NSString* timerId = [command argumentAtIndex:0];
+ BOOL enableHighAccuracy = [[command argumentAtIndex:1] boolValue];
+
+ if (!self.locationData) {
+ self.locationData = [[CDVLocationData alloc] init];
+ }
+ CDVLocationData* lData = self.locationData;
+
+ if (!lData.watchCallbacks) {
+ lData.watchCallbacks = [NSMutableDictionary dictionaryWithCapacity:1];
+ }
+
+ // add the callbackId into the dictionary so we can call back whenever get data
+ [lData.watchCallbacks setObject:callbackId forKey:timerId];
+
+ if ([self isLocationServicesEnabled] == NO) {
+ NSMutableDictionary* posError = [NSMutableDictionary dictionaryWithCapacity:2];
+ [posError setObject:[NSNumber numberWithInt:PERMISSIONDENIED] forKey:@"code"];
+ [posError setObject:@"Location services are disabled." forKey:@"message"];
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError];
+ [self.commandDelegate sendPluginResult:result callbackId:callbackId];
+ } else {
+ if (!__locationStarted || (__highAccuracyEnabled != enableHighAccuracy)) {
+ // Tell the location manager to start notifying us of location updates
+ [self startLocation:enableHighAccuracy];
+ }
+ }
+}
+
+- (void)clearWatch:(CDVInvokedUrlCommand*)command
+{
+ NSString* timerId = [command argumentAtIndex:0];
+
+ if (self.locationData && self.locationData.watchCallbacks && [self.locationData.watchCallbacks objectForKey:timerId]) {
+ [self.locationData.watchCallbacks removeObjectForKey:timerId];
+ if([self.locationData.watchCallbacks count] == 0) {
+ [self _stopLocation];
+ }
+ }
+}
+
+- (void)stopLocation:(CDVInvokedUrlCommand*)command
+{
+ [self _stopLocation];
+}
+
+- (void)returnLocationInfo:(NSString*)callbackId andKeepCallback:(BOOL)keepCallback
+{
+ CDVPluginResult* result = nil;
+ CDVLocationData* lData = self.locationData;
+
+ if (lData && !lData.locationInfo) {
+ // return error
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:POSITIONUNAVAILABLE];
+ } else if (lData && lData.locationInfo) {
+ CLLocation* lInfo = lData.locationInfo;
+ NSMutableDictionary* returnInfo = [NSMutableDictionary dictionaryWithCapacity:8];
+ NSNumber* timestamp = [NSNumber numberWithDouble:([lInfo.timestamp timeIntervalSince1970] * 1000)];
+ [returnInfo setObject:timestamp forKey:@"timestamp"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.speed] forKey:@"velocity"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.verticalAccuracy] forKey:@"altitudeAccuracy"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.horizontalAccuracy] forKey:@"accuracy"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.course] forKey:@"heading"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.altitude] forKey:@"altitude"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.coordinate.latitude] forKey:@"latitude"];
+ [returnInfo setObject:[NSNumber numberWithDouble:lInfo.coordinate.longitude] forKey:@"longitude"];
+
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:returnInfo];
+ [result setKeepCallbackAsBool:keepCallback];
+ }
+ if (result) {
+ [self.commandDelegate sendPluginResult:result callbackId:callbackId];
+ }
+}
+
+- (void)returnLocationError:(NSUInteger)errorCode withMessage:(NSString*)message
+{
+ NSMutableDictionary* posError = [NSMutableDictionary dictionaryWithCapacity:2];
+
+ [posError setObject:[NSNumber numberWithUnsignedInteger:errorCode] forKey:@"code"];
+ [posError setObject:message ? message:@"" forKey:@"message"];
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError];
+
+ for (NSString* callbackId in self.locationData.locationCallbacks) {
+ [self.commandDelegate sendPluginResult:result callbackId:callbackId];
+ }
+
+ [self.locationData.locationCallbacks removeAllObjects];
+
+ for (NSString* callbackId in self.locationData.watchCallbacks) {
+ [self.commandDelegate sendPluginResult:result callbackId:callbackId];
+ }
+}
+
+- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
+{
+ NSLog(@"locationManager::didFailWithError %@", [error localizedFailureReason]);
+
+ CDVLocationData* lData = self.locationData;
+ if (lData && __locationStarted) {
+ // TODO: probably have to once over the various error codes and return one of:
+ // PositionError.PERMISSION_DENIED = 1;
+ // PositionError.POSITION_UNAVAILABLE = 2;
+ // PositionError.TIMEOUT = 3;
+ NSUInteger positionError = POSITIONUNAVAILABLE;
+ if (error.code == kCLErrorDenied) {
+ positionError = PERMISSIONDENIED;
+ }
+ [self returnLocationError:positionError withMessage:[error localizedDescription]];
+ }
+
+ if (error.code != kCLErrorLocationUnknown) {
+ [self.locationManager stopUpdatingLocation];
+ __locationStarted = NO;
+ }
+}
+
+//iOS8+
+-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
+{
+ if(!__locationStarted){
+ [self startLocation:__highAccuracyEnabled];
+ }
+}
+
+- (void)dealloc
+{
+ self.locationManager.delegate = nil;
+}
+
+- (void)onReset
+{
+ [self _stopLocation];
+ [self.locationManager stopUpdatingHeading];
+}
+
+@end
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp b/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
new file mode 100644
index 00000000..c820cfef
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.cpp
@@ -0,0 +1,119 @@
+/*
+ *
+ * Copyright 2013 Canonical Ltd.
+ *
+ * Licensed 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.
+ *
+*/
+
+#include <QUuid>
+
+#include "geolocation.h"
+
+Geolocation::Geolocation(Cordova *cordova): CPlugin(cordova),
+ _geoPositionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)) {
+ if (_geoPositionInfoSource.data() != 0) {
+ QObject::connect(_geoPositionInfoSource.data(), SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo)));
+ QObject::connect(_geoPositionInfoSource.data(), SIGNAL(updateTimeout()), this, SLOT(updateTimeout()));
+ }
+}
+
+void Geolocation::addWatch(int scId, int ecId, const QString &id, bool enableHighAccuracy) {
+ Q_UNUSED(enableHighAccuracy);
+
+ assert(_id2sc.find(id) == _id2sc.end());
+
+ if (!_geoPositionInfoSource.data()) {
+ QVariantMap err;
+ err.insert("code", POSITION_UNAVAILABLE);
+ err.insert("message", "unavailable");
+
+ this->cb(ecId, err);
+ return;
+ }
+
+ _id2sc[id] = scId;
+ _id2ec[id] = ecId;
+}
+
+void Geolocation::clearWatch(int scId, int ecId, const QString &id) {
+ _id2sc.remove(id);
+ _id2ec.remove(id);
+}
+
+void Geolocation::getLocation(int scId, int ecId, bool enableHighAccuracy, qint64 maximumAge) {
+ Q_UNUSED(maximumAge);
+ Q_UNUSED(enableHighAccuracy);
+
+ if (!_geoPositionInfoSource.data()) {
+ QVariantMap err;
+ err.insert("code", POSITION_UNAVAILABLE);
+ err.insert("message", "unavailable");
+
+ this->cb(ecId, err);
+ return;
+ }
+
+ _geoPositionInfoSource->requestUpdate();
+
+ QString id = QString("_INTERNAL_") + QUuid::createUuid().toString();
+
+ _id2sc[id] = scId;
+ _id2ec[id] = ecId;
+ _singleUpdate.insert(id);
+}
+
+void Geolocation::positionUpdated(const QGeoPositionInfo &update) {
+ QGeoCoordinate coordinate = update.coordinate();
+
+ QVariantMap p;
+
+ p.insert("latitude", coordinate.latitude());
+ p.insert("longitude", coordinate.longitude());
+ p.insert("altitude", coordinate.altitude());
+
+ if (update.hasAttribute(QGeoPositionInfo::VerticalAccuracy))
+ p.insert("accuracy", update.attribute(QGeoPositionInfo::VerticalAccuracy));
+ if (update.hasAttribute(QGeoPositionInfo::Direction))
+ p.insert("heading", update.attribute(QGeoPositionInfo::Direction));
+ if (update.hasAttribute(QGeoPositionInfo::GroundSpeed))
+ p.insert("velocity", update.attribute(QGeoPositionInfo::GroundSpeed));
+ if (update.hasAttribute(QGeoPositionInfo::HorizontalAccuracy))
+ p.insert("altitudeAccuracy", update.attribute(QGeoPositionInfo::HorizontalAccuracy));
+ p.insert("timestamp", update.timestamp().toMSecsSinceEpoch());
+
+ for (const QString &id: _id2sc.keys()) {
+ int scId = _id2sc[id];
+ this->cb(scId, p);
+ if (_singleUpdate.contains(id)) {
+ _singleUpdate.remove(id);
+ _id2sc.remove(id);
+ _id2ec.remove(id);
+ }
+ }
+}
+
+void Geolocation::updateTimeout() {
+ QVariantMap err;
+ err.insert("code", TIMEOUT);
+ err.insert("message", "timeout");
+
+ for (int ecId: _id2ec) {
+ this->cb(ecId, err);
+ }
+
+ _id2ec.clear();
+ _id2sc.clear();
+ _singleUpdate.clear();
+}
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.h b/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.h
new file mode 100644
index 00000000..7345bec9
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/ubuntu/geolocation.h
@@ -0,0 +1,69 @@
+/*
+ *
+ * Copyright 2013 Canonical Ltd.
+ *
+ * Licensed 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.
+ *
+*/
+
+#ifndef GEOLOCATION_H_SVO2013
+#define GEOLOCATION_H_SVO2013
+
+#include <QGeoPositionInfoSource>
+#include <QGeoPositionInfo>
+#include <QtCore>
+#include <cassert>
+
+#include <cplugin.h>
+
+class Geolocation: public CPlugin {
+ Q_OBJECT
+public:
+ explicit Geolocation(Cordova *cordova);
+
+ virtual const QString fullName() override {
+ return Geolocation::fullID();
+ }
+
+ virtual const QString shortName() override {
+ return "Geolocation";
+ }
+
+ static const QString fullID() {
+ return "Geolocation";
+ }
+
+public slots:
+ void getLocation(int scId, int ecId, bool enableHighAccuracy, qint64 maximumAge);
+ void addWatch(int scId, int ecId, const QString &id, bool enableHighAccuracy);
+ void clearWatch(int scId, int ecId, const QString &id);
+
+protected slots:
+ void positionUpdated(const QGeoPositionInfo &update);
+ void updateTimeout();
+
+private:
+ QMap<QString, int> _id2sc;
+ QMap<QString, int> _id2ec;
+ QSet<QString> _singleUpdate;
+ QSharedPointer<QGeoPositionInfoSource> _geoPositionInfoSource;
+
+ enum PositionError {
+ PERMISSION_DENIED = 1,
+ POSITION_UNAVAILABLE = 2,
+ TIMEOUT = 3
+ };
+};
+
+#endif
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/windows/GeolocationProxy.js b/StoneIsland/plugins/cordova-plugin-geolocation/src/windows/GeolocationProxy.js
new file mode 100644
index 00000000..9cab6a4d
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/windows/GeolocationProxy.js
@@ -0,0 +1,174 @@
+/*
+ * Copyright 2013 Research In Motion Limited.
+ *
+ * Licensed 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.
+ */
+
+var PositionError = require('./PositionError'),
+ ids = {},
+ loc;
+
+function ensureLocator() {
+ if (loc == null)
+ loc = new Windows.Devices.Geolocation.Geolocator();
+
+ return loc;
+}
+
+function createErrorCode() {
+ switch (loc.locationStatus) {
+ case Windows.Devices.Geolocation.PositionStatus.initializing:
+ // This status indicates that a location device is still initializing
+ case Windows.Devices.Geolocation.PositionStatus.noData:
+ // No location data is currently available
+ case Windows.Devices.Geolocation.PositionStatus.notInitialized:
+ // This status indicates that the app has not yet requested
+ // location data by calling GetGeolocationAsync() or
+ // registering an event handler for the positionChanged event.
+ case Windows.Devices.Geolocation.PositionStatus.notAvailable:
+ // Location is not available on this version of Windows
+ return PositionError.POSITION_UNAVAILABLE;
+
+ case Windows.Devices.Geolocation.PositionStatus.disabled:
+ // The app doesn't have permission to access location,
+ // either because location has been turned off.
+ return PositionError.PERMISSION_DENIED;
+
+ default:
+ break;
+ }
+}
+function createResult(pos) {
+ var res = {
+ accuracy: pos.coordinate.accuracy,
+ heading: pos.coordinate.heading,
+ velocity: pos.coordinate.speed,
+ altitudeAccuracy: pos.coordinate.altitudeAccuracy,
+ timestamp: pos.coordinate.timestamp
+ }
+
+ if (pos.coordinate.point) {
+ res.latitude = pos.coordinate.point.position.latitude;
+ res.longitude = pos.coordinate.point.position.longitude;
+ res.altitude = pos.coordinate.point.position.altitude;
+ } else { // compatibility with old windows8.0 api
+ res.latitude = pos.coordinate.latitude;
+ res.longitude = pos.coordinate.longitude;
+ res.altitude = pos.coordinate.altitude;
+ }
+
+ return res;
+}
+
+module.exports = {
+ getLocation: function (success, fail, args, env) {
+ ensureLocator();
+ if (loc != null)
+ {
+ var highAccuracy = args[0],
+ maxAge = args[1];
+
+ loc.desiredAccuracy = highAccuracy ?
+ Windows.Devices.Geolocation.PositionAccuracy.high :
+ Windows.Devices.Geolocation.PositionAccuracy.default;
+
+ loc.reportInterval = maxAge ? maxAge : 0;
+
+ loc.getGeopositionAsync().then(
+ function (pos) {
+ success(createResult(pos));
+ },
+ function (err) {
+ fail({
+ code: createErrorCode(),
+ message: err.message
+ });
+ }
+ );
+ }
+ else
+ {
+ fail({
+ code: PositionError.POSITION_UNAVAILABLE,
+ message: "You do not have the required location services present on your system."
+ });
+ }
+ },
+
+ addWatch: function (success, fail, args, env) {
+ ensureLocator();
+ var clientId = args[0],
+ highAccuracy = args[1],
+
+ onPositionChanged = function (e) {
+ success(createResult(e.position), {keepCallback: true});
+ },
+
+ onStatusChanged = function (e) {
+ switch (e.status) {
+ case Windows.Devices.Geolocation.PositionStatus.noData:
+ case Windows.Devices.Geolocation.PositionStatus.notAvailable:
+ fail({
+ code: PositionError.POSITION_UNAVAILABLE,
+ message: "Data from location services is currently unavailable or you do not have the required location services present on your system."
+ });
+ break;
+
+ case Windows.Devices.Geolocation.PositionStatus.disabled:
+ fail({
+ code: PositionError.PERMISSION_DENIED,
+ message: "Your location is currently turned off."
+ });
+ break;
+
+ case Windows.Devices.Geolocation.PositionStatus.initializing:
+ case Windows.Devices.Geolocation.PositionStatus.ready:
+ default:
+ break;
+ }
+ };
+
+ loc.desiredAccuracy = highAccuracy ?
+ Windows.Devices.Geolocation.PositionAccuracy.high :
+ Windows.Devices.Geolocation.PositionAccuracy.default;
+
+ if (cordova.platformId == 'windows' && WinJS.Utilities.isPhone) {
+ // on Windows Phone 8.1 'positionchanged' event fails with error below if movementThreshold is not set
+ // JavaScript runtime error: Operation aborted
+ // You must set the MovementThreshold property or the ReportInterval property before adding event handlers.
+ // WinRT information: You must set the MovementThreshold property or the ReportInterval property before adding event handlers
+ loc.movementThreshold = loc.movementThreshold || 1; // 1 meter
+ }
+
+ loc.addEventListener("positionchanged", onPositionChanged);
+ loc.addEventListener("statuschanged", onStatusChanged);
+
+ ids[clientId] = { pos: onPositionChanged, status: onStatusChanged };
+ },
+
+ clearWatch: function (success, fail, args, env) {
+ var clientId = args[0],
+ callbacks = ids[clientId];
+
+ if (callbacks) {
+ loc.removeEventListener("positionchanged", callbacks.pos);
+ loc.removeEventListener("statuschanged", callbacks.status);
+
+ delete ids[clientId];
+ }
+
+ success && success();
+ }
+};
+
+require("cordova/exec/proxy").add("Geolocation", module.exports); \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/src/wp/GeoLocation.cs b/StoneIsland/plugins/cordova-plugin-geolocation/src/wp/GeoLocation.cs
new file mode 100644
index 00000000..42af72de
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/src/wp/GeoLocation.cs
@@ -0,0 +1,34 @@
+/*
+ Licensed 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.
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+using System.Threading;
+using System.Device.Location;
+
+namespace WPCordovaClassLib.Cordova.Commands
+{
+ /// <summary>
+ /// This is a command stub, the browser provides the correct implementation. We use this to trigger the static analyzer that we require this permission
+ /// </summary>
+ public class Geolocation
+ {
+ /* Unreachable code, by design -jm */
+ private void triggerGeoInclusion()
+ {
+ new GeoCoordinateWatcher();
+ }
+ }
+}
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/tests/plugin.xml b/StoneIsland/plugins/cordova-plugin-geolocation/tests/plugin.xml
new file mode 100644
index 00000000..edeb62e1
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/tests/plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+ xmlns:rim="http://www.blackberry.com/ns/widgets"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ id="cordova-plugin-geolocation-tests"
+ version="1.0.1">
+ <name>Cordova Geolocation Plugin Tests</name>
+ <license>Apache 2.0</license>
+
+ <js-module src="tests.js" name="tests">
+ </js-module>
+</plugin>
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/tests/tests.js b/StoneIsland/plugins/cordova-plugin-geolocation/tests/tests.js
new file mode 100644
index 00000000..e07caf88
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/tests/tests.js
@@ -0,0 +1,425 @@
+/*
+ *
+ * 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.
+ *
+*/
+exports.defineAutoTests = function () {
+ var fail = function (done, context, message) {
+ // prevents done() to be called several times
+ if (context) {
+ if (context.done) return;
+ context.done = true;
+ }
+
+ if (message) {
+ expect(false).toBe(true, message);
+ } else {
+ expect(false).toBe(true);
+ }
+
+ // watchPosition could call its callback sync (before returning the value)
+ // so we invoke done async to make sure we know watcher id to .clear in afterEach
+ setTimeout(function () {
+ done();
+ });
+ },
+ succeed = function (done, context) {
+ // prevents done() to be called several times
+ if (context) {
+ if (context.done) return;
+ context.done = true;
+ }
+
+ expect(true).toBe(true);
+
+ // watchPosition could call its callback sync (before returning the value)
+ // so we invoke done async to make sure we know watcher id to .clear in afterEach
+ setTimeout(function () {
+ done();
+ });
+ },
+ isWindowsStore = (cordova.platformId == "windows8") || (cordova.platformId == "windows" && !WinJS.Utilities.isPhone),
+ isAndroid = cordova.platformId == "android";
+
+ describe('Geolocation (navigator.geolocation)', function () {
+
+ it("geolocation.spec.1 should exist", function () {
+ expect(navigator.geolocation).toBeDefined();
+ });
+
+ it("geolocation.spec.2 should contain a getCurrentPosition function", function () {
+ expect(typeof navigator.geolocation.getCurrentPosition).toBeDefined();
+ expect(typeof navigator.geolocation.getCurrentPosition == 'function').toBe(true);
+ });
+
+ it("geolocation.spec.3 should contain a watchPosition function", function () {
+ expect(typeof navigator.geolocation.watchPosition).toBeDefined();
+ expect(typeof navigator.geolocation.watchPosition == 'function').toBe(true);
+ });
+
+ it("geolocation.spec.4 should contain a clearWatch function", function () {
+ expect(typeof navigator.geolocation.clearWatch).toBeDefined();
+ expect(typeof navigator.geolocation.clearWatch == 'function').toBe(true);
+ });
+
+ });
+
+ describe('getCurrentPosition method', function () {
+
+ describe('error callback', function () {
+
+ it("geolocation.spec.5 should be called if we set timeout to 0 and maximumAge to a very small number", function (done) {
+ // On Windows, this test prompts user for permission to use geolocation and interrupts autotests running.
+ // On Android geolocation Api is not available on emulator so we pended tests until we found the way to detect
+ // whether we run on emulator or real device from JavaScript. You can still run the tests on Android manually.
+ if (isWindowsStore || isAndroid) {
+ pending();
+ }
+
+ navigator.geolocation.getCurrentPosition(
+ fail.bind(null, done),
+ succeed.bind(null, done),
+ {
+ maximumAge: 0,
+ timeout: 0
+ });
+ });
+
+ });
+
+ describe('success callback', function () {
+
+ it("geolocation.spec.6 should be called with a Position object", function (done) {
+ // On Windows, this test prompts user for permission to use geolocation and interrupts autotests running.
+ // On Android geolocation Api is not available on emulator so we pended tests until we found the way to detect
+ // whether we run on emulator or real device from JavaScript. You can still run the tests on Android manually.
+ if (isWindowsStore || isAndroid) {
+ pending();
+ }
+
+ navigator.geolocation.getCurrentPosition(function (p) {
+ expect(p.coords).toBeDefined();
+ expect(p.timestamp).toBeDefined();
+ done();
+ },
+ fail.bind(null, done),
+ {
+ maximumAge: (5 * 60 * 1000) // 5 minutes maximum age of cached position
+ });
+ }, 25000); // first geolocation call can take several seconds on some devices
+ });
+
+ });
+
+ describe('watchPosition method', function () {
+
+ beforeEach(function(done) {
+ // This timeout is set to lessen the load on platform's geolocation services
+ // which were causing occasional test failures
+ setTimeout(function() {
+ done();
+ }, 100);
+ });
+
+ describe('error callback', function () {
+
+ var errorWatch = null;
+ afterEach(function () {
+ navigator.geolocation.clearWatch(errorWatch);
+ });
+
+ it("geolocation.spec.7 should be called if we set timeout to 0 and maximumAge to a very small number", function (done) {
+ // On Windows, this test prompts user for permission to use geolocation and interrupts autotests running.
+ // On Android geolocation Api is not available on emulator so we pended tests until we found the way to detect
+ // whether we run on emulator or real device from JavaScript. You can still run the tests on Android manually.
+ if (isWindowsStore || isAndroid) {
+ pending();
+ }
+
+ var context = this;
+ errorWatch = navigator.geolocation.watchPosition(
+ fail.bind(null, done, context, 'Unexpected win'),
+ succeed.bind(null, done, context),
+ {
+ maximumAge: 0,
+ timeout: 0
+ });
+ });
+
+ });
+
+ describe('success callback', function () {
+
+ var successWatch = null;
+ afterEach(function () {
+ navigator.geolocation.clearWatch(successWatch);
+ });
+
+ it("geolocation.spec.8 should be called with a Position object", function (done) {
+ // On Windows, this test prompts user for permission to use geolocation and interrupts autotests running.
+ // On Android geolocation Api is not available on emulator so we pended tests until we found the way to detect
+ // whether we run on emulator or real device from JavaScript. You can still run the tests on Android manually.
+ if (isWindowsStore || isAndroid) {
+ pending();
+ }
+
+ var context = this;
+ successWatch = navigator.geolocation.watchPosition(
+ function (p) {
+ // prevents done() to be called several times
+ if (context.done) return;
+ context.done = true;
+
+ expect(p.coords).toBeDefined();
+ expect(p.timestamp).toBeDefined();
+ // callback could be called sync so we invoke done async to make sure we know watcher id to .clear in afterEach
+ setTimeout(function () {
+ done();
+ });
+ },
+ fail.bind(null, done, context, 'Unexpected fail callback'),
+ {
+ maximumAge: (5 * 60 * 1000) // 5 minutes maximum age of cached position
+ });
+ });
+
+ });
+
+ });
+
+};
+
+/******************************************************************************/
+/******************************************************************************/
+/******************************************************************************/
+
+exports.defineManualTests = function (contentEl, createActionButton) {
+ var newGeolocation = navigator.geolocation;
+ var origGeolocation = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.geolocation');
+ if (!origGeolocation) {
+ origGeolocation = newGeolocation;
+ newGeolocation = null;
+ }
+
+ var watchLocationId = null;
+
+ /**
+ * Start watching location
+ */
+ var watchLocation = function (usePlugin) {
+ console.log("watchLocation()");
+ var geo = usePlugin ? newGeolocation : origGeolocation;
+ if (!geo) {
+ alert('geolocation object is missing. usePlugin = ' + usePlugin);
+ return;
+ }
+
+ // Success callback
+ var success = function (p) {
+ setLocationDetails(p);
+ };
+
+ // Fail callback
+ var fail = function (e) {
+ console.log("watchLocation fail callback with error code " + e);
+ stopLocation(geo);
+ };
+
+ // Get location
+ watchLocationId = geo.watchPosition(success, fail, { enableHighAccuracy: true });
+ setLocationStatus("Running");
+ };
+
+ /**
+ * Stop watching the location
+ */
+ var stopLocation = function (usePlugin) {
+ console.log("stopLocation()");
+ var geo = usePlugin ? newGeolocation : origGeolocation;
+ if (!geo) {
+ alert('geolocation object is missing. usePlugin = ' + usePlugin);
+ return;
+ }
+ setLocationStatus("Stopped");
+ if (watchLocationId) {
+ geo.clearWatch(watchLocationId);
+ watchLocationId = null;
+ }
+ };
+
+ /**
+ * Get current location
+ */
+ var getLocation = function (usePlugin, opts) {
+ console.log("getLocation()");
+ var geo = usePlugin ? newGeolocation : origGeolocation;
+ if (!geo) {
+ alert('geolocation object is missing. usePlugin = ' + usePlugin);
+ return;
+ }
+
+ // Stop location if running
+ stopLocation(geo);
+
+ // Success callback
+ var success = function (p) {
+ setLocationDetails(p);
+ setLocationStatus("Done");
+ };
+
+ // Fail callback
+ var fail = function (e) {
+ console.log("getLocation fail callback with error code " + e.code);
+ setLocationStatus("Error: " + e.code);
+ };
+
+ setLocationStatus("Retrieving location...");
+
+ // Get location
+ geo.getCurrentPosition(success, fail, opts || { enableHighAccuracy: true }); //, {timeout: 10000});
+
+ };
+
+ /**
+ * Set location status
+ */
+ var setLocationStatus = function (status) {
+ document.getElementById('location_status').innerHTML = status;
+ };
+ var setLocationDetails = function (p) {
+ var date = (new Date(p.timestamp));
+ document.getElementById('latitude').innerHTML = p.coords.latitude;
+ document.getElementById('longitude').innerHTML = p.coords.longitude;
+ document.getElementById('altitude').innerHTML = p.coords.altitude;
+ document.getElementById('accuracy').innerHTML = p.coords.accuracy;
+ document.getElementById('heading').innerHTML = p.coords.heading;
+ document.getElementById('speed').innerHTML = p.coords.speed;
+ document.getElementById('altitude_accuracy').innerHTML = p.coords.altitudeAccuracy;
+ document.getElementById('timestamp').innerHTML = date.toDateString() + " " + date.toTimeString();
+ }
+
+ /******************************************************************************/
+
+ var location_div = '<div id="info">' +
+ '<b>Status:</b> <span id="location_status">Stopped</span>' +
+ '<table width="100%">',
+ latitude = '<tr>' +
+ '<td><b>Latitude:</b></td>' +
+ '<td id="latitude">&nbsp;</td>' +
+ '<td>(decimal degrees) geographic coordinate [<a href="http://dev.w3.org/geo/api/spec-source.html#lat">#ref]</a></td>' +
+ '</tr>',
+ longitude = '<tr>' +
+ '<td><b>Longitude:</b></td>' +
+ '<td id="longitude">&nbsp;</td>' +
+ '<td>(decimal degrees) geographic coordinate [<a href="http://dev.w3.org/geo/api/spec-source.html#lat">#ref]</a></td>' +
+ '</tr>',
+ altitude = '<tr>' +
+ '<td><b>Altitude:</b></td>' +
+ '<td id="altitude">&nbsp;</td>' +
+ '<td>null if not supported;<br>' +
+ '(meters) height above the [<a href="http://dev.w3.org/geo/api/spec-source.html#ref-wgs">WGS84</a>] ellipsoid. [<a href="http://dev.w3.org/geo/api/spec-source.html#altitude">#ref]</a></td>' +
+ '</tr>',
+ accuracy = '<tr>' +
+ '<td><b>Accuracy:</b></td>' +
+ '<td id="accuracy">&nbsp;</td>' +
+ '<td>(meters; non-negative; 95% confidence level) the accuracy level of the latitude and longitude coordinates. [<a href="http://dev.w3.org/geo/api/spec-source.html#accuracy">#ref]</a></td>' +
+ '</tr>',
+ heading = '<tr>' +
+ '<td><b>Heading:</b></td>' +
+ '<td id="heading">&nbsp;</td>' +
+ '<td>null if not supported;<br>' +
+ 'NaN if speed == 0;<br>' +
+ '(degrees; 0° ≤ heading < 360°) direction of travel of the hosting device- counting clockwise relative to the true north. [<a href="http://dev.w3.org/geo/api/spec-source.html#heading">#ref]</a></td>' +
+ '</tr>',
+ speed = '<tr>' +
+ '<td><b>Speed:</b></td>' +
+ '<td id="speed">&nbsp;</td>' +
+ '<td>null if not supported;<br>' +
+ '(meters per second; non-negative) magnitude of the horizontal component of the hosting device current velocity. [<a href="http://dev.w3.org/geo/api/spec-source.html#speed">#ref]</a></td>' +
+ '</tr>',
+ altitude_accuracy = '<tr>' +
+ '<td><b>Altitude Accuracy:</b></td>' +
+ '<td id="altitude_accuracy">&nbsp;</td>' +
+ '<td>null if not supported;<br>(meters; non-negative; 95% confidence level) the accuracy level of the altitude. [<a href="http://dev.w3.org/geo/api/spec-source.html#altitude-accuracy">#ref]</a></td>' +
+ '</tr>',
+ time = '<tr>' +
+ '<td><b>Time:</b></td>' +
+ '<td id="timestamp">&nbsp;</td>' +
+ '<td>(DOMTimeStamp) when the position was acquired [<a href="http://dev.w3.org/geo/api/spec-source.html#timestamp">#ref]</a></td>' +
+ '</tr>' +
+ '</table>' +
+ '</div>',
+ actions =
+ '<h2>Use Built-in WebView navigator.geolocation</h2>' +
+ '<div id="built-in-getLocation"></div>' +
+ 'Expected result: Will update all applicable values in status box for current location. Status will read Retrieving Location (may not see this if location is retrieved immediately) then Done.' +
+ '<p/> <div id="built-in-watchLocation"></div>' +
+ 'Expected result: Will update all applicable values in status box for current location and update as location changes. Status will read Running.' +
+ '<p/> <div id="built-in-stopLocation"></div>' +
+ 'Expected result: Will stop watching the location so values will not be updated. Status will read Stopped.' +
+ '<p/> <div id="built-in-getOld"></div>' +
+ 'Expected result: Will update location values with a cached position that is up to 30 seconds old. Verify with time value. Status will read Done.' +
+ '<h2>Use Cordova Geolocation Plugin</h2>' +
+ '<div id="cordova-getLocation"></div>' +
+ 'Expected result: Will update all applicable values in status box for current location. Status will read Retrieving Location (may not see this if location is retrieved immediately) then Done.' +
+ '<p/> <div id="cordova-watchLocation"></div>' +
+ 'Expected result: Will update all applicable values in status box for current location and update as location changes. Status will read Running.' +
+ '<p/> <div id="cordova-stopLocation"></div>' +
+ 'Expected result: Will stop watching the location so values will not be updated. Status will read Stopped.' +
+ '<p/> <div id="cordova-getOld"></div>' +
+ 'Expected result: Will update location values with a cached position that is up to 30 seconds old. Verify with time value. Status will read Done.',
+ values_info =
+ '<h3>Details about each value are listed below in the status box</h3>',
+ note =
+ '<h3>Allow use of current location, if prompted</h3>';
+
+ contentEl.innerHTML = values_info + location_div + latitude + longitude + altitude + accuracy + heading + speed
+ + altitude_accuracy + time + note + actions;
+
+ createActionButton('Get Location', function () {
+ getLocation(false);
+ }, 'built-in-getLocation');
+
+ createActionButton('Start Watching Location', function () {
+ watchLocation(false);
+ }, 'built-in-watchLocation');
+
+ createActionButton('Stop Watching Location', function () {
+ stopLocation(false);
+ }, 'built-in-stopLocation');
+
+ createActionButton('Get Location Up to 30 Sec Old', function () {
+ getLocation(false, { maximumAge: 30000 });
+ }, 'built-in-getOld');
+
+ createActionButton('Get Location', function () {
+ getLocation(true);
+ }, 'cordova-getLocation');
+
+ createActionButton('Start Watching Location', function () {
+ watchLocation(true);
+ }, 'cordova-watchLocation');
+
+ createActionButton('Stop Watching Location', function () {
+ stopLocation(true);
+ }, 'cordova-stopLocation');
+
+ createActionButton('Get Location Up to 30 Sec Old', function () {
+ getLocation(true, { maximumAge: 30000 });
+ }, 'cordova-getOld');
+};
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/www/Coordinates.js b/StoneIsland/plugins/cordova-plugin-geolocation/www/Coordinates.js
new file mode 100644
index 00000000..84fdd5b8
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/www/Coordinates.js
@@ -0,0 +1,69 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+/**
+ * This class contains position information.
+ * @param {Object} lat
+ * @param {Object} lng
+ * @param {Object} alt
+ * @param {Object} acc
+ * @param {Object} head
+ * @param {Object} vel
+ * @param {Object} altacc
+ * @constructor
+ */
+var Coordinates = function(lat, lng, alt, acc, head, vel, altacc) {
+ /**
+ * The latitude of the position.
+ */
+ this.latitude = lat;
+ /**
+ * The longitude of the position,
+ */
+ this.longitude = lng;
+ /**
+ * The accuracy of the position.
+ */
+ this.accuracy = acc;
+ /**
+ * The altitude of the position.
+ */
+ this.altitude = (alt !== undefined ? alt : null);
+ /**
+ * The direction the device is moving at the position.
+ */
+ this.heading = (head !== undefined ? head : null);
+ /**
+ * The velocity with which the device is moving at the position.
+ */
+ this.speed = (vel !== undefined ? vel : null);
+
+ if (this.speed === 0 || this.speed === null) {
+ this.heading = NaN;
+ }
+
+ /**
+ * The altitude accuracy of the position.
+ */
+ this.altitudeAccuracy = (altacc !== undefined) ? altacc : null;
+};
+
+module.exports = Coordinates;
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/www/Position.js b/StoneIsland/plugins/cordova-plugin-geolocation/www/Position.js
new file mode 100644
index 00000000..f0470dea
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/www/Position.js
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+var Coordinates = require('./Coordinates');
+
+var Position = function(coords, timestamp) {
+ if (coords) {
+ this.coords = new Coordinates(coords.latitude, coords.longitude, coords.altitude, coords.accuracy, coords.heading, coords.velocity, coords.altitudeAccuracy);
+ } else {
+ this.coords = new Coordinates();
+ }
+ this.timestamp = (timestamp !== undefined) ? timestamp : new Date();
+};
+
+module.exports = Position;
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/www/PositionError.js b/StoneIsland/plugins/cordova-plugin-geolocation/www/PositionError.js
new file mode 100644
index 00000000..9403f11f
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/www/PositionError.js
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+/**
+ * Position error object
+ *
+ * @constructor
+ * @param code
+ * @param message
+ */
+var PositionError = function(code, message) {
+ this.code = code || null;
+ this.message = message || '';
+};
+
+PositionError.PERMISSION_DENIED = 1;
+PositionError.POSITION_UNAVAILABLE = 2;
+PositionError.TIMEOUT = 3;
+
+module.exports = PositionError;
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/www/blackberry10/GeolocationProxy.js b/StoneIsland/plugins/cordova-plugin-geolocation/www/blackberry10/GeolocationProxy.js
new file mode 100644
index 00000000..0bba2263
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/www/blackberry10/GeolocationProxy.js
@@ -0,0 +1,69 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+var idsMap = {},
+ geo = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.geolocation');
+
+module.exports = {
+
+ getLocation: function(success, error, args) {
+ var successCallback = function (result) {
+ var pos = result.coords;
+ pos.timestamp = result.timestamp;
+ if (success) {
+ success(pos);
+ }
+ };
+ geo.getCurrentPosition(successCallback, error, {
+ enableHighAccuracy: args[0],
+ maximumAge: args[1]
+ });
+ },
+
+ addWatch: function(success, error, args) {
+ var id = args[0],
+ successCallback = function (result) {
+ var pos = result.coords;
+ pos.timestamp = result.timestamp;
+ if (success) {
+ success(pos);
+ }
+ },
+ nativeId = geo.watchPosition(successCallback, error, {
+ enableHighAccuracy: args[1]
+ });
+ idsMap[id] = nativeId;
+ },
+
+ clearWatch: function(success, error, args) {
+ var id = args[0];
+ if(id in idsMap) {
+ geo.clearWatch(idsMap[id]);
+ delete idsMap[id];
+ }
+ if(success) {
+ success();
+ }
+ }
+
+};
+
+require("cordova/exec/proxy").add("Geolocation", module.exports);
diff --git a/StoneIsland/plugins/cordova-plugin-geolocation/www/geolocation.js b/StoneIsland/plugins/cordova-plugin-geolocation/www/geolocation.js
new file mode 100644
index 00000000..3814919a
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-geolocation/www/geolocation.js
@@ -0,0 +1,211 @@
+/*
+ *
+ * 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.
+ *
+*/
+
+var argscheck = require('cordova/argscheck'),
+ utils = require('cordova/utils'),
+ exec = require('cordova/exec'),
+ PositionError = require('./PositionError'),
+ Position = require('./Position');
+
+var timers = {}; // list of timers in use
+
+// Returns default params, overrides if provided with values
+function parseParameters(options) {
+ var opt = {
+ maximumAge: 0,
+ enableHighAccuracy: false,
+ timeout: Infinity
+ };
+
+ if (options) {
+ if (options.maximumAge !== undefined && !isNaN(options.maximumAge) && options.maximumAge > 0) {
+ opt.maximumAge = options.maximumAge;
+ }
+ if (options.enableHighAccuracy !== undefined) {
+ opt.enableHighAccuracy = options.enableHighAccuracy;
+ }
+ if (options.timeout !== undefined && !isNaN(options.timeout)) {
+ if (options.timeout < 0) {
+ opt.timeout = 0;
+ } else {
+ opt.timeout = options.timeout;
+ }
+ }
+ }
+
+ return opt;
+}
+
+// Returns a timeout failure, closed over a specified timeout value and error callback.
+function createTimeout(errorCallback, timeout) {
+ var t = setTimeout(function() {
+ clearTimeout(t);
+ t = null;
+ errorCallback({
+ code:PositionError.TIMEOUT,
+ message:"Position retrieval timed out."
+ });
+ }, timeout);
+ return t;
+}
+
+var geolocation = {
+ lastPosition:null, // reference to last known (cached) position returned
+ /**
+ * Asynchronously acquires the current position.
+ *
+ * @param {Function} successCallback The function to call when the position data is available
+ * @param {Function} errorCallback The function to call when there is an error getting the heading position. (OPTIONAL)
+ * @param {PositionOptions} options The options for getting the position data. (OPTIONAL)
+ */
+ getCurrentPosition:function(successCallback, errorCallback, options) {
+ argscheck.checkArgs('fFO', 'geolocation.getCurrentPosition', arguments);
+ options = parseParameters(options);
+
+ // Timer var that will fire an error callback if no position is retrieved from native
+ // before the "timeout" param provided expires
+ var timeoutTimer = {timer:null};
+
+ var win = function(p) {
+ clearTimeout(timeoutTimer.timer);
+ if (!(timeoutTimer.timer)) {
+ // Timeout already happened, or native fired error callback for
+ // this geo request.
+ // Don't continue with success callback.
+ return;
+ }
+ var pos = new Position(
+ {
+ latitude:p.latitude,
+ longitude:p.longitude,
+ altitude:p.altitude,
+ accuracy:p.accuracy,
+ heading:p.heading,
+ velocity:p.velocity,
+ altitudeAccuracy:p.altitudeAccuracy
+ },
+ (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp)))
+ );
+ geolocation.lastPosition = pos;
+ successCallback(pos);
+ };
+ var fail = function(e) {
+ clearTimeout(timeoutTimer.timer);
+ timeoutTimer.timer = null;
+ var err = new PositionError(e.code, e.message);
+ if (errorCallback) {
+ errorCallback(err);
+ }
+ };
+
+ // Check our cached position, if its timestamp difference with current time is less than the maximumAge, then just
+ // fire the success callback with the cached position.
+ if (geolocation.lastPosition && options.maximumAge && (((new Date()).getTime() - geolocation.lastPosition.timestamp.getTime()) <= options.maximumAge)) {
+ successCallback(geolocation.lastPosition);
+ // If the cached position check failed and the timeout was set to 0, error out with a TIMEOUT error object.
+ } else if (options.timeout === 0) {
+ fail({
+ code:PositionError.TIMEOUT,
+ message:"timeout value in PositionOptions set to 0 and no cached Position object available, or cached Position object's age exceeds provided PositionOptions' maximumAge parameter."
+ });
+ // Otherwise we have to call into native to retrieve a position.
+ } else {
+ if (options.timeout !== Infinity) {
+ // If the timeout value was not set to Infinity (default), then
+ // set up a timeout function that will fire the error callback
+ // if no successful position was retrieved before timeout expired.
+ timeoutTimer.timer = createTimeout(fail, options.timeout);
+ } else {
+ // This is here so the check in the win function doesn't mess stuff up
+ // may seem weird but this guarantees timeoutTimer is
+ // always truthy before we call into native
+ timeoutTimer.timer = true;
+ }
+ exec(win, fail, "Geolocation", "getLocation", [options.enableHighAccuracy, options.maximumAge]);
+ }
+ return timeoutTimer;
+ },
+ /**
+ * Asynchronously watches the geolocation for changes to geolocation. When a change occurs,
+ * the successCallback is called with the new location.
+ *
+ * @param {Function} successCallback The function to call each time the location data is available
+ * @param {Function} errorCallback The function to call when there is an error getting the location data. (OPTIONAL)
+ * @param {PositionOptions} options The options for getting the location data such as frequency. (OPTIONAL)
+ * @return String The watch id that must be passed to #clearWatch to stop watching.
+ */
+ watchPosition:function(successCallback, errorCallback, options) {
+ argscheck.checkArgs('fFO', 'geolocation.getCurrentPosition', arguments);
+ options = parseParameters(options);
+
+ var id = utils.createUUID();
+
+ // Tell device to get a position ASAP, and also retrieve a reference to the timeout timer generated in getCurrentPosition
+ timers[id] = geolocation.getCurrentPosition(successCallback, errorCallback, options);
+
+ var fail = function(e) {
+ clearTimeout(timers[id].timer);
+ var err = new PositionError(e.code, e.message);
+ if (errorCallback) {
+ errorCallback(err);
+ }
+ };
+
+ var win = function(p) {
+ clearTimeout(timers[id].timer);
+ if (options.timeout !== Infinity) {
+ timers[id].timer = createTimeout(fail, options.timeout);
+ }
+ var pos = new Position(
+ {
+ latitude:p.latitude,
+ longitude:p.longitude,
+ altitude:p.altitude,
+ accuracy:p.accuracy,
+ heading:p.heading,
+ velocity:p.velocity,
+ altitudeAccuracy:p.altitudeAccuracy
+ },
+ (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp)))
+ );
+ geolocation.lastPosition = pos;
+ successCallback(pos);
+ };
+
+ exec(win, fail, "Geolocation", "addWatch", [id, options.enableHighAccuracy]);
+
+ return id;
+ },
+ /**
+ * Clears the specified heading watch.
+ *
+ * @param {String} id The ID of the watch returned from #watchPosition
+ */
+ clearWatch:function(id) {
+ if (id && timers[id] !== undefined) {
+ clearTimeout(timers[id].timer);
+ timers[id].timer = false;
+ exec(null, null, "Geolocation", "clearWatch", [id]);
+ }
+ }
+};
+
+module.exports = geolocation;