osm-is-area 0.1.1

Answering the age-old question: Is an OpenStreetMap element is an area or not?
Documentation

osm-is-area

Tell if an OpenStreetMap element is an area or not.

First, decide if your element is a way or a relation, then pick the function that is best for you.

Usage

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);

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