6个版本 (1个稳定)
1.0.0 | 2021年4月8日 |
---|---|
0.1.4 | 2021年3月2日 |
0.1.3 | 2020年10月24日 |
#123 in 地理空间
用于 2 crates
11KB
169 行
osm-is-area
OpenSreetMap区域必须是方式或关系。但不仅仅是任何方式或关系。
如果你不幸运,你的所有元素都是节点,那就再看看...
API
osm_is_area::方式
根据 Overpass turbo,如果一个方式
- 形成一个闭合环
- 没有被标记为
area=no
- 符合多边形标记的条件之一。
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::关系
如果一个关系有一个“type”标签,其值为“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);
许可证
MIT
lib.rs
:
如果给定的方式根据 Overpass turbo 是一个区域,则返回true
示例
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);
如果一个关系有一个“type”标签,其值为“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);