dioxus_maplibre/handle/
layers.rs1#![allow(clippy::needless_pass_by_value)]
3
4use super::MapHandle;
5use crate::options::LayerOptions;
6
7impl MapHandle {
8 pub fn add_layer(&self, options: LayerOptions) {
10 self.fire_and_forget(|| {
11 let json = serde_json::to_string(&options).unwrap_or_default();
12 crate::interop::add_layer_js(&self.map_id, &json)
13 });
14 }
15
16 pub fn remove_layer(&self, id: &str) {
18 self.fire_and_forget(|| crate::interop::remove_layer_js(&self.map_id, id));
19 }
20
21 pub fn set_paint_property(&self, layer_id: &str, name: &str, value: serde_json::Value) {
23 self.fire_and_forget(|| {
24 let json = serde_json::to_string(&value).unwrap_or_default();
25 crate::interop::set_paint_property_js(&self.map_id, layer_id, name, &json)
26 });
27 }
28
29 pub fn set_layout_property(&self, layer_id: &str, name: &str, value: serde_json::Value) {
31 self.fire_and_forget(|| {
32 let json = serde_json::to_string(&value).unwrap_or_default();
33 crate::interop::set_layout_property_js(&self.map_id, layer_id, name, &json)
34 });
35 }
36
37 pub fn move_layer(&self, layer_id: &str, before_id: Option<&str>) {
42 self.fire_and_forget(|| crate::interop::move_layer_js(&self.map_id, layer_id, before_id));
43 }
44
45 pub fn set_filter(&self, layer_id: &str, filter: serde_json::Value) {
47 self.fire_and_forget(|| {
48 let json = serde_json::to_string(&filter).unwrap_or_default();
49 crate::interop::set_filter_js(&self.map_id, layer_id, &json)
50 });
51 }
52}