osm-is-area

Crates.ioosm-is-area
lib.rsosm-is-area
version1.0.0
sourcesrc
created_at2020-10-24 08:20:18.427776
updated_at2021-04-08 03:24:18.699171
descriptionIs this OpenStreetMap element an area or not?
homepagehttps://github.com/okdistribute/osm-is-area.rs
repositoryhttps://github.com/okdistribute/osm-is-area.rs
max_upload_size
id304937
size14,826
James Halliday (substack)

documentation

https://docs.rs/osm-is-area/

README

osm-is-area

An OpenSreetMap area must be a way or a relation. But not just any way or relation.

If you are not so fortunate that all your elements are nodes, look further...

API

osm_is_area::way

According to Overpass turbo, a way is considered an area if

  1. It forms a closed loop
  2. It is not tagged area=no
  3. It conforms to one of the conditions for polygon tags.
use osm_is_area;

let tags = vec![
 (r"waterway", r"riverbank")
];
let refs = vec![1, 3, 2, 1];

let is_area = osm_is_area::way(&tags, &refs);
assert_eq!(true, is_area);

osm_is_area::relation

A relation is an area when it has a tag "type" with value "multipolygon".

use osm_is_area;

let tags = vec![
 (r"type", r"multipolygon")
];
let members = vec![1, 3, 2, 1];

let is_area = osm_is_area::relation(&tags, &members);
assert_eq!(true, is_area);

License

MIT

Commit count: 26

cargo fmt