/
302.txt
276 lines (199 loc) · 12.1 KB
/
302.txt
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
[25] [DFN[[[Geolocation API]]]] は、現在の[[地理]]的[[位置]]を取得するための [[API]] です。
* 仕様書
[REFS[
- [52] [CITE@en[Geolocation API Specification]], [TIME[2019-11-24 18:38:51 +09:00]] <https://w3c.github.io/geolocation-api/>
-- [56] [CITE@en[Geolocation API Specification]], [TIME[2019-11-24 18:38:51 +09:00]] <https://w3c.github.io/geolocation-api/#security>
-- [27] [CITE@en[Geolocation API Specification]], [TIME[2019-11-24 18:38:51 +09:00]] <https://w3c.github.io/geolocation-api/#api_description>
]REFS]
* インターフェイス
[34] [[Geolocation API]] は次の[[インターフェイス]]を定義しています。
[FIG(list middle)[ [63] [[Geolocation API]]
- [30] [CODE(DOMi)@en[[[Geolocation]]]]
- [33] [CODE(DOMi)@en[[[Position]]]]
- [36] [CODE(DOMi)@en[[[Coordinates]]]]
- [37] [CODE(DOMi)@en[[[PositionError]]]]
- [35] [CODE(DOMi)@en[[[NavigatorGeolocation]]]]
]FIG]
* [CODE(DOMi)@en[Geolocation]]
[32] [CODE(DOMi)@en[[[Geolocation]]]] オブジェクトは [DFN[[CODE(JS)@en[[[navigator.geolocation]]]]]] [[プロパティー]]で取得できます。
[58]
[CODE[Navigator]] [[オブジェクト]]は、
[F[[CODE[geolocation]]]]
を持ちます。
作成時に新しい
[CODE[Geolocation]]
に設定されます。
その後変化しません。
[28]
[CODE[Navigator]] [[インターフェイス]]の
[DFN[[CODE[geolocation]]]]
[[IDL属性]]の[[取得器]] [SRC[>>27]] は、
次のようにしなければ[MUST[なりません]]。
[FIG(steps)[
= [57] [[文脈オブジェクト]]の [F[[CODE[geolocation]]]] を返します。
[CODE[SameObject]] です。
]FIG]
[59] [[文書環境]]に[[晒され]]ています。[[ワーカー環境]]や[[ワークレット]]では利用できません。
-*-*-
[31] [DFN[[CODE(DOMi)@en[[[Geolocation]]]]]] [[インターフェイス]] [SRC[>>27]]
は、[[文書環境]]に[[晒され]]ています。
[CODE[navigator.geolocation]] [[プロパティー]]からのみ
[CODE[Geolocation]] [[オブジェクト]]にアクセスできます。
[61]
[CODE[Geolocation]] [[オブジェクト]]には[[位置情報]]アクセスのための
[[API]]
があります。
[FIG(list middle)[ [62] [CODE[Geolocation]] [[インターフェイスメンバー]]
- [CODE(DOMm)@en[[[getCurrentPosition]]]]
- [CODE(DOMm)@en[[[watchPosition]]]]
- [CODE(DOMm)@en[[[clearWatch]]]]
]FIG]
-*-*-
[60] [CODE[SecureContext]] 以外 ([[素のHTTP]])
でも [CODE[navigator.geolocation]]
と各[[メソッド]]は存在しますが、
意味のある操作はできません。
([[後方互換性]]のため残されているだけです。)
* セキュリティーとプライバシー
[26]
[[位置情報]]の取得は、 [[利用者]]の同意が必要となっています。
[SEE[ [[Permission]] ]]
-*-*-
[29] [[位置情報]]の[[受信者]]は、
これが必要な時だけ要求するようにしなければ[MUST[なりません]]。
[[受信者]]は、[[位置情報]]を取得した目的にのみこれを用いなければ[MUST[ならず]]、
[[利用者]]が保持し続けることを認めた場合を除き、完了したら破棄しなければ[MUST[なりません]]。
[[受信者]]は、[[位置情報]]への無許可のアクセスを認めないように対策しなければ[MUST[なりません]]。
[[位置情報]]が蓄積される場合には、[[利用者]]がこれを更新・削除できる[SHOULD[べきです]]。
[[利用者]]が認めた場合を除き、[[位置情報]]を再転送しては[MUST[なりません]]。
再転送する場合には注意を払う[SHOULD[べき]]で、
[[暗号化]]することを[RUBYB[おすすめします][[[encouraged]]]]。
[[受信者]]は、
[[位置情報]]を収集していること、その目的、保存期間、安全対策、
共有する場合どう共有されるか、[[利用者]]がどうアクセス、更新、削除できるか、
その他[[利用者]]が行えることを明確に開示しなければ[MUST[なりません]]。
以上の指針に従わない場合には、その説明も開示しなければ[MUST[なりません]]。 [SRC[>>15]]
* 機能拡張
[53] 基本的な [[API]] の完成以後、何度か新機能の追加が提案され、
作業されていました。それらはいずれも成功せず、現在はメンテナンスのみが (それも消極的に)
なされています。
[54] かわって [[Geolocation Sensor]] が提案されています。
* 実装
[55]
すべての主要 [[Webブラウザー]]が対応しています。
* 歴史
[1]
[CITE[LocationAPI - google-gears - Google Code]] ([CODE[2008-03-23 18:51:33 +09:00]] 版) <http://code.google.com/p/google-gears/wiki/LocationAPI>
[3]
[CITE@en[Geolocation API Specification]] ([CODE[2008-06-06 04:50:16 +09:00]] 版) <http://dev.w3.org/geo/api/spec-source.html>
[4]
[[W3C]] に [[Geolocation Working Group]] ができました。
[5] [CITE@en-us[Firefox 3.1 for developers - MDC]] ([TIME[2009-02-08 18:25:06 +09:00]] 版) <https://developer.mozilla.org/ja/Firefox_3.1_for_developers#.E6.96.B0.E3.81.97.E3.81.8F.E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88.E3.81.95.E3.82.8C.E3.81.9F.E6.A9.9F.E8.83.BD_2>
>Geolocation API がサポートされました、これは Web アプリケーションがユーザの現在の位置についての情報が提供される場合にその情報を保持することを可能にします。
[6] [CITE@en[Geolocation API Specification]] ([TIME[2009-03-26 02:05:11 +09:00]] 版) <http://dev.w3.org/cvsweb/~checkout~/geo/api/spec-source-v2.html?content-type=text/html;%20charset=utf-8>
[7] [CITE@en[Geolocation API Specification]] ([TIME[2009-07-07 23:53:37 +09:00]] 版) <http://www.w3.org/TR/2009/WD-geolocation-API-20090707/>
[9] [CITE[Re: Geolocation in the browser]] ([[Ian Hickson <ian@...>]] 著, [TIME[2008-11-26 00:54:55 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/16820>
[10] [CITE@en[Geolocation API Specification]] ([TIME[2008-12-19 01:46:59 +09:00]] 版) <http://www.w3.org/TR/2008/WD-geolocation-API-20081222/>
[13] [CITE@en[Geolocation API Specification]]
( ([TIME[2010-09-08 02:10:28 +09:00]] 版))
<http://www.w3.org/TR/2010/CR-geolocation-API-20100907/>
- [15] [CITE@en[Geolocation API Specification]] ([TIME[2011-06-28 14:23:06 +09:00]] 版) <http://dev.w3.org/geo/api/spec-source.html>
[8] [CITE@en[gist: 228509 - GitHub]]
([TIME[2010-08-09 08:08:45 +09:00]] 版)
<http://gist.github.com/228509>
[11] [CITE@ja[DoCoMo、au、SoftbankのGPSで位置情報をphpで取得する方法 :: 日々是作譜]]
([TIME[2009-05-18 17:51:46 +09:00]] 版)
<http://pgjapan.net/2008/07/get-location-info-in-gps-of-docomo-au-softbank.html>
[12] [CITE[Android の geolocation で GPS を使う方法 - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech]]
([TIME[2010-04-26 12:16:10 +09:00]] 版)
<http://subtech.g.hatena.ne.jp/cho45/20091007/1254894887>
[14] [CITE[携帯電話と位置情報 : 現在地の測位 (1) (Yahoo! JAPAN Tech Blog)]] ([TIME[2009-03-02 17:52:16 +09:00]] 版) <http://techblog.yahoo.co.jp/cat207/cat211/_1_1/>
(リダイレクト [TIME[2019-07-27T03:11:31.100Z]])
[CITE@ja[携帯電話と位置情報 : 現在地の測位 (1) - Yahoo! JAPAN Tech Blog]],
[TIME[2009年3月 2日][2009-03-02]]
([TIME[2019-07-27 12:11:16 +09:00]]) <https://techblog.yahoo.co.jp/mobile/_1_1/>
[16] [[Firefox]] ではなぜか結果が帰ってこない (どちらの callback も呼ばれない)
ことがよくあります。 [CODE(DOMm)@en[[[watchPosition]]]] よりも
[CODE(DOMm)@en[[[getCurrentPosition]]]] の方がましな印象があります。
エラーが返ってくるときも再試行したらちゃんと結果が返ってきたりしそう。
[17] [CITE@en[W3C Geolocation API in IE9 - IEBlog - Site Home - MSDN Blogs]]
([TIME[2011-10-12 21:45:11 +09:00]] 版)
<http://blogs.msdn.com/b/ie/archive/2011/02/17/w3c-geolocation-api-in-ie9.aspx>
[18] [CITE@en[Geolocation API Specification Level 2]]
( ([TIME[2011-12-01 05:18:39 +09:00]] 版))
<http://www.w3.org/TR/2011/WD-geolocation-API-v2-20111201/>
[19] [CITE@en[Geolocation API Specification]]
( ([TIME[2012-05-09 23:32:03 +09:00]] 版))
<http://www.w3.org/TR/2012/PR-geolocation-API-20120510/>
[20] ( ([TIME[2013-11-13 01:50:27 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-archive/2013Nov/att-0007/W3C_TPAC_Breakout_Geolocation_November_2013.pdf>
[21] [CITE@en[Enhanced Geolocation]]
( ([TIME[2013-11-12 00:06:17 +09:00]] 版))
<http://gmandyam.github.io/enhanced-geolocation/>
[22] [CITE@en[Enhanced Geolocation]]
( ([TIME[2013-11-12 00:06:17 +09:00]] 版))
<http://gmandyam.github.io/enhanced-geolocation/>
[23] [CITE@en[Geolocation API Specification]]
( ([TIME[2013-10-22 23:10:42 +09:00]] 版))
<http://www.w3.org/TR/2013/REC-geolocation-API-20131024/>
[24] [CITE@en[Geolocation API Specification Level 2]]
( ([TIME[2011-11-02 11:46:03 +09:00]] 版))
<http://dev.w3.org/geo/api/spec-source-v2>
[2] [CITE@en[Requiring Authenticated Origins for Geolocation API's: Status]]
([[Mandyam, Giridhar]] 著, [TIME[2015-02-26 08:51:53 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-webappsec/2015Feb/0423.html>
[FIG(quote)[
[FIGCAPTION[
[38] [CITE[Intent to deprecate: Insecure usage of powerful features - Google グループ]]
([TIME[2015-02-28 11:15:13 +09:00]] 版)
<https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/2LXKVWYkOus>
]FIGCAPTION]
> We want to start applying the concepts in https://w3c.github.io/webappsec/specs/powerfulfeatures/ to features that have already shipped and which do not meet the (new, not present at the time) requirements.
]FIG]
[39] [CITE@en[Geolocation API Specification]]
( ([TIME[2015-05-28 14:31:20 +09:00]] 版))
<http://www.w3.org/TR/2015/PER-geolocation-API-20150528/>
[40] [CITE[W3C Geolocation Working Group]]
([TIME[2015-01-26 18:24:42 +09:00]] 版)
<http://www.w3.org/2008/geolocation/>
[41] [CITE@en[Geolocation WG Charter]]
([[Giridhar D. Mandyam]] 著, [TIME[2014-08-13 02:51:13 +09:00]] 版)
<http://www.w3.org/2014/04/geo-charter.html>
[42] [CITE@en[Geolocation API Specification 2nd Edition]]
([TIME[2016-11-08 21:27:30 +09:00]])
<https://www.w3.org/TR/2016/REC-geolocation-API-20161108/>
[43] [CITE@en[506435 - Geolocation disabled when Chrome is in the background or screen turns off. - chromium - Monorail]]
([TIME[2017-04-19 20:46:18 +09:00]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=506435>
[44] [CITE@en[Privacy | Symantec]] ([TIME[2017-07-12 18:47:37 +09:00]]) <https://www.symantec.com/privacy>
[45] >>44 アクセスすると何もしなくても現在地取得の承認が要求されます。
[[プライバシーポリシー]]を読もうとしたら現在地を求められている。読者は試されていますな。
[46] [CITE@en[Moved to WICG. Cleaned up respec config]]
([[plehegar]]著, [TIME[2018-08-12 01:02:19 +09:00]])
<https://github.com/w3c/geolocation-api/commit/4cba5ba9bbdb49ca31362b83517db53e07fbb216>
[47] [CITE@en[Geolocation API Specification]]
([TIME[2018-08-12 01:03:41 +09:00]])
<https://w3c.github.io/geolocation-api/>
[48] [CITE@en[w3c/geolocation-api: W3C Geolocation API]]
([TIME[2019-03-26 15:21:14 +09:00]])
<https://github.com/w3c/geolocation-api>
[49] [CITE[Geolocation API Specification]]
([TIME[2019-03-18 21:22:13 +09:00]])
<https://w3c.github.io/geolocation-api/>
[FIG(quote)[
[FIGCAPTION[
[50] [CITE@en[Geolocation API Specification]]
([TIME[2019-03-18 21:22:13 +09:00]])
<https://w3c.github.io/geolocation-api/>
]FIGCAPTION]
> Warning
> Implementors need to be aware that the future work is now happening on the Geolocation Sensor specification in the Devices and Sensors Working Group.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[51] [CITE@en[Geolocation Sensor]]
([TIME[2019-03-12 19:02:34 +09:00]])
<https://w3c.github.io/geolocation-sensor/>
]FIGCAPTION]
> The work on the Geolocation API '''['''GEOLOCATION-API''']''' has been concluded, and as such, any new feature development is happening in this Geolocation Sensor specification. The two specifications are expected to coexist.
]FIG]