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 次下载

MIT 许可证

135KB
374

Quality Gate Status Coverage Status Crates.io Version Crates.io License docs.rs Stand With Ukraine

ralertsinua-geo

Rust异步API包装器(reqwest)和TUIratatui)用于alerts.in.ua

screencast

简介

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