#osm #query #server #node #query-response #overpass

osm_overpass

一个库,用于在OSM Overpass服务器上运行Overpass查询

3个版本

0.1.2 2024年7月16日
0.1.1 2024年7月16日
0.1.0 2024年7月16日

#91 in 地理空间

Download history 280/week @ 2024-07-14 33/week @ 2024-07-28

每月313次下载

MIT许可证

17KB
230

OSM Overpass

一个用于查询OSM Overpass服务器的库

示例

异步示例

let url = String::from("https://overpass-api.de/api/interpreter");
let query = "
[out:json][timeout:30];
node(3662847634);
// print results
out;
";
let api = api::OverpassAPI::new(url);
let res = api.query(String::from(query)).await;
...

同步示例

...
let res = api.query_sync(String::from(query));

使用查询响应

...
let unwrapped = res.unwrap();
//unwrapped is iterable, so
for nwr in unwrapped {
    match nwr {
        NWR::Node(n) => ...,
        NWR::Way(w) => ...,  
        NWR::Relation(r) => ...      
    }
}

注意

查询必须返回JSON结果。将 [out:json] 放在查询的第一行以实现此功能。


lib.rs:

OSM Overpass

一个用于查询OSM Overpass服务器的库

示例

异步示例

let url = String::from("https://overpass-api.de/api/interpreter");
let query = "
[out:json][timeout:30];
node(3662847634);
// print results
out;
";
let api = api::OverpassAPI::new(url);
let res = api.query(String::from(query)).await;
...

同步示例

...
let res = api.query_sync(String::from(query));

使用查询响应

...
let unwrapped = res.unwrap();
//unwrapped is iterable, so
for nwr in unwrapped {
    match nwr {
        NWR::Node(n) => ...,
        NWR::Way(w) => ...,  
        NWR::Relation(r) => ...      
    }
}

注意

查询必须返回JSON结果。将 [out:json] 放在查询的第一行以实现此功能。

依赖项

~4–18MB
~214K SLoC