/
302.txt
275 lines (197 loc) · 11.7 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
[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/>
-- [27] [CITE@en[Geolocation API Specification]], [TIME[2019-11-24 18:38:51 +09:00]] <https://w3c.github.io/geolocation-api/#api_description>
]REFS]
* API
[34] [[Geolocation API]] には次のものが含まれます。
[FIG(list middle)[ [63] [[Geolocation API]]
- [30] [CODE(DOMi)@en[[[Geolocation]]]] [[インターフェイス]]
- [CODE[PositionCallback]] [[コールバック関数]]
- [CODE[PositionErrorCallback]] [[コールバック関数]]
- [CODE(DOMi)@en[PositionOptions]] [[辞書]]
- [33] [CODE(DOMi)@en[GeolocationPosition]] [[インターフェイス]]
- [36] [CODE(DOMi)@en[GeolocationCoordinates]] [[インターフェイス]]
- [37] [CODE(DOMi)@en[[[PositionError]]]]
- [35] [CODE[navigator.geolocation]] (旧 [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]
[FIG(list members)[ [65] [CODE[Geolocation]] [[オブジェクト]]の状態
: [F[[[キャッシュされた[CODE[GeolocationPosition]]][watchPosition]]]] :
: [F[ハンドルの状態][watchPosition]] :
]FIG]
-*-*-
[60] [CODE[SecureContext]] 以外 ([[素のHTTP]])
でも [CODE[navigator.geolocation]]
と各[[メソッド]]は存在しますが、
意味のある操作はできません。
([[後方互換性]]のため残されているだけです。)
* 機能拡張
[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]
[64]
[CITE[Geolocation API Specification]]
は開発停止して久しく、
最低限のメンテナンスしかなされていないまま年月が経過しています。
[[仕様書]]は古いスタイルの現在の基準では曖昧な規定の一部が継ぎ接ぎに近代化されている、
中途半端な形になっています。
新しく厳密な用語が使われる部分がある一方で、
曖昧で空気を読んで解釈するべき古い規定が残り、
[[アルゴリズム]]の形で明確な規定がありながらそこに含まれない[[猿パッチ]]的な規定が別にあったりと、
[[仕様書]]の構成としては混乱した状態にあります。
[TIME[2020-04-16T07:06:34.400Z]]