leaflet/src/layer.mli

92 lines
2.6 KiB
OCaml
Raw Normal View History

2022-04-12 13:46:37 +02:00
(* BSD-2-Clause License *)
2022-04-09 22:21:22 +02:00
type _ t =
| Basic : Jv.t -> [> `Basic ] t
| Geojson : Jv.t -> [> `Geojson ] t
| Marker : Jv.t -> [> `Marker ] t
| Tile : Jv.t -> [> `Tile ] t
2022-04-08 13:21:20 +02:00
2022-06-20 06:52:05 +02:00
type _ sub =
| Basic : [> `Basic ] sub
| Geojson : [> `Geojson ] sub
| Marker : [> `Marker ] sub
| Tile : [> `Tile ] sub
2022-04-09 22:21:22 +02:00
(** Basic layers *)
2022-04-08 13:21:20 +02:00
(** [add_to map layer] adds [layer] to [map] *)
2022-04-09 22:21:22 +02:00
val add_to : Map.t -> _ t -> unit
2022-04-08 13:21:20 +02:00
(** [remove layer] removes [layer] from the map it is currently active on *)
2022-04-09 22:21:22 +02:00
val remove : _ t -> unit
2022-04-08 13:21:20 +02:00
(** [remove_from map layer] removes [layer] from [map] *)
2022-04-09 22:21:22 +02:00
val remove_from : Map.t -> _ t -> unit
2022-04-08 13:21:20 +02:00
(** [bind_popup popup layer] binds [popup] to [layer] *)
2022-06-20 06:52:05 +02:00
val bind_popup : Brr.El.t -> ?options:Jv.t -> _ t -> unit
2022-04-08 13:21:20 +02:00
(** [unbind_popup layer] unbinds the popup bound to [layer] *)
2022-04-09 22:21:22 +02:00
val unbind_popup : _ t -> unit
2022-04-08 13:21:20 +02:00
(** [open_popup layer] opens the popup bound to [layer] *)
2022-04-09 22:21:22 +02:00
val open_popup : _ t -> unit
2022-04-08 13:21:20 +02:00
(** [close_popup layer] closes the popup bound to [layer] *)
2022-04-09 22:21:22 +02:00
val close_popup : _ t -> unit
2022-04-08 13:21:20 +02:00
(** [get_popup layer] is the popup bound to [layer] *)
2022-04-09 22:21:22 +02:00
val get_popup : _ t -> Popup.t
2022-04-08 13:21:20 +02:00
(** [to_jv o] is [o] as a {!Jv.t} *)
2022-04-09 22:21:22 +02:00
val to_jv : _ t -> Jv.t
2022-06-20 06:52:05 +02:00
(** [of_jv tag o] is [o] as a [tag t] *)
val of_jv : 'a sub -> Jv.t -> 'a t
(** [on event handler layer] add an event listener on [layer] for event [event]
with handler [handler] *)
val on : 'a Event.sub -> ('a Event.t -> 'b) -> 'c t -> unit
2022-04-09 22:21:22 +02:00
(** Geojson layers *)
2022-06-20 09:17:23 +02:00
(** type for geojson option, used to create geojson *)
type geojson_opt =
| Point_to_layer of (Jv.t -> Latlng.t -> unit)
| Style of (Jv.t -> unit)
| On_each_feature of (Jv.t -> [ `Geojson ] t -> unit)
| Filter of (Jv.t -> bool)
| Coords_to_latlng of (Jv.t -> Latlng.t)
| Markers_inherit_options of bool
(** [create_geojson geojson] is a new geojson layer *)
2022-06-20 09:17:23 +02:00
val create_geojson : Jv.t -> geojson_opt list -> [ `Geojson ] t
2022-04-09 22:21:22 +02:00
(** Marker layers *)
2022-06-20 09:17:23 +02:00
(** type for marker option, used to create marker *)
2022-06-20 08:16:21 +02:00
type marker_opt =
| Icon of Icon.t
| Keyboard of bool
| Title of string
| Alt of string
| Z_index_offset of int
| Opacity of float
| Rise_on_hover of bool
| Rise_offset of int
| Pane of string
| Shadow_pane of string
| Bubbling_mouse_events of bool
| Auto_pan_on_focus of bool
2022-06-20 09:17:23 +02:00
(** [create_marker latlng options] is a new marker with the same position as
[latlng] and with options set to [options] *)
2022-06-20 08:16:21 +02:00
val create_marker : Latlng.t -> marker_opt list -> [ `Marker ] t
2022-04-09 22:21:22 +02:00
(** Tile layers *)
(** [create_tile_osm Some(url)] is a new tile layer with tile server specified
by [url]. Tile server default to [openstreetmap.org]. See
{:https://wiki.openstreetmap.org/wiki/Tile_servers} *)
2022-04-09 22:21:22 +02:00
val create_tile_osm : string option -> [ `Tile ] t