Source file geolocation.ml
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
open! Import
type positionErrorCode
type watchId
class type coordinates = object
method latitude : Js.number_t Js.readonly_prop
method longitude : Js.number_t Js.readonly_prop
method altitude : Js.number_t Js.opt Js.readonly_prop
method accuracy : Js.number_t Js.readonly_prop
method altitudeAccuracy : Js.number_t Js.opt Js.readonly_prop
method heading : Js.number_t Js.opt Js.readonly_prop
method speed : Js.number_t Js.opt Js.readonly_prop
end
class type position = object
method coords : coordinates Js.t Js.readonly_prop
method timestamp : Js.date Js.readonly_prop
end
class type positionOptions = object
method enableHighAccuracy : bool Js.writeonly_prop
method timeout : int Js.writeonly_prop
method maximumAge : int Js.writeonly_prop
end
class type positionError = object
method _PERMISSION_DENIED_ : positionErrorCode Js.readonly_prop
method _POSITION_UNAVAILABLE_ : positionErrorCode Js.readonly_prop
method _TIMEOUT : positionErrorCode Js.readonly_prop
method code : positionErrorCode Js.readonly_prop
method message : Js.js_string Js.t Js.readonly_prop
end
class type geolocation = object
method getCurrentPosition :
(position Js.t -> unit) Js.callback
-> (positionError Js.t -> unit) Js.callback
-> positionOptions Js.t
-> unit Js.meth
method watchPosition :
(position Js.t -> unit) Js.callback
-> (positionError Js.t -> unit) Js.callback
-> positionOptions Js.t
-> watchId Js.meth
method clearWatch : watchId -> unit Js.meth
end
let empty_position_options () = Js.Unsafe.obj [||]
let geolocation =
let x = Js.Unsafe.global##.navigator in
if Js.Optdef.test x then x##.geolocation else x
let is_supported () = Js.Optdef.test geolocation