lspassos1/mapa-da-violencia-brasil
GitHub: lspassos1/mapa-da-violencia-brasil
整合巴西近实时枪击雷达、官方 homicide 统计与数据异常检测的公共安全可视化与 OSINT 分析平台。
Stars: 0 | Forks: 0
# 🎯 巴西暴力地图
[](https://mapa-da-violencia-brasil.vercel.app)
[](LICENSE)
[](https://github.com/lspassos1/mapa-da-violencia-brasil/commits)
[](https://github.com/lspassos1/mapa-da-violencia-brasil/stargazers)
[](https://nextjs.org)
[](https://www.typescriptlang.org)
[](https://tailwindcss.com)
[](https://maplibre.org)
[](https://supabase.com)
[](https://vercel.com)
**▶ 在线演示:**
## ✦ 项目简介
分为三个层次,具有**不同的可信度**且**绝不混淆**(每条线索都包含来源和免责声明):
### 1. 枪击雷达 — _主页_,近实时数据
- 来自 **Fogo Cruzado** 的**地理空间定位**枪击/开火事件(涵盖里约热内卢、累西腓、萨尔瓦多和贝伦的大都市区)。
- **全国性 OSINT 层:** 通过 AI 从**新闻**中提取的武装暴力迹象,覆盖这 4 个大都市区**之外**的城市(精确到市级 — 仅为线索,非正式记录)。
- **“📍 我附近”**,上下文分类(团伙冲突 × 警方行动),累积的历史趋势。
- ⚠️ **非紧急警报** — 遇到紧急情况,请拨打 **190**。
### 2. 官方地图 — 汇总数据
- 各市县的故意杀人案(**SINESP/MJSP — VDE 数据库**):评分 0–100,各州之间的对比以及趋势/季节性分析。

### 3. 异常 / 官方数据可信度雷达
检测**报告的暴力数据可能在何处被隐瞒** — 基于学术文献。仅为线索,**绝不作为指控**。
- **视角 1 · 选举周期** — 选前窗口期故意杀人案出现异常下降,与**同等规模的城市**进行成对比较(使用 diff-in-diff,绝不使用粗略排名),并**与帮派分布进行交叉比对**。
- **视角 2 · 犯罪治理 (RJ)** — 领土控制 × 冲突(Fogo Cruzado + ISP-RJ)。
- **视角 3 · 隐性杀人案** — 在“死因不明死亡”(MVCI)**高于全国趋势**时,故意杀人案却呈现下降趋势(SIM/DATASUS)。
- **每周 AI 摘要** — 客观、无党派偏见的简报,包含数据来源及线索界定说明。
## ✦ 技术栈
| 层次 | 技术 |
|---|---|
| **前端** | Next.js (App Router) · React · TypeScript · Tailwind CSS v4 · MapLibre GL JS · lucide-react |
| **后端 / 数据** | Next API Routes (`server-only`) · Supabase (Postgres + RPC) · 版本化的 JSON 静态资源 |
| **AI / OSINT** | 免费提供商轮换 (Gemini · Groq · Cloudflare · Mistral · OpenRouter · Together) · **关键词优先 (keyword-first)** 分类 · **基于字典的地理编码** (IBGE,不使用 LLM) · 不使用 embeddings 的确定性去重 |
| **基础设施** | Vercel (部署 + cron) · GitHub Actions (数据接入 cron) · Supabase (sa-east-1) |
| **质量保证** | ESLint · `node:test` (契约/API) · Playwright · Greptile · Snyk · Dependabot |
## ✦ 数据来源
| 来源 | 用途 |
|---|---|
| **Fogo Cruzado** (API v2) | 地理空间定位的枪击事件(4 个大都市区) |
| **SINESP/MJSP** (VDE 数据库) | 各市县/联邦单位 (UF) 的官方故意杀人案 |
| **ISP-RJ / ISPdados** | 里约热内卢市县级犯罪数据 |
| **SIM/DATASUS** | 死亡率 — 故意杀人 (X85–Y09) × MVCI (Y10–Y34) |
| **IBGE** | 市县和质心(地理编码) |
| **Google 新闻** (RSS) | OSINT 层的原始素材 |
| **司法部** (Mapa das Orcrim) | 各联邦单位 (UF) 的帮派分布(交叉验证) |
## ✦ 本地运行
要求 **Node.js 22.x** 和 **npm ≥ 10**(主版本锁定在 `.nvmrc` 中)。
```
npm install
cp .env.example .env.local # preencha as credenciais — nenhum segredo é versionado
npm run dev # http://localhost:3000
```
实用脚本:
```
npm run validate # lint + typecheck + testes + build (o que o CI roda)
npm run test # testes de contrato e de API (node:test)
npm run build # build de produção
```
完整流程 — 单独测试、Playwright(视觉测试)、ETL、部署以及项目结构 — 请见 **[docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)**。
## ✦ 许可证和使用权
基于 **[GNU AGPL-3.0](LICENSE)** 发布。简而言之:
| 用途 | 是否允许? | 备注 |
|---|:---:|---|
| 个人 · 研究 · 教育 | ✅ | 需遵循 AGPL-3.0 |
| Self-hosted(自有实例) | ✅ | 需遵循 AGPL-3.0 |
| Fork 及修改 | ✅ | 修改后的代码需按 AGPL-3.0 开源 |
| 网络使用 / SaaS | ✅ | AGPL 要求向服务的用户**提供源代码** |
## ✦ 免责声明
本应用**非紧急警报**(遇紧急情况,请拨 **190**),也**无法实时衡量个人风险**。新闻/异常层仅为**线索**,非官方统计数据或确凿证据;不得用于监控、预测犯罪,或对特定事件或个人得出结论。官方数据可能存在漏报、修订以及各来源间的方法论差异。
标签:Supabase, 公共安全, 地理信息系统, 特征检测, 自动化攻击