6个版本
0.5.2 | 2024年5月20日 |
---|---|
0.5.1 | 2024年5月18日 |
0.4.0 | 2024年5月12日 |
0.3.3 | 2024年5月8日 |
#81 in 地理空间
每月 29 次下载
135KB
374 行
ralertsinua-geo
Rust异步API包装器(reqwest)和TUI(ratatui)用于alerts.in.ua
简介
alerts.in.ua API客户端是一个Rust库,简化了对alerts.in.ua API服务的访问。它提供关于空袭警报和其他潜在威胁的实时信息。
安装
要安装Alerts.in.ua API客户端,请在您的终端中运行以下命令
cargo add ralertsinua-geo
用法
⚠️ 在您可以使用此库之前,您需要通过提交一个 API请求表单 获得API令牌。
以下是如何使用库获取活动警报列表的基本示例
异步
use ralertsinua_geo::AlertsInUaGeo;
// Initialize the client
geo_client = AlertsInUaGeo();
/// The API for the AlertsInUaClient
pub trait AlertsInUaGeo: WithBoundingRect + Sync + Send + core::fmt::Debug {
fn boundary(&self) -> CountryBoundary;
fn locations(&self) -> [Location; 27];
fn get_location_by_uid(&self, uid: i32) -> Option<Location>;
fn get_location_by_name(&self, name: &str) -> Option<Location>;
}
位置
Location
结构体表示乌克兰的行政单位lv4
/// Ukraine's administrative unit lv4 - *oblast*
#[derive(Debug, Deserialize, Clone, PartialEq, Serialize)]
pub struct Location {
/// OSM Relation Id
pub relation_id: String,
/// Alerts.in.ua "uid"
pub location_uid: i32,
/// "state" or "city" or "special"
pub location_type: String,
/// Geometry for boundary (Polygon or MultiPolygon)
pub geometry: Geometry,
/// Name in uk
pub name: String,
/// Name in en
pub name_en: String,
/// And some functions from traits
fn geometry(&self) -> &Geometry;
fn boundary(&self) -> &Polygon;
fn center(&self) -> (f64, f64);
/// To be used in TUI when , implements `Shape`
fn draw(&self, painter: &mut Painter);
许可证
MIT 2024
*[TUI]: 终端用户界面
依赖项
~12–19MB
~206K SLoC