[−][src]Function geo_svg_io::geo_svg_reader::svg_d_path_to_geometry_collection
pub fn svg_d_path_to_geometry_collection(
svg: &str
) -> Result<GeometryCollection<f64>, SvgError>
Parses the d
-string from an SVG <path>
element into a GeometryCollection
Note that the current parsing of curves is rather simple right now, it just finds 100 points along the curve.
Examples
use geo_svg_io::geo_svg_reader::svg_d_path_to_geometry_collection; use geo_types::polygon; let poly = polygon!( exterior: [ (x: 0.0, y: 0.0), (x: 0.0, y: 60.0), (x: 60.0, y: 60.0), (x: 60.0, y: 0.0), (x: 0.0, y: 0.0),], interiors:[[ (x: 10.0, y: 10.0), (x: 40.0, y: 1.0), (x: 40.0, y: 40.0), (x: 10.50, y: 40.0), (x: 10.0, y: 10.0),] ] ); let svg_string = String::from("M0 0l0 60l60 0L60 0L0 0M10 10L40 1L40 40L10.5 40L10 10"); let parsed_svg = svg_d_path_to_geometry_collection(&svg_string); assert_eq!(parsed_svg.is_ok(), true); // Unwrap the GeometryCollection result let geom = parsed_svg.ok().unwrap(); assert_eq!(1, geom.0.len()); // Read the geometry as a Polygon let pl = geom.0[0].clone().into_polygon(); assert_eq!(true, pl.is_some()); assert_eq!(pl.unwrap(), poly);