# 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](https://wiki.openstreetmap.org/wiki/Overpass_turbo/Polygon_Features), 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.
```rust
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".
```rust
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