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
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +02:00
|
|
|
(** [bind_popup popup layer] binds [popup] to [layer] *)
|
2022-06-26 04:08:53 +02:00
|
|
|
val bind_popup : Popup.t -> _ t -> unit
|
2022-04-08 13:21:20 +02:00
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +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
|
|
|
|
2022-05-19 22:42:28 +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 =
|
2022-06-20 11:04:44 +02:00
|
|
|
| Point_to_layer of (Jv.t -> Latlng.t -> [ `Marker ] t)
|
2022-06-20 09:17:23 +02:00
|
|
|
| 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
|
|
|
|
|
|
2022-05-19 22:42:28 +02:00
|
|
|
(** [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
|
|
|
|
2022-11-24 19:22:18 +01:00
|
|
|
(** Tile layers *)
|
|
|
|
|
|
2024-01-29 22:49:31 +01:00
|
|
|
type tile_layer_opt =
|
|
|
|
|
| Min_zoom of int
|
|
|
|
|
| Max_zoom of int
|
|
|
|
|
| Subdomains of string array
|
|
|
|
|
| Error_tile_url of string
|
|
|
|
|
| Zoom_offset of int
|
|
|
|
|
| Tms of bool
|
|
|
|
|
| Zoom_reverse of bool
|
|
|
|
|
| Detect_retina of bool
|
|
|
|
|
| Cross_origin of bool
|
|
|
|
|
| Referrer_policy of bool
|
2024-01-30 00:20:36 +01:00
|
|
|
| Tile_size of Point.t
|
|
|
|
|
| Opacity of float
|
|
|
|
|
| Update_when_idle of bool
|
|
|
|
|
| Update_when_zooming of bool
|
|
|
|
|
| Update_interval of int
|
|
|
|
|
| Z_index of int
|
|
|
|
|
| Bounds of (* LatLngBounds *) Latlng.t * Latlng.t
|
|
|
|
|
| Max_native_zoom of int
|
|
|
|
|
| Min_native_zoom of int
|
|
|
|
|
| No_wrap of bool
|
|
|
|
|
| Pane of string
|
|
|
|
|
| Class_name of string
|
|
|
|
|
| Keep_buffer of int
|
2024-01-29 22:49:31 +01:00
|
|
|
|
|
|
|
|
(** [create_tile url attribution opts] create a new tile layer *)
|
|
|
|
|
val create_tile :
|
|
|
|
|
string -> attribution:string -> tile_layer_opt list -> [ `Tile ] t
|
|
|
|
|
|
|
|
|
|
(** [create_tile_osm opts] create a new tile layer with tile server and
|
|
|
|
|
attribution set to [openstreetmap.org]. See
|
2022-11-24 19:22:18 +01:00
|
|
|
{:https://wiki.openstreetmap.org/wiki/Tile_servers} *)
|
2024-01-29 22:49:31 +01:00
|
|
|
val create_tile_osm : tile_layer_opt list -> [ `Tile ] t
|