File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# 地震预警 Bark 订阅系统
22
3- 基于 Rust 后端 + Cloudflare Workers 的地震预警实时推送服务。使用 GeoHash 空间索引实现高效震度匹配 ,通过 Bark App 实时推送到苹果设备 。
3+ 基于 Rust 后端 + Cloudflare Workers 的地震预警实时推送服务。使用 GeoHash 空间索引实现匹配 ,通过 Bark App 实时推送 。
44
55示例: [ http://eew.noctiro.moe ] ( http://eew.noctiro.moe )
66
7- ## ✨ 特性
8-
9- - ** 实时监控** :通过 WebSocket 毫秒级接收地震预警
10- - ** 智能推送** :基于用户 GeoHash 位置和预设震度阈值,仅推送有感地震
11- - ** 高性能** :Rust + sled 嵌入式数据库,极速响应
12- - ** 全球加速** :Cloudflare Workers 前端托管,低延迟访问
13- - ** 极简设计** :原生 HTML/JS,无需复杂构建流程
14-
15- ## 🛠 技术栈
7+ ## 技术栈
168
179* ** 后端** : Rust, Axum, sled (DB), tokio-tungstenite (WS)
1810* ** 前端** : Cloudflare Workers, 原生 JS/HTML, CartoCDN (地图)
1911
20- ## 🚀 部署指南
12+ ## 部署
2113
2214### 1. 后端部署 (Rust)
2315
@@ -53,7 +45,7 @@ wrangler deploy --env production
5345
5446```
5547
56- ## ⚙️ 配置说明
48+ ## 配置说明
5749
5850### 后端环境变量 (.env)
5951
@@ -64,9 +56,7 @@ wrangler deploy --env production
6456| ` DB_PATH ` | ` ./data/earthquake.db ` | 数据库路径 |
6557| ` BARK_API_URL ` | ` https://api.day.app ` | Bark 服务器地址 |
6658
67- ## 🔗 API 接口
68-
69- 主要用于调试,前端页面会自动处理这些请求。
59+ ## 后端 API 接口
7060
7161* ** 订阅** : ` POST /api/subscribe `
7262``` json
@@ -79,7 +69,7 @@ wrangler deploy --env production
7969* ** 状态** : ` GET /health `
8070* ** 统计** : ` GET /api/stats `
8171
82- ## 🙏 致谢
72+ ## 致谢
8373
8474* 数据源:[ wolfx.jp] ( https://ws-api.wolfx.jp )
8575* 推送服务:[ Bark] ( https://github.com/Finb/Bark )
Original file line number Diff line number Diff line change @@ -176,15 +176,15 @@ mod tests {
176176 fn test_short_distance ( ) {
177177 // 北京到上海 约 1067 km
178178 let dist = vincenty_distance ( 39.9042 , 116.4074 , 31.2304 , 121.4737 ) . unwrap ( ) ;
179- assert ! ( ( dist - 1067.0 ) . abs( ) < 10 .0) ;
179+ assert ! ( ( dist - 1067.0 ) . abs( ) < 2 .0) ;
180180 }
181181
182182 #[ test]
183183 fn test_long_distance ( ) {
184184 // 纽约 (JFK) 到伦敦 (LHR) 约 5555 km (使用 Vincenty 公式)
185185 let dist = vincenty_distance ( 40.6413 , -73.7781 , 51.4700 , -0.4543 ) . unwrap ( ) ;
186186 assert ! (
187- ( dist - 5555.0 ) . abs( ) < 20 .0,
187+ ( dist - 5555.0 ) . abs( ) < 2 .0,
188188 "Expected ~5555 km, got {} km" ,
189189 dist
190190 ) ;
@@ -242,7 +242,7 @@ mod tests {
242242 fn test_across_prime_meridian ( ) {
243243 // 伦敦到巴黎
244244 let dist = vincenty_distance ( 51.5074 , -0.1278 , 48.8566 , 2.3522 ) . unwrap ( ) ;
245- assert ! ( ( dist - 344.0 ) . abs( ) < 10 .0) ;
245+ assert ! ( ( dist - 344.0 ) . abs( ) < 2 .0) ;
246246 }
247247
248248 #[ test]
You can’t perform that action at this time.
0 commit comments