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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
---
title: Geolocation.watchPosition()
slug: Web/API/Geolocation/watchPosition
tags:
- API
- Exemple
- Géolocalisation
- Géolocalisation API
- Méthode
- Reference
translation_of: Web/API/Geolocation/watchPosition
---
<p>{{ APIref("Geolocation API") }}</p>
<p>La méthode <strong><code>Geolocation.watchPosition()</code></strong> permet de manipuler une fonction appelée automatiquement à chaque fois que la position de l'appareil change. Vous pouvez de même, en option, manipuler une autre fonction appelée automatiquement pour gérer les erreurs.</p>
<p>Cette méthode retourne une valeur ID de veille qui permet de libérer les fonctions déclarées automatiquement, évoquées précédemment, à l'aide de la méthode {{domxref("Geolocation.clearWatch()")}}.</p>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="syntaxbox"><em>id</em> = navigator.geolocation.watchPosition(<em>success[</em>, <em>error[</em>, <em>options]]</em>)</pre>
<h3 id="Paramètres">Paramètres</h3>
<dl>
<dt><em>success</em></dt>
<dd>Nom d'une fonction appelée qui a pour paramètre l'objet {{domxref("Position")}}.</dd>
<dt><em>error</em> {{optional_inline}}</dt>
<dd>Nom d'une fonction optionnelle qui a pour paramètre l'objet {{domxref("PositionError")}}.</dd>
<dt><em>options</em> {{optional_inline}}</dt>
<dd>Un objet optionnel {{domxref("PositionOptions")}}.</dd>
</dl>
<h2 id="Exemple">Exemple</h2>
<pre class="brush: js">var id, target, options;
function success(pos) {
var crd = pos.coords;
if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
console.log('Bravo, vous avez atteint la cible');
navigator.geolocation.clearWatch(id);
}
}
function error(err) {
console.warn('ERROR(' + err.code + '): ' + err.message);
}
target = {
latitude : 0,
longitude: 0
};
options = {
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 0
};
id = navigator.geolocation.watchPosition(success, error, options);
</pre>
<div class="note"><strong>Note : </strong>Si votre application fonctionne sous Firefox OS, veillez à la <a href="/en-US/docs/Web/API/Geolocation/navigator.requestWakeLock()">geolocation wake lock</a> pour que votre application continue à recevoir les changements de positions si votre application tourne en tâche de fond, ou si votre écran est éteint.
<p> </p>
</div>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Statut</th>
<th scope="col">Commentaire</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('Geolocation', '#watch-position', 'Geolocation.watchPosition()')}}</td>
<td>{{Spec2('Geolocation')}}</td>
<td>Specification initiale.</td>
</tr>
</tbody>
</table>
<h2 id="Navigateurs_compatibles">Navigateurs compatibles</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Caractère</th>
<th>Chrome</th>
<th>Limite</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Basic support</td>
<td>5</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop("1.9.1")}}</td>
<td>9</td>
<td>10.60<br>
Supprimé de 15.0<br>
Réintroduit en 16.0</td>
<td>5</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Caractère</th>
<th>Android</th>
<th>Chrome pour Android</th>
<th>Limite</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatUnknown()}}</td>
<td>{{CompatUnknown()}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("4")}}</td>
<td>{{CompatUnknown()}}</td>
<td>10.60</td>
<td>{{CompatUnknown()}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Voir_également">Voir également</h2>
<ul>
<li><a href="/en-US/docs/Web/API/Geolocation/navigator.requestWakeLock()">geolocation wake lock</a></li>
<li><a href="/en-US/docs/WebAPI/Using_geolocation" title="/en-US/docs/WebAPI/Using_geolocation">Using geolocation</a></li>
<li>L'interface qui lui est réservée, {{domxref("Geolocation")}}, et la façon d'y accéder {{domxref("NavigatorGeolocation.geolocation")}}.</li>
<li>L'opération inverse : {{domxref("Geolocation.clearWatch()")}}</li>
<li>Une méthode similaire : {{domxref("Geolocation.getCurrentPosition()")}}</li>
</ul>
|