Skip to main content

mdbook_plotly/code_handler/plot_obj_parser/
density_mapbox_parser.rs

1use super::until::{Map, must_translate};
2use crate::translate;
3use anyhow::Result;
4use plotly::DensityMapbox;
5
6pub fn parse_density_mapbox_data(
7    dm_obj: &mut serde_json::Value,
8    map: &Map,
9) -> Result<Box<DensityMapbox<f64, f64, f64>>> {
10    let lat: Vec<f64> = must_translate(dm_obj, map, "lat")?;
11    let lon: Vec<f64> = must_translate(dm_obj, map, "lon")?;
12    let z: Vec<f64> = must_translate(dm_obj, map, "z")?;
13    let dm = DensityMapbox::new(lat, lon, z);
14    let dm = translate! {
15        dm,
16        dm_obj,
17        map,
18        (show_legend, bool),
19        (name, String),
20        (legend_group, String),
21        (legend_rank, usize),
22        (opacity, f64),
23        (radius, u8),
24        (zoom, u8),
25        (zauto, bool),
26        (zmin, f64),
27        (zmid, f64),
28        (zmax, f64),
29        (subplot, String),
30    }?;
31    Ok(dm)
32}