1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115---
title: 'Geolocation | W3C Geolocator Application API Plugin'
description: "This application plugin is based on W3C Geolocation API Specification and only executes on devices that don't already provide an implementation for location."
sidebar_label: 'Geolocation'
---
import DocsCard from '@components/global/DocsCard';
import DocsButton from '@components/page/native/DocsButton';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
# 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.
This API is based on the W3C Geolocation API Specification, and only executes on devices that don't already provide an implementation.
For iOS you have to add this configuration to your configuration.xml file
```xml
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>We use your location for full functionality of certain app features.</string>
</edit-config>
```
<p>
<a href="https://github.com/apache/cordova-plugin-geolocation" target="_blank" rel="noopener" className="git-link">github.com/apache/cordova-plugin-geolocation</a>
</p>
<h2>Stuck on a Cordova issue?</h2>
<DocsCard
className="cordova-ee-card"
header="Don't waste precious time on plugin issues."
href="https://ionicframework.com/sales?product_of_interest=Ionic%20Native"
>
<div>
<img src="/docs/icons/native-cordova-bot.png" className="cordova-ee-img" />
<p>If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic’s experts offer premium advisory services for both community plugins and premier plugins.</p>
<DocsButton className="native-ee-detail">Contact Us Today!</DocsButton>
</div>
</DocsCard>
<h2 id="installation">
<a href="#installation">Installation</a>
</h2>
<Tabs
groupId="runtime"
defaultValue="Capacitor"
values={[
{ value: 'Capacitor', label: 'Capacitor' },
{ value: 'Cordova', label: 'Cordova' },
{ value: 'Enterprise', label: 'Enterprise' },
]}
>
<TabItem value="Capacitor">
<CodeBlock className="language-shell">
$ npm install cordova-plugin-geolocation {'\n'}$ npm install @awesome-cordova-plugins/geolocation {'\n'}$ ionic
cap sync
</CodeBlock>
</TabItem>
<TabItem value="Cordova">
<CodeBlock className="language-shell">
$ ionic cordova plugin add cordova-plugin-geolocation {'\n'}$ npm install @awesome-cordova-plugins/geolocation{' '}
{'\n'}
</CodeBlock>
</TabItem>
<TabItem value="Enterprise">
<blockquote>
Ionic Enterprise comes with fully supported and maintained plugins from the Ionic Team.
<a className="btn" href="https://ionic.io/docs/premier-plugins">Learn More</a> or if you're interested in an enterprise version of this plugin <a className="btn" href="https://ionicframework.com/sales?product_of_interest=Ionic%20Enterprise%20Engine">Contact Us</a>
</blockquote>
</TabItem>
</Tabs>
## Supported Platforms
- Amazon Fire OS
- Android
- Browser
- iOS
- Windows
## Usage
### React
[Learn more about using Ionic Native components in React](../native-community.md#react)
### Angular
```tsx
import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';
...
constructor(private geolocation: Geolocation) {}
...
this.geolocation.getCurrentPosition().then((resp) => {
// resp.coords.latitude
// resp.coords.longitude
}).catch((error) => {
console.log('Error getting location', error);
});
let watch = this.geolocation.watchPosition();
watch.subscribe((data) => {
// data can be a set of coordinates, or an error (if an error occurred).
// data.coords.latitude
// data.coords.longitude
});
```